[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите разобраться с ошибкой
ashenemy
Вот такая тема хочу написать программу авторизации пользователей но проблема в том что она работает прекрасно с обычными переменными, до тех пор когда я не подключаюсь к базе при подключении появляются две проблемы
1. это такая ошибка
Цитата
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\appserv2\www\2\index.php on line 19

2, он просто оказывается проверять данные из базы точнее по хъоду он читать вообще не хочет и при введленном пароле и логине выдает что они не правильные
PHP
  1.  
  2. <?
  3. $conn = mysql_connect("localhost",
  4. "","");
  5. mysql_select_db("fite");
  6. $$SERVER_ROOT="http://127.0.0.1/2/";
  7. if(eregi("^$SERVER_ROOT",
  8. $_SERVER['HTTP_REFERER'])){
  9. if (!isset($_POST['go'])){
  10. echo "<form method=POST >
  11. Login: <input type=text name=login>
  12. Password: <input type=password name=passwd>
  13. <input type=submit name=go value=Go>
  14. </form>";
  15. }else {
  16. $sql = "SELECT * FROM user
  17. WHERE login='" . $_POST['login'] . "' AND passwd='" . $_POST['pass'] . "';";
  18. $q = mysql_query($sql,$conn); // отправляем запрос к БД
  19. $number = mysql_num_rows($q); // число строк в ответе на запрос
  20. if (!$n==0){
  21. $_SESSION['user_login']=$_POST['login'];
  22. Header("Location: secret_info.php");
  23. }else echo "Неверный ввод, попробуйте еще раз<br>";
  24. }
  25. print_r($_SESSION);
  26. }
  27. ?>
  28.  
  29.  

помогите плз найти ошибку или если у кого есть такой же скрипт но рабочийц скиньте плз заранее благодарен



Спустя 1 час, 40 минут, 40 секунд (4.02.2007 - 04:16) Ghost написал(а):
вполне логично, ты же не задал ни логина, ни пароля для конекта с базой (в 4-й строке), кроме того

7. $$SERVER_ROOT="http://127.0.0.1/2/";

Спустя 5 часов, 38 минут, 1 секунда (4.02.2007 - 09:54) Patrick написал(а):
$$SERVER_ROOT="http://127.0.0.1/2/";$$SERVER_ROOT="http://127.0.0.1/2/"; - порнография!

$sql = "SELECT * FROM user
WHERE login='" . $_POST['login'] . "' AND passwd='" . $_POST['pass'] . "';";

- а где ты взял $_POST['pass'], у тебя есть $_POST['passwd'].

+ с таким запросом я зайду незная пароля влёт!

Спустя 2 часа, 2 минуты, 32 секунды (4.02.2007 - 11:56) levis написал(а):
код вообще..

$_POST['pass']---как так если в форме name=passwd

а ты вообще про SQL иньекцию слышал когда нить?----- 'OR 1,1

Спустя 1 час, 4 минуты, 5 секунд (4.02.2007 - 13:00) ashenemy написал(а):
ну тогда помогите плз исправить ошибку и сделать пограмотнее скрипт очень надо ребят

Спустя 40 минут, 1 секунда (4.02.2007 - 13:40) Patrick написал(а):
PHP
  1. <?
  2. $conn = @mysql_connect("localhost",
  3. "","");
  4. @mysql_select_db("fite");
  5.  
  6.  
  7. if (!isset($_POST['passwd']) or !isset($_POST['login'])){
  8. echo "<form method=POST >
  9. Login: <input type=text name=login>
  10. Password: <input type=password name=passwd>
  11. <input type=submit name=go value=Go>
  12. </form>";
  13. exit();
  14. }else {
  15. $login = (isset($_POST['login']))? mysql_escape_string($_POST['login']) : '' ;
  16. $password = (isset($_POST['passwd'])) ? mysql_escape_string($_POST['passwd']) : '';
  17. $sql = "SELECT * FROM user WHERE login='$login' AND passwd='$password'";
  18. $q = @mysql_query($sql,$conn); // отправляем запрос к БД
  19. if($q)
  20. {
  21. $res = mysql_fetch_array($q);
  22. $_SESSION['user'] = $res[0]['login'];
  23. header('Location: ./secret.php');
  24. exit();
  25. }else{
  26. echo 'неверный пароль';
  27. exit();
  28. }
  29.  
  30. }
  31. ?>
  32.  

Не проверял, но должно работать...

Спустя 4 часа, 12 минут, 48 секунд (4.02.2007 - 17:53) PantiL написал(а):
PHP
  1.  
  2. $login = (isset($_POST['login']))? mysql_escape_string($_POST['login']) : '' ;
  3. $password = (isset($_POST['passwd'])) ? mysql_escape_string($_POST['passwd']) : '';
  4.  

Здесь проверки уже излишни, если до этого места в коде дошло выполнение, то полюбому оба элеменат массива ПОСТ существуют.


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.