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

Форум PHP

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

 

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

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

тема: Не предаются данные из формы при авторизации
 
 автор: fastep   (19.09.2006 в 22:37)   письмо автору
 
 

Добрый день!
пишу авторизацию для гостевой книги<?php
session_start();
include ("../dbconfig.php");
mysql_query ("SET NAMES 'cp1251'");
if (isset($_POST["login"]) and isset($_POST["passw"]))

{
$auth=mysql_query("select * from `auth` where login='$login' and passw='$passw'");
if ($auth)
{
$_session['valid']=$login;
echo("вы вошли как администратор");
echo '<a href= "/admin/admin.php">админить</a>';
}
else
{
echo ("вы не зарегистрированы");
exit();
}
}

else exit();

?>
проблема в том,что даже если не передается никаких данных он все равно выводит ссылку для администратора.

   
 
 автор: DEM   (19.09.2006 в 22:44)   письмо автору
 
   для: fastep   (19.09.2006 в 22:37)
 


<?php
if (mysql_num_rows == 1)
{
$_session['valid']=$login;
echo(
"вы вошли как администратор");
?>


А вот на счёт основной проблемы... Юзай session_id();

   
 
 автор: fastep   (19.09.2006 в 22:55)   письмо автору
 
   для: DEM   (19.09.2006 в 22:44)
 

Извините пожалуйста,а можно поподробней или ссылочку.
Просто недавно начал php осваивать,дак простите если туплю:)

   
 
 автор: DEM   (19.09.2006 в 23:05)   письмо автору
 
   для: fastep   (19.09.2006 в 22:55)
 

http://softtime.ru/forum/read.php?id_forum=1&id_theme=24805&page=1

Хотя я там описал проблему, но поскольку вчера у меня всё было норм, может у вас получится...

   
 
 автор: cheops   (19.09.2006 в 23:11)   письмо автору
 
   для: fastep   (19.09.2006 в 22:37)
 

У вас директива register_globals в php.ini отключена или включена? Вы сначала обращаетесь через $_POST["login"], а потом в SQL-запросе пишите просто $login, если директива register_globals отключена переменные $login и $passw будут пусты.

   
 
 автор: fastep   (19.09.2006 в 23:21)   письмо автору
 
   для: cheops   (19.09.2006 в 23:11)
 

 
<?php 
session_start
();
include (
"../dbconfig.php");
mysql_query ("SET NAMES 'cp1251'");
if (isset(
$_POST["login"]) and isset($_POST["passw"]))
{
    
    
$login=$_POST["login"];
    
$passw=$_POST["passw"];
    
$auth=mysql_query("select * from `auth` where login='$login' and passw='$passw'");
    if (
mysql_num_rows == 1
        { 
            
$_session['valid']=$login
            echo(
"вы вошли как администратор");
        }
    else 
    {
        echo (
"вы не зарегистрированы");
         exit();
    }
}
else exit();
?>

вот поправленный код,register_globals=off,обращайюсь через массивы.
Я непойму почему когда данные не введены в поля у меня isset выдает true?

   
 
 автор: cheops   (19.09.2006 в 23:32)   письмо автору
 
   для: fastep   (19.09.2006 в 23:21)
 

Потому что переменные всё равно устанавливаются, так как в POST запросе идёт запись вида
login=&passw=

лучше используйте здесь вместо isset(), empty()
<?php  
session_start
(); 
include (
"../dbconfig.php"); 
mysql_query ("SET NAMES 'cp1251'"); 
if (!empty(
$_POST["login"]) and !empty($_POST["passw"])) 

     
    
$login=$_POST["login"]; 
    
$passw=$_POST["passw"]; 
    
$auth=mysql_query("select * from `auth` where login='$login' and passw='$passw'"); 
    if (
mysql_num_rows == 1)  
        {  
            
$_session['valid']=$login;  
            echo(
"вы вошли как администратор"); 
        } 
    else  
    { 
        echo (
"вы не зарегистрированы"); 
         exit(); 
    } 

else exit(); 
?>

   
 
 автор: fastep   (19.09.2006 в 23:38)   письмо автору
 
   для: cheops   (19.09.2006 в 23:32)
 

Спасибо огромное,ОЧЕНЬ Вам благодарен,все работает.
Тему можно закрыть

   
Rambler's Top100
вверх

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