Показать сообщение отдельно
Старый 12.12.2006, 17:20
rtm вне форума Посмотреть профиль Отправить личное сообщение для rtm Найти все сообщения от rtm
  № 10  
Ответить с цитированием
rtm

Регистрация: Nov 2006
Сообщений: 39
Хорошо, покажу на вашем примере: попровуйте вывести из функции auth() значения переменных $name и $pass, бьюсь об заклад, что они окажутся пустыми. Для того, чтобы функция auth() работала так, как вы хотите необходимо написать так:
PHP код:
function auth() {
    global 
$name,$pass;
...
} 
Дальше, про setcookie() и header():
PHP код:
if( mysql_num_rows( $result ) == 0 ) 
    {   
print 
"не верные данные, пользователь не найден!"; 
    } 
    
   
$result=mysql_fetch_array($result); 
   
$name=$result['id']; 
   
setcookie( "identification" , $name , time() + 900 , "/" ); 
   
header( "Location: user.php"); 
  } 
Если пользователь не найден, то появится Ваше сообщение и сообщение PHP
Код:
Warning: Cannot modify header information - headers already sent
и никакие куки установлены не будут и перехода не будет. Согласен, может быть и не нужно в этом случае устанавливать куки и делать переход, но, Вы меня извините, строить логику приложения исходя из того, как будет реагировать интерпретатор на логические ошибки в приложении, по крайней мере кощунственно.

Дальше - больше: зачем нужна фукнция auth() если она вызывается только раз, в одном месте и содержит 5 строчек кода, которые нельзя отнести к решению какой-то отдельной логической операции приложения?

Ещё дальше - ещё больше: если $_POST['name'] и $_POST['pass'] пусты, то Вы выводите об этом сообщение. Это хорошо, но зачем в этом случае пытаться проверять если такой пользователь в БД. Понят какие мысли приходят при виде сообщения "не авторизовался, введите данные" и при
"не верные данные, пользователь не найден!". Но какие чувства будет испытавать бедный пользователь, когда увидит оба эти сообщения сразу?!