Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: После установки кук ничего не отображается
 
 автор: RV   (11.03.2005 в 20:33)   письмо автору
 
 

есть 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. тема немного не так называется. сорри

   
 
 автор: cheops   (11.03.2005 в 22:00)   письмо автору
 
   для: RV   (11.03.2005 в 20:33)
 

Не очень понятен код - в нём пропущен по крайней мере один оператор if

   
 
 автор: RV   (12.03.2005 в 06:24)   письмо автору
 
   для: 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()

// далее пхп код
?>

   
 
 автор: cheops   (12.03.2005 в 10:24)   письмо автору
 
   для: RV   (12.03.2005 в 06:24)
 

Какой либо код с использованием функций MySQL до этого на сервере работал или это ваш первый скрипт? Настроено ли у вас расширение для работы с MySQL?

http://www.softtime.ru/info/articlephp.php?id_article=24

   
 
 автор: RV   (12.03.2005 в 12:04)   письмо автору
 
   для: cheops   (12.03.2005 в 10:24)
 

вроде заработало. незнаю в чем проблема, но переписал код и все заработало

   
 
 автор: Valeri   (12.03.2005 в 14:46)   письмо автору
 
   для: RV   (12.03.2005 в 12:04)
 

Вообще честно говоря код немного кривоват, не понятно зачем выставлять 2 куки , одну по логину, другую по пассу ? можно все вставить в одну. Зачем идет 2 обращения к БД через SELECT ? Так же можно обойтись одним. Да и зачем все вот эти не нужные проверки ? Все можно сделать проще, в 2 раза меньше и надежнее. Тогда мне кажется не будет возникать вопрос "почему то работает, то не работает ?"
Хотя это лично мое мнение, а Вам виднее.

   
 
 автор: RV   (12.03.2005 в 21:25)   письмо автору
 
   для: RV   (12.03.2005 в 06:24)
 

>зачем выставлять 2 куки , одну по логину, другую по пассу ?
пробовал так
setcookie ("cookie" , $username , $pass, mktime....(примерно))
кука не ставилась.
>идет 2 обращения к БД через SELECT
а одним это вложенный запрос или как?

а проверки для тестов

   
 
 автор: Valeri   (12.03.2005 в 23:38)   письмо автору
 
   для: 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 
"Вы не вошли";
 }
?>

к чему проверять на не правильность логина или пароля ? Если идет проверка по куке в которой выставлено сразу и пароль и логин, и пользователю все равно что там не правильно пароль или логин, он же не полезет в куку исправлять. А может вообще время действия куки истекло.

   
 
 автор: RV   (13.03.2005 в 07:28)   письмо автору
 
   для: Valeri   (12.03.2005 в 23:38)
 

по поводу кук.
таким способом не проверишь что неправильно. Если все правильно (есть имя, и пароль правильный), то ОК, если же нет имени (юзер не зареган) или имя есть но пасс неправильный, то в лшюбом случае выводится сообщение что Вы не вошли. а когда я ввожу много проверок и два селекта, то сначала проверяю есть ли такой юзер. если юзер есть, то проверяю к нему пароль, а если юзера нет, то пишу что такого имени нет.
> и пользователю все равно что там не правильно пароль или логин, он же не полезет в куку исправлять

вот вот :) как раз про полезет исправлять я и педполагаю. так. для самообучения.. все проверки для самообучения.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования