Скрипт авторизации начального уровня

ys

отодвинутый новичок
Фанат

Ах да.

astron8

Значит при проверке "user_name='$login'" нужно поле в базе user_name и $login привести к одному регистру, чтоб это имело смысл.

Получать не *, а только user_name из базы, не пойму почкму такая любовь к запросам избыточной информации , mysql_result($select,0,0) заменить на mysql_num_rows($select)

а это так:
$login= myqsL_result($select,0,'user_name');

вроде так.
 

Фанат

oncle terrible
Команда форума
astron8
function error ($error_message)
я смотрю, ты становишься все гуманнее и гуманнее.
вместо двух секунд, показываешь сообщение об ошибке только одну. Браво.
Так и надо. чтобы отпугнуть мифических хакеров будет создавать неудобства реалным нормальным людям.
If (mysql_num_rows($select) != "0")//
лишнее
кошмарно лишнее

-~{}~ 26.06.04 14:13:

ys
Значит при проверке "user_name='$login'" нужно поле в базе user_name и $login привести к одному регистру, чтоб это имело смысл
МОЖЕТ БЫТЬ ты воздержишься от идиотских советов???
 

Фанат

oncle terrible
Команда форума
PHP:
<?php 
if (isset($_REQUEST[session_name()])) session_start(); 
if (!isset($_SESSION["auth"])) {
?> 
<form action=\"auth.php\" method=\"post\"> 
Логин <input type=\"text\" size=\"15\" name=\"login\" maxlength=25><br> 
Пароль<input type=\"password\" size=\"15\" name=\"pass\"maxlength=32><br> 
<input type=\"submit\" name=\"submit\" value=\"войти\">
<?
  exit;
} else (
  echo "Сегодня - ".date("d-m-Y",time()); 
  echo "<br>Привет <b>".$_SESSION["login"]."</b>.<br>"; 
  echo "<br><a href=out.php>Выход</a>"; 
}
?>
слеши свои дурацкие из формы выкини сам.

-~{}~ 26.06.04 14:28:

astron8
просто не обращай на него внимания.
я тоже не буду.
таких тут бегает как собак нерезаных. знаний на копейку, а желание в форуме отметиться - на рубль.

-~{}~ 26.06.04 14:30:

когда все сделаешь, выключишь в браузере куки, и попробуешь еще раз.
 

ys

отодвинутый новичок
Фанат

--------------------------------------------------------------------------------
If (mysql_num_rows($select) != "0")//
--------------------------------------------------------------------------------
лишнее
Конечно лишнее, зачем проверять есть ли такой пользователь в базе и так сойдет, подумаешь небольшой и незаметный warning при mysql_fetch_array() и самое главное

$_SESSION["auth"]=true;
без mysql_num_rows() по любому поставится.. :)
 

astron8

Guest
--enable-trans-id Есть такая штука, вот только как ее использовать я непонял...
 

astron8

Guest
Автор оригинала: Фанат
я тебе сказал ПОСЛЕ того, как все сделаешь.
так я и сделал :)

PHP:
<?php
if (isset($_POST["submit"]))
{
    $login=substr($_POST["login"],0,25);
    if (!get_magic_quotes_gpc()) $login=mysql_escape_string($login);
    $pass=substr($_POST["pass"],0,32);
    if (!get_magic_quotes_gpc()) $pass=mysql_escape_string($pass);

    sleep(1);//задержка на 1 сек, защита от перегрузки сервера при подборе пароля
    mysql_connect('localhost','root') or die("Ошибка. Нет связи с сервером MySQL.<br>");
    mysql_select_db('test') or die("Ошибка. Нет связи с Базой Данных.<br>");
    $select = mysql_query("SELECT * FROM `users` WHERE user_name = '$login' AND user_pass = '$pass'")
              or die(mysql_error());
    mysql_close();
     if ($info_user=mysql_fetch_array($select))
      {
        $login=$info_user["user_name"];//Логин будет таким как в базе(с учетом регистра)
        session_start();
        $_SESSION["auth"]=true;
        $_SESSION["login"]=$login;
      }
     else header("location: index.php");//Неправильное имя или пароль.
}
header("location: index.php");   //здесь может  exit?
?>
а без кук не работает, поэтому спросил про --enable-trans-id
 

Фанат

oncle terrible
Команда форума
очень много лищнего.
я все выкинул, что не нужно
добавил нужное.
PHP:
<?php 
if (isset($_POST["submit"])) { 
    $login=substr($_POST["login"],0,25); 
    $pass=substr($_POST["pass"],0,32); 
    if (!get_magic_quotes_gpc()) {
      $login=mysql_escape_string($login); 
      $pass=mysql_escape_string($pass); 
    }
    mysql_connect('localhost','root') or die(mysql_error()."<br>"); 
    mysql_select_db('test') or die(mysql_error()."<br>"); 
    $query="SELECT login FROM `users` WHERE user_name = '$login' AND user_pass = '$pass'";
    $result = mysql_query($query) or die(mysql_error()."<br>".$query); 
    if ($row=mysql_fetch_array($result)) { 
        session_start(); 
        $_SESSION["login"]=$row["user_name"];; 
    } 
} 
sleep(1);//задержка на 1 сек, защита от перегрузки сервера при подборе пароля 
header("location: index.php");   //здесь может  exit? 
?>
-~{}~ 26.06.04 18:58:

у тебя нет обработки ошибок юзера, но это ладно

про передачу сида урлом читай в http://phpfaq.ru/sessions
однако я не это имел в виду. и при включенном у тебя работать не будет.
почему - читай там же.
 

astron8

Guest
А если я хочу "напоминалку" сделать? Как это реализовать?
Если отдельным файлом, то понятно, или лучше ее в index.php сделать? Только как index.php узнает о неуспешной авторизации?
 

Фанат

oncle terrible
Команда форума
для начала пояснить, что ты имеешь ввиду под напоминалкой
 

astron8

Guest
Ладно, с этим позже разберусь. Спасибо за консультацию!
Теперь буду читать учебник, про создание странички :)
http://phpclub.net/manrus/
Ждите новых вопросов! а про сесси я еще разок внимательнее почитаю, может найду почему у меня не работает скрипт без кукисов...
Большое Спасибо вам Фанат :)

-~{}~ 27.06.04 11:25:

Если используем хидеры то нужно добавлять SID вот так
header("location: index.php?".SID); тогда работает без кук
 

Фанат

oncle terrible
Команда форума
нет.
формулировка неправильная.
сессиям без кук позволяет работать настройка с транс сид.
а добавление сид к локейшену - это необходимость.
если не включитьтранс сид, а просто добавить сид к локейшену, то сессия помре сразу после.

-~{}~ 27.06.04 12:30:

кстати, к метам твоим любимым с рефрешами, пхп автоматом сид, конечно же, тоже не добавляет
 

astron8

Guest
Еще вопрос, начал читать книгу, http://phpclub.net/manrus/
ну блин ....
минут пять немог понять почему неработает
<а href = "date.php">View today's date</a>
оказалось буква "а" русская :)
а вот еще пример работы с циклами:
for ($i = 0; $i < sizeof($contents; $i++)
или
for ($i = 10; $1 <- 100: $1 +=10)
это что вся книга такая? :)

Мне как человеку незнакомому с синтаксисом "си", иногда непонятно что к чему :) а учил я немного паскаль поэтому приходится путем неимоверных мысленных усилий разбираться с такими неточностями :)
 

Фанат

oncle terrible
Команда форума
во-первых, не надо читать эту бяку.
читай оригинал
http://www.php.net/manual/ru/index.php

в любом случае.
ты уверен, что оно тебе надо?
читать ман?
ман - это справочник. читать имеет смысл вствпление, азы.
но никак не весь подряд.

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

-~{}~ 27.06.04 13:05:

а еще лучше, прочти http://phpfaq.ru
там и ссылки на правильный ман, и на учебные пособия.
и вообще все нужное
 

astron8

Guest
Извеняюсь, это не та книга :) http://phpclub.net/manrus/
от сюда я скачал только справочник функций, а книга http://docs.com.ru/php_1.php вот.
 

astron8

Guest
А можно еще вопрос, вот по опыту работы что удобнее или может лучше, шаблоны в отдельных файлах хранить или в одном ввиде функций?
 
Сверху