За последние 24 часа нас посетили 17148 программистов и 1727 роботов. Сейчас ищут 2042 программиста ...

Скрыть регистрацию от гостя

Тема в разделе "Сделайте за меня", создана пользователем Nravo, 30 авг 2015.

  1. Nravo

    Nravo Новичок

    С нами с:
    29 июл 2015
    Сообщения:
    14
    Симпатии:
    0
    Пишу короче сайт с нуля, написал в регу, вот теперь пытаюсь сделать, когда юзер зареган чтобы форма регистрации ему не была видна. Скрываю так:
    Код (PHP):
    1. if($user['id']){
    2. header('Location: /'); exit;
    3. } //переадресация на главную 
    И прописал в рега:
    Код (PHP):
    1.  setcookie('unick', $nick, time()+86400*365, '/');
    2. setcookie('upass', $pass, time()+86400*365, '/'); 
    Вот сама ф-ция, в корне:
    Код (PHP):
    1.      if(isset($_COOKIE['unick']) && isset($_COOKIE['upass']))
    2.            {
    3.             
    4.            $unick = trim(htmlspecialchars(mysql_real_escape_string($_COOKIE['unick'])));
    5.     
    6.            $upass = trim(htmlspecialchars(mysql_real_escape_string($_COOKIE['upass'])));
    7.     
    8.  
    9.            if(empty($unick) or empty($upass))
    10.            {
    11.   
    12.            setcookie('unick', '', time()-((60*60)*24), '/'); 
    13.             
    14.            setcookie('upass', '', time()-((60*60)*24), '/'); 
    15.     
    16.            }
    17.   
    18.             
    19.             
    20.            $user = mysql_fetch_assoc(mysql_query("SELECT * FROM `user` WHERE `nick` = '".$unick."' and `pass`='".$upass."' LIMIT 1"));
    21.            
    22.            
    23.  
    24.            if(isset($user['id']))
    25.            {
    26.   
    27.            setcookie('unick', '', time()-((60*60)*24), '/'); 
    28.             
    29.            setcookie('upass', '', time()-((60*60)*24), '/'); 
    30.  
    31.            }
    32.   
    33.            }
    34.        
    Но чет не скрывает, почему? Что не так?

    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Тут поможет отладка программы (debug), придётся перепроверить каждое действие программы, только полностью понимая как работает твой скрипт, ты сможешь найти любую ошибку, например логическую.


    Начать разбираться что такое отладка можно с этих инструкций, два разных подхода:
    http://phpfaq.ru/debug
    http://netbeans.org/kb/docs/php/debugging_ru.html

    Пароль в cookie хранить очень не безопасно, используй сессию.
    Я не вижу какую форму ты скрываешь.
     
  3. Nravo

    Nravo Новичок

    С нами с:
    29 июл 2015
    Сообщения:
    14
    Симпатии:
    0
    Я дебошил код exit'ами, когда поставил после $user = ... появился белый экран, видимо чтото с этим?
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Возможно, в документации к mysql_query и другим функциям есть примеры, там ещё проверку делают, была ошибка или нет, а у тебя без проверки.
    лучше mysql заменить на mysql_pdo или mysqli, так как mysql устарела, скоро PHP 7 выйдет, там её не будет.