|
|
|
| есть index.php
<?
if (isset($_COOKIE['cookie_name'])) //юзер пришел на сайт. смотрим есть ли у него куки или нет.
{
$cookie_user_name = $_COOKIE['cookie_name'];
$cookie_user_pass = $_COOKIE['cookie_pass'];
сверяем данные в куках с бд. если все сошлось, то юзер опознан.
{
$inc = "ok" ;
}
else
{
$inc = "pass incorrect"; //имя правильно, пароль нет
}
}
else
{
$inc = "login_incorrect"; //имени в бд нет
}
}
else
{
$inc = "вы не вошли"; //у юзера нет куков
};
include 'index.html';
далее пхп код
?>
|
index.html
<html>
...идет обычный хтмл...
<?=$inc?>
</html>
|
вот вроде все. содержимое куки, когда она стоит
cookie_name
rv
localhost/site2/
1024
2225860608
30055677
804378816
29697629
*
cookie_pass
09060616068d2b9544dc33f2fbe4ce2d //пропущено через md5
localhost/site2/
1024
2225860608
30055677
804378816
29697629
*
по задумке в не зависимости от результатов проверки кук будет отображатся index.html и значение перменной $inc.
но если кука изначально стоит, то на месте site2/index.php вылазеет пустая страница. если кука не стоит, то все ок, захожу в логин, логнюсь, ставит куку, пишет логин ок, нажимаю на index.php - опять пустая страница. а если убрать полностью проверку кук, то опять все нормально. где косяк??
ps. тема немного не так называется. сорри | |
|
|
|
|
|
|
|
для: RV
(11.03.2005 в 20:33)
| | Не очень понятен код - в нём пропущен по крайней мере один оператор if | |
|
|
|
|
|
|
|
для: cheops
(11.03.2005 в 22:00)
| |
<?php
if (isset($_COOKIE['cookie_name']))
{
$name = $_COOKIE['cookie_name'];
$pass = $_COOKIE['cookie_pass'];
$login = "SELECT username FROM users WHERE name = '$name' ";
$pass = "SELECT password FROM users WHERE name = '$name' AND password = '$pass'";
connect();
$login_query = mysql_query($login);
if (mysql_num_rows($login_query))
{
$pass_query = mysql_query($pass);
if (mysql_num_rows($pass_query))
{
$inc = "ok" ;
}
else
{
$inc = "pass incorrect";
}
}
else
{
$inc = "login_incorrect";
}
}
else
{
$inc = "вы не вошли";
}
require 'config.php'; //там находится функция connect()
// далее пхп код
?>
|
| |
|
|
|
|
|
|
|
для: RV
(12.03.2005 в 06:24)
| | Какой либо код с использованием функций MySQL до этого на сервере работал или это ваш первый скрипт? Настроено ли у вас расширение для работы с MySQL?
http://www.softtime.ru/info/articlephp.php?id_article=24 | |
|
|
|
|
|
|
|
для: cheops
(12.03.2005 в 10:24)
| | вроде заработало. незнаю в чем проблема, но переписал код и все заработало | |
|
|
|
|
|
|
|
для: RV
(12.03.2005 в 12:04)
| | Вообще честно говоря код немного кривоват, не понятно зачем выставлять 2 куки , одну по логину, другую по пассу ? можно все вставить в одну. Зачем идет 2 обращения к БД через SELECT ? Так же можно обойтись одним. Да и зачем все вот эти не нужные проверки ? Все можно сделать проще, в 2 раза меньше и надежнее. Тогда мне кажется не будет возникать вопрос "почему то работает, то не работает ?"
Хотя это лично мое мнение, а Вам виднее. | |
|
|
|
|
|
|
|
для: RV
(12.03.2005 в 06:24)
| | >зачем выставлять 2 куки , одну по логину, другую по пассу ?
пробовал так
setcookie ("cookie" , $username , $pass, mktime....(примерно))
кука не ставилась.
>идет 2 обращения к БД через SELECT
а одним это вложенный запрос или как?
а проверки для тестов | |
|
|
|
|
|
|
|
для: RV
(12.03.2005 в 21:25)
| | в куку можно запихать сколько угодно переменных, да еще зашифровать для приличия
ставится примерно так
<?
// запихиваем 4 переменные и шифруем
$info = base64_encode("$user_id:$username:$pass:$mail");
setcookie("user","$info",time()+2592000);
?>
|
все, в шифрованной куки стоит 4 переменные
если надо узнать что в куки, то дешифруем и вытаскиваем переменные
<?
$user = base64_decode($_COOKIE['user']);
$cookie = explode(":", $user);
$user_id = $cookie[0];
$username = $cookie[1];
$passw = $cookie[2];
$email = $cookie[3];
?>
|
теперь по SELECT и тесты
<?
$row = mysql_query("SELECT * FROM users WHERE name='$username' AND password='$passw'");
if(mysql_numrows($row) != "0") {
echo "O.K.";
} else {
echo "Вы не вошли";
}
?>
|
к чему проверять на не правильность логина или пароля ? Если идет проверка по куке в которой выставлено сразу и пароль и логин, и пользователю все равно что там не правильно пароль или логин, он же не полезет в куку исправлять. А может вообще время действия куки истекло. | |
|
|
|
|
|
|
|
для: Valeri
(12.03.2005 в 23:38)
| | по поводу кук.
таким способом не проверишь что неправильно. Если все правильно (есть имя, и пароль правильный), то ОК, если же нет имени (юзер не зареган) или имя есть но пасс неправильный, то в лшюбом случае выводится сообщение что Вы не вошли. а когда я ввожу много проверок и два селекта, то сначала проверяю есть ли такой юзер. если юзер есть, то проверяю к нему пароль, а если юзера нет, то пишу что такого имени нет.
> и пользователю все равно что там не правильно пароль или логин, он же не полезет в куку исправлять
вот вот :) как раз про полезет исправлять я и педполагаю. так. для самообучения.. все проверки для самообучения. | |
|
|
|