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

Форум PHP

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

 

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

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

тема: Вход пользователя...
 
 автор: JESS   (18.03.2008 в 19:22)   письмо автору
 
 

Здравствуте, вот нашела на сайте подходящий скрипт регистрации и входа пользонателя, но есть проблема, после входа воводиться информация, но а после нажатия на ссылку или произведения как либо действия выводиться снова форма входа, помогите ПЛЗ!
<?php
  $filename 
"text.txt";
  
define("FIRST",1);
  if(empty(
$_POST))
  {
    
?>
    <table>
      <form method=post>
        <form method=post action="2.php">
      <tr>
        <td>Namn:</td>
        <td><input type=text name=name></td>
      </tr>
      <tr>
        <td>L&#246;senord:</td>
        <td><input type=password name=pass></td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td><input type=submit value=' Logga in '></td>
      </tr>
      </form>

   </table>
   <?php

  
}

  else
  {

    
$_POST['pass']=md5($_POST['pass']);
    
setcookie ('name'$_POST['name'],1,time()+60,"index.php");
    
setcookie ('pass'$_POST['pass'],1,time()+60,"index.php");

    
$arr file($filename);
    
$i 0;
    
$temp = array();
    foreach(
$arr as $line)
    {
      
$data explode("::",$line);

      
$temp['name'][$i]     = $data[0];
      
$temp['password'][$i] = $data[1];
      
$temp['email'][$i]    = $data[2];

      
$i++;
    }


    if(!
in_array($_POST['name'],$temp['name']))
    {
      exit(
"Fel");
    }
    
$index array_search($_POST['name'],$temp['name']);
    if(
$_POST['pass'] != $temp['password'][$index])
    {
      exit(
"ERROR");
    }

    
//-------------------------------------------------------------------------------


     
if(isset($_GET['page'])) $mod $_GET['page'];
if(isset(
$_GET['page'])==false) {$menu 'home.htm';}

if(isset(
$mod))
   {
    switch(
$mod)
         {

case 
'1':

echo  
$_COOKIE["pass"];
echo  
$_COOKIE["name"];
print 
"hello!";

break;

case 
'2'$menu='priser.htm';break;

default: 
$menu 'home.htm'; break;

}
  }
    
?>
<a href="?page=1">My Home Page!</a>

<?php
  
}
?>

   
 
 автор: DEM   (18.03.2008 в 20:27)   письмо автору
 
   для: JESS   (18.03.2008 в 19:22)
 

Попробуйте вверху не if(empty($_POST)), а
if(empty($_COOKIE['name']) OR empty($_COOKIE['pass']))

   
 
 автор: JESS   (18.03.2008 в 21:14)   письмо автору
 
   для: DEM   (18.03.2008 в 20:27)
 

даже ни какой реакции... =(

   
 
 автор: moonfox   (18.03.2008 в 22:12)   письмо автору
 
   для: JESS   (18.03.2008 в 21:14)
 

в сессию поместите проверочное значение

   
 
 автор: exp   (18.03.2008 в 22:39)   письмо автору
 
   для: moonfox   (18.03.2008 в 22:12)
 

setcookie ('name', $_POST['name'],1,time()+60,"index.php");

куки только на 60 секунд и вместо index.php поставьте хоть /
насколько знаю index.php означает что куки только для путей начинающихся с index.php

   
 
 автор: JESS   (18.03.2008 в 22:44)   письмо автору
 
   для: exp   (18.03.2008 в 22:39)
 

все изменил, но так и ни какой реакции....

   
 
 автор: EXP   (18.03.2008 в 22:56)   письмо автору
 
   для: JESS   (18.03.2008 в 22:44)
 

if(empty($_POST)) 
  { 
    ?> 
    <table> 
      <f


значит что форма для авторизации будет показываться всегда когда вы не отправляете её

// хотя поспешил
$data = explode("::",$line);

в файле text.txt имеются данные?
они совпадают ?

   
 
 автор: JESS   (18.03.2008 в 23:03)   письмо автору
 
   для: EXP   (18.03.2008 в 22:56)
 

да все совподает ...

   
 
 автор: exp   (18.03.2008 в 23:05)   письмо автору
 
   для: EXP   (18.03.2008 в 22:56)
 

вообще-то всё правильно если не срабатывает exit("Fel");

:)

if(empty($_POST)) 
  { 
   

переделайте условие

там нужна уже проверка существующих правильных куки
или установка их из пост

   
 
 автор: JESS   (23.03.2008 в 01:20)   письмо автору
 
   для: exp   (18.03.2008 в 23:05)
 

что то ни чего не понимаю =( что нужно сделать...

   
 
 автор: Atheist   (23.03.2008 в 01:53)   письмо автору
 
   для: JESS   (23.03.2008 в 01:20)
 

> if(empty($_POST))

if( empty($_POST) && !(isset($_COOKIE['name'] && isset($_COOKIE['pass'])))

   
 
 автор: JESS   (23.03.2008 в 02:13)   письмо автору
 
   для: Atheist   (23.03.2008 в 01:53)
 

вот пишет ошибку> Parse error: parse error, unexpected T_BOOLEAN_AND

   
 
 автор: Atheist   (23.03.2008 в 02:59)   письмо автору
 
   для: JESS   (23.03.2008 в 02:13)
 

Извиняюсь: if( empty($_POST) && !( isset($_COOKIE['name']) && isset($_COOKIE['pass']) ))

   
 
 автор: Usta   (23.03.2008 в 03:05)   письмо автору
 
   для: Atheist   (23.03.2008 в 02:59)
 

Люди извините за флуд! как добавить тему. Главное зарегился добавляю тему. А она не добавляется. Нужно наверно ждать пока ее админы проверят?

   
 
 автор: cheops   (23.03.2008 в 10:54)   письмо автору
 
   для: Usta   (23.03.2008 в 03:05)
 

Вероятно произошёл сбой - попробуйте ещё раз.

   
 
 автор: JESS   (23.03.2008 в 03:58)   письмо автору
 
   для: Atheist   (23.03.2008 в 02:59)
 

спасибо огромное, все классно работает, хехе, вот только не знаю как кукускы установить что бы можно было через форму зайти и они сохранилить?!?!

куда
setcookie('password', '$password', time()+ 3600*24*10);
вписать не знаю! помогите ПЛЗ!

   
 
 автор: Atheist   (23.03.2008 в 11:19)   письмо автору
 
   для: JESS   (23.03.2008 в 03:58)
 

> setcookie('password', '$password', time()+ 3600*24*10);
При выделении строки апострофами, интерполяция переменных не происходит, т.е. ты получишь от строки '$password' не значение переменной $password, а так и получишь знак бакса со словом "password".
Надо писать setcookie('password', $password, time()+ 3600*24*10);

А эту строку можно запихнуть куда угодно - главное до вывода какой-либо информации посетителю.

Ну а в данном случае куда такое пихать не знаю, потому что в в коде нет переменной $password, т.е. смысл от этой cookie нулевой. А если в другом скрипте, то смотри по аналогии с этим кодом.

   
 
 автор: JESS   (24.03.2008 в 22:13)   письмо автору
 
   для: Atheist   (23.03.2008 в 11:19)
 

все классно, СПАСИБО! кукисы поставила, но вот сложновато дизайн настроить, после exit(); все исчазает, при ошибочном входе, при выводе ошибки..

Но при этом примере ползователь сможет просмотреть информацию после входа, щас я хочю сделать чтобы пользователь мог смотреть информацию до авторизации, но оставлять коментарии и т.д и .тп после.

Во решила использовать Сессии, после авторизации устанавливаються сессии:
<? 
session_start
();
$sid session_id();
$_SESSION['sid'] = $sid;
$_SESSION['name'] = $_POST['name']; 
?>

потом проверяюстся на главной странице:

session_start();
$sid = session_id();
if($sid != $_SESSION['sid'] )
    {    print "Привет, Гость!<br>";    }    else    { print "Привет, ".$_SESSION['name']."<br>";}

Подскажите пожалуйста, я правельно делаю?

   
Rambler's Top100
вверх

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