divinity02 Ответов: 1

Почему мой PHP код не вставляется:


всем привет

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

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

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

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

<pre>

<?php

		 
		if(isset($_POST['enter']))
		{
				//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'];
			$gender=$_POST['gender'];
			
			$address=$_POST['address'];
			$mypwd=$_POST['mypwd'];
			
			
			
			include'db_server.php';
			
			//select the database you want to query
			
			$sql="SELECT * FROM members WHERE username='$username'";
			$result= mysqli_query($conn, $sql) or die ("ERROR:" .mysqli_error());
			$rowcount=mysqli_num_rows($result);
			
			if($rowcount >= 1) //checking to see if usernamename is already exist
			{
				 echo "<script type=\"text/javascript\">
					  alert('Username already exits');
					  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))
				{
					mysqli_close($conn);
					
					echo "<script type=\"text/javascript\">
					  alert('Username already exits');
					  window.location=\"../index.html\";
					   </script>";
							
				}
				else
				{
					echo "Error inserting values into database";
				}
				//end of line
				
			}
		}	
		
			
?>

Richard Deeming

как я я же говорил тебе в прошлом году[^], несоленый хэш MD5 не намного лучше, чем хранение пароля в обычном тексте. Вы должны использовать встроенные функции для безопасного управления вашими паролями:

PHP: password_hash[^]
РНР: функцию password_verify[^]

divinity02

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

Richard Deeming

Она тоже очень ошибается. :)

1 Ответов

Рейтинг:
2

Patrice T

$sql="SELECT * FROM members WHERE username='$username'";
$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-инъекцию без технического жаргона? - Обмен Стеками Информационной Безопасности[^]