<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>اول اسكربت باذن الله</title>
</head>
<body>
<table width="100%" border="1">
<tr>
<td>name</td>
<td>number</td>
<td>math</td>
<td>arab</td>
<td>history</td>
<td>geo</td>
</tr>
<?php
require_once "conf.php";
$sql2=("SELECT * FROM student WHERE snum = $ss");
$rs2 = mysql_query($sql2) or die(mysql_error());
$num = mysql_num_rows($rs2);
$ss= $_POST["ss"];
if (empty($ss))
{ echo "please write your search words";}
else if ($num < 1) {
echo "not found any like ";
}else {
$sql=("SELECT * FROM student WHERE snum = $ss ");
$rs = mysql_query($sql) or die(mysql_error());
while($data=mysql_fetch_array($rs)){
$name=$data["sname"];
$number=$data["snum"];
$math=$data["math"];
$arab=$data["arab"];
$history=$data["history"];
$geo=$data["geo"];
echo"
<tr>
<td>$name</td>
<td>$number</td>
<td>$math</td>
<td>$arab</td>
<td>$history</td>
<td>$geo</td>
</tr>
";
}
};
?>
</table>
</body>
</html>
ответ
Я думаю, что $ сс = $ _POST [ "сс"]; должен пройти до
$ sql2 = ("SELECT * FROM student WHERE snum = $ ss");
Cris вы veryyyyyy бог человек это работа теперь спасибо – magy
$ss
a string? Если у вас есть это?
$sql2=("SELECT * FROM student WHERE snum = '$ss'");
no is number num $ sql2 = ("SELECT * FROM student WHERE snum = $ ss"); – magy
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; - База данных: 'Таможня' - структура таблицы для таблицы' student' CREATE TABLE IF NOT EXISTS 'student' ( ' id' INT (11) NOT NULL AUTO_INCREMENT, 'sname' VARCHAR (100) NOT NULL, 'snum' INT (15) NOT NULL,' math' INT (10) NOT NULL, ' arab' INT (10) NOT NULL,' history' INT (10) NOT NULL, 'geo' int (10) NOT NULL, ПЕРВИЧНЫЙ КЛЮЧ ('id') ) ENGINE = MyISAM DEFAULT CHARSET = cp1256 AUTO_INCREMENT = 3; – magy
Вы передаете несуществующую переменную $ss
в запрос перед выходом:
$sql2=("SELECT * FROM student WHERE snum = $ss"); // <-- problem here
$rs2 = mysql_query($sql2) or die(mysql_error());
$num = mysql_num_rows($rs2);
$ss= $_POST["ss"];
Попробуйте это:
require_once "conf.php";
$ss= $_POST["ss"];
if (empty($ss))
{ echo "please write your search words";}
else if ($num < 1) {
echo "not found any like ";
}else {
$sql=("SELECT * FROM student WHERE snum = $ss ");
$rs = mysql_query($sql) or die(mysql_error());
// and more code...
Вы не можете использовать переменную, которая не была инициализирована. В вашем случае $ss
, вероятно, не определен, когда вы используете его для построения запроса в $sql2
. Это приводит к неверному запросу SQL, поскольку после оператора =
ничего не происходит.
Попробуйте вместо этого:
require_once "conf.php";
if (!isset($_POST["ss"])) {
echo "please write your search words";
} else {
$ss = $_POST["ss"];
$query = "SELECT * FROM student WHERE snum = '".mysql_real_escape_string($ss)."'";
$result = mysql_query($query) or die(mysql_error());
if (mysql_num_rows($result) == 0) {
echo "not found anything like ".htmlspecialchars($ss);
} else {
while ($data=mysql_fetch_array($result)) {
// …
}
}
}
Серьезно?
Первый: php - простой язык программирования. Он выполняет все, что вы ему даете, в том порядке, в котором вы его даете. Вот почему переменная $ ss, которую вы пытаетесь использовать в своем запросе, не существует, когда вы пытаетесь ее использовать. Вы должны назначить его значение перед его использованием.
Теперь давайте начнем быть задницей. $_POST['ss']
предоставлен вашим пользователем. Не верьте этому. Никогда не доверяйте пользовательскому вводу! Они хотят взять под контроль ваш сервер, чтобы они могли найти вас и похитить вас, чтобы попросить выкупить. Поэтому не используйте его в своем запросе, не проверяя его значение. Представьте, если вы отправите $ _POST ['ss'] = '1 ИЛИ 1'; Лучший способ справиться с подобными вещами - использовать параметризованные запросы с mysqli или PDO.
+1 Это моя любимая мозоль, чтобы увидеть SQL Injection уязвимый код. – tangrs
- 1. Почему этот код не работает
- 2. Почему этот код не работает
- 3. почему этот код не работает
- 4. Почему этот код не работает?
- 5. Почему этот код не работает?
- 6. Почему этот код не работает?
- 7. Почему этот код не работает
- 8. Почему этот код не работает?
- 9. Почему этот код не работает
- 10. Почему этот код не работает?
- 11. Почему этот код не работает?
- 12. Почему этот код не работает?
- 13. Почему этот код не работает?
- 14. Почему этот код не работает?
- 15. Почему этот код не работает?
- 16. , почему этот код не работает
- 17. Почему этот код не работает?
- 18. Почему этот код не работает?
- 19. Почему этот код не работает?
- 20. Почему этот код не работает?
- 21. почему этот код не работает?
- 22. Почему этот код не работает?
- 23. Почему этот код не работает? :(
- 24. Почему этот код не работает?
- 25. Почему этот код не работает?
- 26. Почему этот код не работает?
- 27. Почему этот код не работает?
- 28. Почему этот код не работает?
- 29. Почему этот код не работает?
- 30. Почему этот код работает?
который код sql? – hgulyan