За последние 24 часа нас посетили 17527 программистов и 1587 роботов. Сейчас ищут 1384 программиста ...

не идет запрос на страничку авторизации

Тема в разделе "PHP для новичков", создана пользователем petrbba, 15 фев 2012.

  1. petrbba

    petrbba Активный пользователь

    С нами с:
    14 фев 2012
    Сообщения:
    14
    Симпатии:
    0
    стандартная форма авторизации инпуты логин и пароль и кнопка.
    идёт посылка запроса на страничку 1.php
    скрипт авторизации
    <?
    session_start();
    include ('config.php');
    mysql_connect($host, $user, $pass) or die("MySQL недоступен! ".mysql_error());
    mysql_select_db($name_db) or die("Нет соединения с базой данных ".mysql_error());
    $query = "select * from $admin";    
             $result = mysql_query($query);
                $num = mysql_num_rows($result);
    for($i=0;$i<$num;$i++) { $id = mysql_result($result,$i,"id");
    $login = mysql_result($result,$i,"login");
    $password = mysql_result($result,$i,"password");
    {if(($login1==$login)&&($password1==$password))
    {print "window.location='admin1.php'";}
    else
    {print "<p>invalid password</p>";} } } ?>

    и в итоге пустая страничка 1.php,и не понятно в чём ошибка
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    и в журналах пусто?
    может быть register_globals слава богу в значении off?
    форма сама как выглядит?
    отсюда мало что видно

    и еще: select * from $admin - так никогда не делаем, если остальной код равен приведенному листингу
    а вот это вообще резня бензопилой:
     
  3. petrbba

    petrbba Активный пользователь

    С нами с:
    14 фев 2012
    Сообщения:
    14
    Симпатии:
    0
    первая форма
    <form name="register" action="avtorizaciy.php" method="p">
    <tr>
    <td class="login-field-title" width="35%">Логин</td>
    <td class="login-field-content"><input type="text" name="username" id="username" value="" class="login-input" style="width:80%"></td>
    </tr>
    <tr>
    <td class="login-field-title">Пароль</td>
    <td class="login-field-content"><input type="password" name="password" size="12" class="login-input" style="width:80%"></td>
    </tr>
    <tr>
    <td></td>
    <td class="login-field-content">
    <input type="submit" class="login-button" value="Вход">
    </td>
    </tr>
    <tr><td colspan="2" class="login-field-content login-register" align="center"><a href="/manager/ispmgr?func=recovery">Восстановление пароля</a></td></tr>
    </form>
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    вот так называет поле логина. найдите мне его упоминание в проверяющем сценарии. нема?

    Добавлено спустя 1 минуту 39 секунд:
    никуда не отправимся

    Добавлено спустя 1 минуту 48 секунд:
    не нашел такого метода.

    Добавлено спустя 14 минут 11 секунд:
    в гугле можно найти тонну вариантов авторизации. ну или книжку почитать какую-нибудь.
    вот вам работа напильником:
    Код (PHP):
    1. <?php // <?php вместо <? - short_open_tag может быть отключен
    2. session_start(); // тут ладно
    3. include ('config.php'); // пофиг
    4. mysql_connect($host, $user, $pass) or die("MySQL недоступен! ".mysql_error()); //сойдет
    5. mysql_select_db($name_db) or die("Нет соединения с базой данных ".mysql_error());//прокатит
    6. $username = isset($_POST['username'])?mysql_escape_string($_POST['username']):null;// если форма отправлена - "безопасный" юзернэйм иначе...
    7. if(null===$username)
    8. {
    9.     // тут обработка ситуации "форма не отправлена"
    10.     exit;
    11. }
    12.  
    13. $password = isset($_POST['password'])?$_POST['password']:null; // пароль или см выше
    14. $query = "SELECT `password` FROM `tablitsa_polzovateley` WHERE `login` = '{$username}'";//готовим запрос
    15. $result = mysql_query($query);// выполняем запрос
    16. if( 1 != mysql_num_rows($result) )// пользователь с таким юзернеймом может быть только один
    17. {
    18.     // обработка ситуации "пользователь не найден"
    19.     exit;
    20. }
    21.  
    22. $user_row = mysql_fetch_assoc($result); // получили данные о пользователе (в этом примере только пароль)
    23. if( $user_row['password'] !== $password ) // проверили пароль
    24. {
    25.     // обработка ситуации "неверный пароль"
    26.     exit;
    27. }
    28.  
    29. header('Location:admin1.php'); // отправили залогиненого пользователя дальше
    30. ?>
    но вам еще нужно его улучшить... справитесь?))))
     
  5. AndreJM

    AndreJM Активный пользователь

    С нами с:
    25 янв 2012
    Сообщения:
    522
    Симпатии:
    0
    Код (PHP):
    1. if(is_null($username)) 
    не?
     
  6. petrbba

    petrbba Активный пользователь

    С нами с:
    14 фев 2012
    Сообщения:
    14
    Симпатии:
    0
    попробую
     
  7. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    22/6
    20/3
    не)))
     
  8. AndreJM

    AndreJM Активный пользователь

    С нами с:
    25 янв 2012
    Сообщения:
    522
    Симпатии:
    0
    Касательно скорости, выигрывает конечно '==='
     
  9. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    скорости набора да. и интерпретация? по идее null и есть null и тождественное сравнение не будет делать лишнего приведения типов. как и is_null которая сразу ответит null в переменной или нет.
     
  10. AndreJM

    AndreJM Активный пользователь

    С нами с:
    25 янв 2012
    Сообщения:
    522
    Симпатии:
    0
    Код (PHP):
    1. $value = NULL;
    2. $time = microtime(true);
    3. for($i=0; $i<1000; $i++) {
    4.     is_null($value);
    5. }
    6. print microtime(true) - $time;
    7.  
    8. $time = microtime(true);
    9. for($i=0; $i<1000; $i++) {
    10.     null === $value;
    11. }
    12. print microtime(true) - $time;
    13. // RESULT
    14. 0.001270055770874
    15. 0.00031781196594238
     
  11. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965