divinity02 Ответов: 2

Может ли кто-нибудь заметить ошибку здесь, на линии 47


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

может быть, третий глаз увидит то, что я не могу, любая помощь будет очень признательна.

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

<pre><?php		
		
		
		if(isset($_POST['edit']))
		{
		//Capture values from form and store in php variables
		 $title=$_POST['title'];
		 $fname=$_POST['fname'];
		 $address=$_POST['address']; 
		 $sex=$_POST['gender'];
		 $hobbies=join(" ,", $_POST['hobby']);
		 $uname=$_POST['uname'];
		 $pword=$_POST['currentpword'];
		 
		 include'db_config.php';
		 
		 
		$sql = "SELECT uname,pword FROM member WHERE uname='$uname' AND pword=md5('$pword')";
		
		if($result=mysqli_query($con,$sql))
		{
			$rowcount=mysqli_num_rows($result);
		
			if($rowcount==1)
			{
				$sql="UPDATE member 
				SET title='$title', name='$fname', address='$address', sex='$sex', hobby='$hobby', uname='$uname',
				WHERE pword=md5('$pword')";
			
				if(mysqli_query($con,$sql))
				{
					mysqli_close($con);
					
					echo "<script type=\"text/javascript\">
						  alert('your information has been updated $title $name');
						  window.location\view.php\";
						  </script>";
				}
				
				else
				{
					echo"<script type\"text/javascript\">
						alert('error');
						window.location/edit.php\";
						</script>";
				}
				else<--- the arrow point to where the error is. 
				{
					echo mysqli_error($con);
				}
			}
			
		}
		
		
		
?>

Bryian Tan

Не может быть двух последовательных операторов else, что не является правильным синтаксисом.
В чем же здесь ошибка, которую я не вижу?[^]

2 Ответов

Рейтинг:
0

Peter_in_2780

У тебя есть

if ()
 ...
else
 ...
else  <<<<<<<<<<<<
 ...

Полагаю, тебе следовало бы это сделать.
if ()
 ...
elseif () 
 ...
else
 ...


Рейтинг:
0

Patrice T

Цитата:
Может ли кто-нибудь заметить ошибку здесь, на линии 47

Вы уже задавали этот вопрос и получили ответ.
if ... else ... else ...

не существует.
$sql="UPDATE member SET title='$title', name='$fname', address='$address', sex='$sex', hobby='$hobby', uname='$uname', WHERE pword=md5('$pword')";

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