| |
|
|
| | Программа работает, а коментарии правильно вывести к ней не получается.
Помогите, не пойму как исправить.
Суть программы : Конект к базе данных, сравнение есть ли такой пользователь,
update пароля.
Программа по изменению старого пароля:
html форма:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>HTML FORM</title>
</head>
<body>
<FORM ACTION="par1.php" METHOD=POST>
number <INPUT TYPE=TEXT NAME="number" maxlength=15><BR>
parol <INPUT TYPE="password" NAME="parol" maxlength=5><BR>
newparol <INPUT TYPE="password" NAME="newparol" maxlength=5><BR>
podtvpar <INPUT TYPE="password" NAME="podtvpar" maxlength=5><BR>
</TEXTAREA<BR>
<INPUT TYPE=SUBMIT NAME="SUBMIT" VALUE="Send!">
</body>
</html>
Пхп - код:
#!/usr/local/bin/php
<?php
include "./common_db.inc";
Error_Reporting(E_ALL & ~E_NOTICE);
$link_id = db_connect('Nortwind');
$result = mssql_query("SELECT * from temppolzov where number='$number' and parol='$parol'");
if ($newparol!=$podtvpar)
echo "Passwords entered were not the same. Not changed.";
else if (strlen($newparol)>10 || strlen($newparol)<5)
echo "New password must be between 5 and 10 characters.Try again.";
else
{
$result = mssql_query("update temppolzov set parol='$newparol' where number='$number' and parol='$parol'");
}
if (!$result) echo "Password or number is not correct";
else
echo "Password is changed";
?>
1) не получается вывести сообщение о неправильном вводе пароля и номера пользователя
2) не получается в случае успешного выполнения кода вывести сообщение о изменении пароля
Подскажите пожайлуста. | |
| |
|
|
| |
|
|
| |
для: Вадя
(30.10.2007 в 17:34)
| | | Мне кажеться у Вас ошибка в запросе
$result = mssql_query("update temppolzov set parol='$newparol' where number='$number' and parol='$parol'");
Проверьте выполняется ли он. Мне кажется должно быть
$result = mssql_query("update temppolzov set parol='$newparol' where ((number='$number') and (parol='$parol'"))); | |
| |
|
|
| |
|
|
| |
для: kailDeSazerland
(30.10.2007 в 18:13)
| | | Спасибо, что откликнулись!!! Этот запрос отрабатывает правильно, вот только коментарии не получается добавить. Пользователям не видно где они делают ошибку. Подскажите, как правильно комментарии добавить:
if (!$result) echo "Password or number is not correct";
else
echo "Password is changed";
эти строчки не выходят | |
| |
|
|
| |
|
|
| |
для: Вадя
(30.10.2007 в 18:19)
| | | А так?
#!/usr/local/bin/php
<?php
include "./common_db.inc";
Error_Reporting(E_ALL & ~E_NOTICE);
$link_id = db_connect('Nortwind');
$result = mssql_query("SELECT * from temppolzov where number='$number' and parol='$parol'");
if ($newparol!=$podtvpar)
echo "Passwords entered were not the same. Not changed.";
else if (strlen($newparol)>10 || strlen($newparol)<5)
echo "New password must be between 5 and 10 characters.Try again.";
else
{
$result = mssql_query("update temppolzov set parol='$newparol' where number='$number' and parol='$parol'");
if (!$result) echo "Password or number is not correct";
else
echo "Password is changed";
}
?>
|
В таком варианте у меня все работает! | |
| |
|
|
| |
|
|
| |
для: kailDeSazerland
(30.10.2007 в 18:32)
| | | Проверял, в таком варианте, если вводишь неправильный пароль, вё равно пишет:Password is changed | |
| |
|
|
| |
|
|
| |
для: Вадя
(31.10.2007 в 11:09)
| | | из вашего кода не видно откуда берутся переменные которые используются в запросе... | |
| |
|
|
| |
|
|
| |
для: KPETuH
(31.10.2007 в 11:26)
| | | переменные берутся из базы данных mssql | |
| |
|
|
| |
|
|
| |
для: Вадя
(31.10.2007 в 11:35)
| | | #!/usr/local/bin/php
<?php
include "./common_db.inc";
Error_Reporting(E_ALL & ~E_NOTICE);
$link_id = db_connect('Nortwind');
$result = mssql_query("SELECT * from temppolzov where number='$number' and parol='$parol'");
if (mssql_num_rows(!$result) <= 0 ) echo "Password or number is not correct"; // ошибка
else
if ($newparol!=$podtvpar)
echo "Passwords entered were not the same. Not changed.";
else if (strlen($newparol)>10 || strlen($newparol)<5)
echo "New password must be between 5 and 10 characters.Try again.";
else
{
$result = mssql_query("update temppolzov set parol='$newparol' where number='$number' and parol='$parol'");
if (mssql_affected_rows($result) > 0) echo "Password is changed"; // ошибка
else
echo "Invalid query: " . mssql_error(); //
}
?>
Пробывал так, тоже ошибки | |
| |
|
|
| |
|
|
| |
для: Вадя
(31.10.2007 в 11:38)
| | | При таком варианте выдаёт сообщение:
Warning: mssql_num_rows(): supplied argument is not a valid MS SQL-result resource in v:\home\localhost\cgi-bin\par2.php on line 8
Password or number is not correct
Это если всё введено правильно: номер и пароль.
Если я убираю знак <= 0
if (mssql_num_rows(!$result) <= 0 ) echo "Password or number is not correct";
то тогда ошибка:вызов в неопределённую функцию:Fatal error: Call to undefined function: mssql_affected_rows()
в строке:if (mssql_affected_rows($result) > 0) echo "Password is changed";
не пойму, должно же так работать???? ::(((((( | |
| |
|
|
| |
|
|
| |
для: Вадя
(31.10.2007 в 11:42)
| | | еще раз для дураков укажите пожалуйста откуда вы берете переменные $number и $parol судя по вашему скрипту они пустые.... | |
| |
|
|
| |
|
|
| |
для: KPETuH
(31.10.2007 в 11:43)
| | | Вводятся через форму :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>HTML FORM</title>
</head>
<body>
<FORM ACTION="par1.php" METHOD=POST>
number <INPUT TYPE=TEXT NAME="number" maxlength=15><BR>
parol <INPUT TYPE="password" NAME="parol" maxlength=5><BR>
newparol <INPUT TYPE="password" NAME="newparol" maxlength=5><BR>
podtvpar <INPUT TYPE="password" NAME="podtvpar" maxlength=5><BR>
</TEXTAREA<BR>
<INPUT TYPE=SUBMIT NAME="SUBMIT" VALUE="Send!">
</body>
</html> | |
| |
|
|
| |
|
|
| |
для: Вадя
(31.10.2007 в 11:45)
| | | ГДЕ ОНИ ИНИЦИИРУЮТСЯ в СКРИПТЕ PHP
я в вашем примере не увидел например такой записи
и тд. | |
| |
|
|
| |
|
|
| |
для: KPETuH
(31.10.2007 в 11:47)
| | | Поправьте код, как вы считаете нужным. Проблема заключалась только в коментариях: если пароль или код не правильно введён - вывод сообщения. И если изменён - вывод сообщения. Та к прога работала. А с коментами после выполнения кода - грабли. Как я понял инициализация через запрос к базе данных :
$result = mssql_query("SELECT * from temppolzov where number='$number' and parol='$parol'");
Я только разбираюсь в пхп...... | |
| |
|
|
| |
|
|
| |
для: Вадя
(31.10.2007 в 11:53)
| | | объясните как она у вас работала
если в запросах к базе
$result = mssql_query("SELECT * from temppolzov where number='$number' and parol='$parol'");
|
$result = mssql_query("update temppolzov set parol='$newparol' where number='$number' and parol='$parol'");
|
вместо $newparol, $number и $parol подставляются пустые значения, так как они у вас НИГДЕ не определены!!!!
вы должны явно определитть переменные как я написал выше
например
так как из вормы ваши значения попадают в массив $_POST | |
| |
|
|
| |
|
|
| |
для: KPETuH
(31.10.2007 в 11:56)
| | | пользователь вводит в поля формы:
1) номер
2) пароль
3) новый пароль
4) подтверждение пароля
Идёт запрос к базе данных проверяются позиции 1) и 2) через запрос к базе данных:
$result = mssql_query("SELECT * from temppolzov where number='$number' and parol='$parol'");
выполняется ряд условий: равенство 3) и 4) , определённая длина 3)
и если всё соответствует тогда накатывается update:
$result = mssql_query("update temppolzov set parol='$newparol' where number='$number' and parol='$parol'");
Не получалось вывести коментарии!
КАК СЧИТАЕТЕ НУЖНЫМ, ИЗМЕНИТЕ | |
| |
|
|
| |
|
|
| |
для: Вадя
(31.10.2007 в 12:02)
| | |
#!/usr/local/bin/php
<?php
include "./common_db.inc";
Error_Reporting(E_ALL & ~E_NOTICE);
$link_id = db_connect('Nortwind');
#######Изменения#############
$number=$_POST['number'];
$parol=$_POST['parol'];
$newparol=$_POST['newparol'];
$podtvpar=$_POST['podtvpar'];
##############################
$result = mssql_query("SELECT * from temppolzov where number='$number' and parol='$parol'");
if ($newparol!=$podtvpar)
echo "Passwords entered were not the same. Not changed.";
else if (strlen($newparol)>10 || strlen($newparol)<5)
echo "New password must be between 5 and 10 characters.Try again.";
else
{
$result = mssql_query("update temppolzov set parol='$newparol' where number='$number' and parol='$parol'");
}
if (!$result) echo "Password or number is not correct";
else
echo "Password is changed";
?>
|
| |
| |
|
|
| |
|
|
| |
для: KPETuH
(31.10.2007 в 12:13)
| | | Спасибо за изменения, работает прога, но проблема в этом:
if (!$result) echo "Password or number is not correct";
else
echo "Password is changed";
в любом случае выводится сообщение:Password is changed | |
| |
|
|
| |
|
|
| |
для: Вадя
(31.10.2007 в 12:31)
| | | мне для пользователей необходимо вывести
сообщения:
1) Если неправильно вводится пароль и номер - вывод сообщения
2) И если успешное выполнение программы - вывод сообщения
Это не получается! | |
| |
|
|
| |
|
|
| |
для: Вадя
(31.10.2007 в 12:34)
| | | ваша проблема в том что UPDATE видимо всегда возвращает положительный результат и проверять таким образом существование номера и и соответсвие его паролю некоректно... организуйте сначала проверку пароля а патом уже делайте UPDATE | |
| |
|
|
| |
|
|
| |
для: KPETuH
(31.10.2007 в 12:57)
| | | Да, точно вы определили! Подскажите, как правильно изменить? Вроде ничего сложного, а не могу дойти, как зделать корректно с коментариями!!! | |
| |
|
|
| |
|
|
| |
для: Вадя
(31.10.2007 в 13:03)
| | | например
$result = mysql_query("select number from temppolzov where number='$number' and parol='$parol'");
$s=mysql_fetch_row($result);
if (empty($s[0]))
{
echo "Password or number is not correct";
}
else
{
echo "Password is changed";
}
|
| |
| |
|
|
| |
|
|
| |
для: KPETuH
(31.10.2007 в 13:06)
| | | KPETuH!!!!!! ОГРОМНОЕ СПАСИБО!!!!! БЕЗ ВАС Я БЫ НЕ РАЗРУЛИЛ!!!!!!!!!!!!!!!!!!!!!!!!!! ЕЩЁ И ЕЩЁ РАЗ СПАСИБО ЗА ПОМОЩЬ, ПОНЯЛ СВОЮ ОШИБКУ!!!!! С ВАШИМ КОДОМ ЗАРАБОТАЛО!!!!!! | |
| |
|
|