стандартная форма авторизации инпуты логин и пароль и кнопка. идёт посылка запроса на страничку 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,и не понятно в чём ошибка
и в журналах пусто? может быть register_globals слава богу в значении off? форма сама как выглядит? отсюда мало что видно и еще: select * from $admin - так никогда не делаем, если остальной код равен приведенному листингу а вот это вообще резня бензопилой:
первая форма <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>
вот так называет поле логина. найдите мне его упоминание в проверяющем сценарии. нема? Добавлено спустя 1 минуту 39 секунд: никуда не отправимся Добавлено спустя 1 минуту 48 секунд: не нашел такого метода. Добавлено спустя 14 минут 11 секунд: в гугле можно найти тонну вариантов авторизации. ну или книжку почитать какую-нибудь. вот вам работа напильником: Код (PHP): <?php // <?php вместо <? - short_open_tag может быть отключен session_start(); // тут ладно include ('config.php'); // пофиг mysql_connect($host, $user, $pass) or die("MySQL недоступен! ".mysql_error()); //сойдет mysql_select_db($name_db) or die("Нет соединения с базой данных ".mysql_error());//прокатит $username = isset($_POST['username'])?mysql_escape_string($_POST['username']):null;// если форма отправлена - "безопасный" юзернэйм иначе... if(null===$username) { // тут обработка ситуации "форма не отправлена" exit; } $password = isset($_POST['password'])?$_POST['password']:null; // пароль или см выше $query = "SELECT `password` FROM `tablitsa_polzovateley` WHERE `login` = '{$username}'";//готовим запрос $result = mysql_query($query);// выполняем запрос if( 1 != mysql_num_rows($result) )// пользователь с таким юзернеймом может быть только один { // обработка ситуации "пользователь не найден" exit; } $user_row = mysql_fetch_assoc($result); // получили данные о пользователе (в этом примере только пароль) if( $user_row['password'] !== $password ) // проверили пароль { // обработка ситуации "неверный пароль" exit; } header('Location:admin1.php'); // отправили залогиненого пользователя дальше ?> но вам еще нужно его улучшить... справитесь?))))
скорости набора да. и интерпретация? по идее null и есть null и тождественное сравнение не будет делать лишнего приведения типов. как и is_null которая сразу ответит null в переменной или нет.
Код (PHP): $value = NULL; $time = microtime(true); for($i=0; $i<1000; $i++) { is_null($value); } print microtime(true) - $time; $time = microtime(true); for($i=0; $i<1000; $i++) { null === $value; } print microtime(true) - $time; // RESULT 0.001270055770874 0.00031781196594238