divinity02 Ответов: 3

Как вы избавляетесь от этих двух досадных ошибок plzzzz


Я пытаюсь сделать страницу редактирования, и после редактирования ах должен быть в состоянии обновить информацию, другими словами, я делаю как страницу редактирования, так и обновление, но я могу заставить страницу редактирования либо редактировать, либо обновлять информацию.


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

это ошибка № 1.
Undefined variable: userName in C:\wamp64\www\luana_itec244\php\update.php on line 30



это ошибка № 2
: Undefined variable: password in C:\wamp64\www\luana_itec244\php\update.php on line 30



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

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

это коды обновления.

<pre><?php
		
			session_start();
			$_SESSION['user'];
			//$title=$_POST['title'];
			$firstname=$_POST['firstname'];
			$lastname=$_POST['lastname'];
			//$address=$_POST['address'];
			//$txtemail=$_POST['txtemail'];
			//$gender=$_POST['gender'];
			//
			
			
			//create connection to database
			$db_host='localhost';
			$db_username='root';
			$db_password="";
			
			
				//check connection
				$con = mysqli_connect($db_host, $db_username, $db_password) or die(mysqli_connect_error());
			
				//select the database
				mysqli_select_db($con, 'food') or die(mysqli_error($con));
				
				  	
					//$userName=$_SESSION['user'];
					//$password=$_SESSION['user'];
				 
					$sql="SELECT * FROM member WHERE userName='$userName' AND pword=md5('$password')";
					$result=mysqli_query($con, $sql) or die ("Error:" .mysqli_error());
					
					//collect info from database
					if($result)
					{
						$rowcount=mysqli_num_rows($result);
						
						if($rowcount==1)
						{
							
							//update database with information from the edit form
							$update="UPDATE member SET firstname='$firstname' WHERE userName='".$_SESSION['user']."'";
							$update="UPDATE member SET lastname='$lastname' WHERE userName='".$_SESSION['user']."'";
							
							//mysqli_query($con, $update) or die(mysqli_error($con));
							
							if(mysqli_query($con, $update))
							{                               
						
								echo "<script type=\"text/javascript\">
									alert('Profile successfully updated.');
									window.location=\"profile.php\";
									</script>";
									
								mysqli_close($con);
								header("location:edit.php");
								
							}
							else
							{
								echo "<scrip type=\"text/javascript\">
										  alert('Incorrect password');
										  window.locaton=\"edit.php\";
									  </script>";
							}
						}	
						
					}
			
		
		

?>

3 Ответов

Рейтинг:
2

Afzaal Ahmad Zeeshan

Ошибка возникает из вашего SQL запроса,

$sql="SELECT * FROM member WHERE userName='$userName' AND pword=md5('$password')";

Вы пытаетесь получить доступ к переменным, которые нигде не определены в видимом коде PHP, либо, возможно, вам нужно проверить через isset, чтобы увидеть, можно ли это сделать или нет,
if(isset($userName, $password)) {
   // they are set, execute query
} else {
   // other wise
}

Проверьте с ними, а затем выполните, что будет безопасно выполнено.
PHP: isset - руководство пользователя[^]


Рейтинг:
0

Patrice T

Цитата:
Как вы избавляетесь от этих двух досадных ошибок plzzzz

Возможно, вам следует перечитывать свой код и использовать существующие переменные, такие как $db_username и $db_password

$sql="SELECT * FROM member WHERE userName='$userName' AND pword=md5('$password')";

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


Рейтинг:
0

divinity02

спасибо вам обоим, ppolymorphe и Afzaal Ahmad