divinity02 Ответов: 1

Как мне избавиться от этой ошибки или исправить ее?


Я пытался проверить свою регистрационную форму с помощью javascript, но я понял, используя: alert('it works") просто чтобы увидеть, работает ли js формы, но я получаю эту ошибку

Краткое описание: в пол, в с;

что имеет некоторое отношение к php-коду. чтобы мой js не функционировал до тех пор, пока эта ошибка не будет исправлена, перепробовал все, что я могу придумать, и даже пошел искать в сети и перепробовал все, что я могу видеть, но безрезультатно

может кто-то помочь, а также он не вставляется в базу данных, может что-то сказать мне, что не так и почему он не вставляется в базу данных

может быть, третий глаз поможет мне, что это не вставка в базу данных, я получаю все виды ошибок, которые я не могу видеть, это дает мне неправильный результат, когда я запускаю его

когда я имею в виду неправильный результат, я имею в виду, что когда пользователь регистрирует его, всплывающее окно всплывает и говорит вам добро пожаловать на веб-страницу, а затем оно должно перенаправить пользователя на страницу входа в систему, но он этого не делает, вместо этого он говорит пользователям, что имя пользователя уже существует ( которого у меня нет в самом коде), и он либо возвращает вас на индексную страницу, либо на страницу регистрации, которая не должна этого делать.

Что я уже пробовал:

вот что у меня есть

<pre><?php

		//$register=$_POST['register_user']; 
		if(isset($_POST['Register']))
		{
			
			//capture the variable from the form and store in php variables
			$title=$_POST['title'];
			$firstname=$_POST['firstname'];
			$lastname=$_POST['lastname'];
			$username=$_POST['username'];
			$email=$_POST['email'];
			if(isset($_POST['register']))
			{
				if(isset($_POST['gender'])) 
				{
					$gender = $_POST['gender'];
				}
			}
			else
			{
				$gender = "";
			}
			$address=$_POST['address'];
			$mypwd=$_POST['mypwd'];
			
			include'db_server.php';
			
			//Query the database
			$sql="SELECT * FROM members WHERE username='$username'";
			
			$result= mysqli_query($conn, $sql) or die ("ERROR:" .mysqli_error());
			
			$rowcount=mysqli_num_rows($result);
			
			//checking to see if username is already exist
			if($rowcount >= 1) 
			{
				echo "<script type=\"text/javascript\">
					  alert('Welcome!! Firstname Lastname, you are now a member of the Caribbean Nature Seekers Institute TT(CNSITT)');
					  window.location=\"../login_user.html\";
					   </script>";
					   
				 
			}
			else
			{
				//insert data into table
				
				$sql = "INSERT INTO members
				VALUES('$title', '$firstname','$lastname', '$username', '$email', '$gender', '$address', md5('$mypwd'))";
			
				if(mysqli_query($conn,$sql))
				{
					session_start();
					$_SESSION['user']=$username;					
					header("location:login_user.html");
					mysqli_close($conn);
						
				}
				else
				{
					echo "Error inserting values into database";
				}
				//end of line
				
			}
		}	
		
			
?>


м

1 Ответов

Рейтинг:
0

Patrice T

$sql = "INSERT INTO members VALUES('$title', '$firstname','$lastname', '$username', '$email', '$gender', '$address', md5('$mypwd'))";

Не решение вашего вопроса, а еще одна проблема, которая у вас есть.
Никогда не создавайте SQL-запрос путем объединения строк. Рано или поздно вы сделаете это с помощью пользовательских вводов, и это откроет дверь к уязвимости под названием "SQL-инъекция", она опасна для вашей базы данных и подвержена ошибкам.
Одна кавычка в имени - и ваша программа выйдет из строя. Если пользователь вводит имя, например "Брайан О'Коннер", может привести к сбою вашего приложения, это уязвимость SQL-инъекции, и сбой-это наименьшая из проблем, вредоносный пользовательский ввод, и он продвигается к командам SQL со всеми учетными данными.
SQL-инъекция - Википедия[^]
SQL-инъекция[^]
Атаки SQL-инъекций на примере[^]
PHP: SQL-инъекция - руководство пользователя[^]
Шпаргалка по предотвращению инъекций SQL - OWASP[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? - Обмен Стеками Информационной Безопасности[^]
Цитата:
Краткое описание: в пол, в с;

Дайте точное сообщение об ошибке, положение ошибки должно быть указано.
Если не указано, используйте отладчик, он покажет вам эту позицию.
[Обновление]
Знаете ли вы, что если "пол" не ставить, $пол и это тоже не так.
if(isset($_POST['register']))
{
	if(isset($_POST['gender'])) 
	{
		$gender = $_POST['gender'];
	}
}
else
{
	$gender = "";
}