Devansh V mistry Ответов: 2

Пожалуйста, решите мою ошибку в PHP-соединении


Ошибка синтаксического анализа: синтаксическая ошибка, неожиданный конец файла в /storage/ssd3/415/13274415/public_html/login_page/login.php на линии 27

здесь вы можете просмотреть полный код: login.php - Google Docs[^]

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

я попытался проверить все свои скобки и кодировку
  1  <?php
  2  $uname=$_POST['email'];
  3  $password=$_POST['pass'];
  4  $db="id13274415_login";
  5  //id13274415_login
  6  
  7  if ($con -> connect_errno) {
  8    echo "Failed to connect to MySQL: " . $con -> connect_error;
  9    exit( );
 10  }
 11  
 12  $con=mysqli_connect("localhost","id13274415_shivam", "pass", "id13274415_login");
 13  $sql = "SELECT * FROM `login` WHERE `Username`='".$uname."' && `Password`='".$password."';
 14  $result = mysqli_query($db,$sql);
 15  $count=mysqli_num_rows($result);
 16  if($count==1)
 17      {
 18  	    echo 'Login Success';
 19  	    //header('location:welcome.php');
 20      }
 21  else
 22      {
 23  	    echo 'incorrect';
 24          //header('location:123.html');
 25      }
 26  ?>

Richard MacCutchan

Это всего лишь 20 строк, так как же происходит ошибка в строке 27?

OriginalGriff

Я подозреваю, что это "новая математика" для вас ... :смеяться:

Richard MacCutchan

У меня на уме была другая фраза. :)

Devansh V mistry

я загрузил полный код, но он не появляется

Richard MacCutchan

Ну, это все еще только 23 строки, как вы можете видеть. В будущем, когда вы будете размещать код в вопросе, пожалуйста, просмотрите его, чтобы увидеть, что он содержит всю информацию.

MadMyche

Разве вы не знаете, что 23 в десятичной системе счисления преобразуется в 27 в восьмеричной системе счисления

Richard MacCutchan

Проклятье, а я-то думал, что это гекс. :(

Devansh V mistry

я загрузил полный код; пожалуйста, проверьте его

Devansh V mistry

я загрузил полный код; пожалуйста, проверьте его

Richard MacCutchan

Строка 1 закомментирована, поэтому закрывающая скобка в строке 4 не имеет соответствующего открывателя. Однако то, что вы опубликовали, - это не то, что вы пытались выполнить, так что это что-то вроде догадки.

Devansh V mistry

я загрузил полный код; проверьте его, пожалуйста

0x01AA

php Привет мир

<html>
<head>
<title>PHP-Test</title>
</head>
<body>
<?php echo '<p>Hallo Welt</p>'; ?>
</body>
</html>

Devansh V mistry

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

Richard MacCutchan

Что ты имеешь в виду? Теперь нет никакого кода вообще.

Richard MacCutchan

Я понятия не имею, почему вы разместили это в Google docs вместо своего вопроса. Я могу только предположить, что вы не знаете, как использовать копирование и вставку.

2 Ответов

Рейтинг:
2

Richard MacCutchan

Проблема находится на этой линии:

$sql = "SELECT * FROM `login` WHERE `Username`='".$uname."' && `Password`='".$password."';

в которой отсутствует заключительная цитата. Так и должно быть:
$sql = "SELECT * FROM `login` WHERE `Username`='".$uname."' && `Password`='".$password."'"; // note final double quote character.


Но пока мы здесь, давайте просто упомянем две основные проблемы с вашим кодом.

1. и самое главное, вы храните пароли в открытом тексте, чтобы они были видны каждому хакеру в мире. Помимо риска для вашего бизнеса, вы можете нарушить законы О защите данных и подвергнуться уголовному преследованию.

2. Ваш код также уязвим для внедрения SQL и потери или уничтожения всей базы данных. Не используйте конкатенацию строк для создания операторов SQL, используйте правильные параметризованные запросы. Видеть bobby-tables.com: руководство по предотвращению SQL-инъекций[^].


Рейтинг:
0

Patrice T

Цитата:
Ошибка синтаксического анализа: синтаксическая ошибка, неожиданный конец файла в /storage/ssd3/415/13274415/public_html/login_page/login.php на линии 27

Не знаю, в чем может быть ошибка, так как в вашем коде нет 27 строк.
но я вижу проблемы в вашем коде:
- "{" и "}" должны быть сопоставлены, но начало 1 является частью комментария в строке 1
1  // connect_errno) {
2    echo "Failed to connect to MySQL: " . $con -> connect_error;
3    exit();
4  }

То же самое для цитат
7  $sql = "SELECT * FROM `login` WHERE `Username`=\"devansh\" && `Password`=\"12345\"";
 8  $result = mysqli_query($db,$sql);

Профессиональные редакторы программистов имеют такие функции, как сопоставление скобок и подсветка синтаксиса.
Блокнот++ Главная Страница[^]
личные[^]

[Обновление]
При использовании в качестве строковых маркеров кавычки и двойные кавычки идут в паре, 1 Открытие и 1 закрытие.
$sql = "SELECT * FROM `login` WHERE `Username`='".$uname."' && `Password`='".$password."'";
$result = mysqli_query($db,$sql);

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


Devansh V mistry

Сэр, пожалуйста, проверьте мой полный код

Patrice T

Вставьте код, о котором идет речь.

Devansh V mistry

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