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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Авторизация

Сообщения:  [1-10]    [11-20]  [21-21] 

 
 автор: hell_riser   (04.06.2006 в 19:52)   письмо автору
 
   для: ddhvvn   (04.06.2006 в 17:56)
 

Мне кажется что вам надо не инклюдить next.php а перегружать пользователя на него

<?php
//так у вас.
include "next.php";

//Попробуйте так.
 
echo "<META HTTP-EQUIV='REFRESH' CONTENT='0 URL=next.php'>";
 
?>

   
 
 автор: ddhvvn   (04.06.2006 в 17:56)   письмо автору
 
   для: ddhvvn   (04.06.2006 в 11:48)
 

Ну что так никто и не подскажет, где размещать этот header???

   
 
 автор: ddhvvn   (04.06.2006 в 11:48)   письмо автору
 
   для: cheops   (04.06.2006 в 11:27)
 

Теперь у меня вообще выдает "Такого пользователя не существует!"
Покажите на МОИХ кодах (см. выше) куда вставлять этот
header("Location: $_SERVER[PHP_SELF]"); 

Мне срочно надо, помогите пжлста!

   
 
 автор: cheops   (04.06.2006 в 11:27)   письмо автору
 
   для: ddhvvn   (04.06.2006 в 10:22)
 

Можно воспользовать либо заголовков Location, как пишет Panker
<?php
  header
("Location: $_SERVER[PHP_SELF]")
?>

либо воспользоваться META-тэгами
<?php
    
echo "<HTML><HEAD>
          <META HTTP-EQUIV='Refresh' CONTENT='0; URL=
$_SERVER[PHP_SELF]'>
          </HEAD></HTML>"
;
?>

   
 
 автор: Panker   (04.06.2006 в 10:38)   письмо автору
 
   для: ddhvvn   (04.06.2006 в 10:22)
 

Пример из моей гостевой, помойму один принцип у мну тоже даются куки но сразу не выводятся я перезагружаю страницу и всё пучком =)))


if ((empty ($_COOKIE['name'])) && (empty ($_COOKIE['mail'])))  //Посылает
{setcookie("name","Введите Имя", mktime(0,0,0,1,1,2009));      //Куки
setcookie("mail","Введите Email", mktime(0,0,0,1,1,2009));     //Юзеру
header("Location: index.php");}                                //Перекидывает на главную после получения куки

   
 
 автор: ddhvvn   (04.06.2006 в 10:23)   письмо автору
 
   для: valenok   (03.06.2006 в 23:17)
 

>Cookies will not become visible until the next loading of a
>page that the cookie should be visible for. To test if a
>cookie was successfully set, check for the cookie on a next
>loading page before the cookie expires. Expire time is set
>via the expire parameter. A nice way to debug the existence
>of cookies is by simply calling print_r($_COOKIE);.

??????????
Объясни ПО-РУССКИ!

   
 
 автор: ddhvvn   (04.06.2006 в 10:22)   письмо автору
 
   для: cheops   (03.06.2006 в 22:54)
 

>Всё правильно... лучше поставить перезагрузку страницы после
>setcookie, так как при первой загрузке primer.php
>HTTP-заголовки отправляются пользователю, но массив $_COOKIE
>ещё пуст, так как для того, чтобы его заполнить - нужно
>чтобы браузер прислал HTTP-заголовки cookie - а это
>происходит лишь после перезагрузки страницы...

Извините, напомните - как сделать ту самую перезагрузку

   
 
 автор: valenok   (03.06.2006 в 23:17)   письмо автору
 
   для: cheops   (03.06.2006 в 22:54)
 

Cookies will not become visible until the next loading of a page that the cookie should be visible for. To test if a cookie was successfully set, check for the cookie on a next loading page before the cookie expires. Expire time is set via the expire parameter. A nice way to debug the existence of cookies is by simply calling print_r($_COOKIE);.

   
 
 автор: cheops   (03.06.2006 в 22:54)   письмо автору
 
   для: ddhvvn   (03.06.2006 в 15:31)
 

Всё правильно... лучше поставить перезагрузку страницы после setcookie, так как при первой загрузке primer.php HTTP-заголовки отправляются пользователю, но массив $_COOKIE ещё пуст, так как для того, чтобы его заполнить - нужно чтобы браузер прислал HTTP-заголовки cookie - а это происходит лишь после перезагрузки страницы...

   
 
 автор: ddhvvn   (03.06.2006 в 22:03)   письмо автору
 
   для: valenok   (03.06.2006 в 21:56)
 

Хорошо. Немного подправил и вот глюкнутая зараза:
<?php

  ob_start
();

  
$login stripslashes(htmlspecialchars($_POST["login"]));
  
$passwd stripslashes(htmlspecialchars($_POST["password"]));
  
$login str_replace("'","'",$login);

  include 
"connect.php";


  
$zapr=@mysql_query("SELECT * FROM users WHERE login='$login'");
  if(!
zapr)
  {
    exit(
"Ошибка при авторизации!");
  }

  if(
mysql_num_rows($zapr) == 0)
  {
    exit(
"Такого пользователя не существует!");
  }
  else
  {
    
$user=mysql_fetch_array($zapr);
    if(
$user["password"]!=md5($passwd))
    {
      exit(
"Неверный пароль!");
    }
  }

    
setcookie("user",$login,time()+60*15);
    
setcookie("password"md5($password),time()+60*15);

  
ob_end_clean;

  include(
"next.php");

?>  


В самом начале next.php
<?php

  
if(!isset($_COOKIE['user']))
  {
     exit(
"Вы не авторизованы!");
  } 
  
//дальше ничего не относится к авторизации


Вот. Если пользователь аворизуется вообще первый раз (т.е. отсутствует файл куки) происходит
exit("Вы не авторизованы!");
.

Со второго раза все номально.

   

Сообщения:  [1-10]    [11-20]  [21-21] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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