За последние 24 часа нас посетили 50839 программистов и 1745 роботов. Сейчас ищут 892 программиста ...

скрыть url или как работать с куками

Тема в разделе "PHP для новичков", создана пользователем Roma_SP, 13 ноя 2013.

  1. Roma_SP

    Roma_SP Новичок

    С нами с:
    11 сен 2013
    Сообщения:
    89
    Симпатии:
    0
    Здравствуйте!У меня на сайте размещена авторизация по логину и паролю, проблема возникла
    когда в url я ввожу к примеру mysite.ru/page.php?id=id001 , то входит в другую учетную запись, с этой проблемой
    я справился через if($sq=['login']==$login){//содержимое сайта} else {echo"Ошибка со входом";} работает сессия, возник другой вопрос:
    как скрыть в url номер id.
    Понимаю можно работать с куками. А безопасно ли? Поделитесь опытом...Есть ли другие безопасные варианты ?
     
  2. Slavka

    Slavka Активный пользователь

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
  3. ainur777

    ainur777 Активный пользователь

    С нами с:
    24 май 2013
    Сообщения:
    93
    Симпатии:
    0
    Че та не понял, как скрыть с сессией session_id?
     
  4. Roma_SP

    Roma_SP Новичок

    С нами с:
    11 сен 2013
    Сообщения:
    89
    Симпатии:
    0
    Ну там не то что нужно...
     
  5. Slavka

    Slavka Активный пользователь

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    Файл login.php
    Код (Text):
    1.  
    2. <form action="auth.php" method="post" id="login_form">
    3.     <input name="login" id="login" type="text" />
    4.     <input name="password" id="pass" type="password" />
    5.     <input value="Войти" id="logonbtn" type="submit" />
    6. </form>
    файл auth.php
    Код (PHP):
    1. <?php
    2. if (isset($_GET['logout']))
    3. {
    4.       if (isset($_SESSION['user_id']))
    5.             {
    6.             unset($_SESSION['user_id']);
    7.             setcookie('login', '', 0, "/");
    8.             setcookie('password', '', 0, "/");
    9.             header('Location: index.php');
    10.             exit;
    11.       }
    12. }
    13.  
    14. if (isset($_POST['login']) && isset($_POST['password']))
    15.       {
    16.        //какаято проверка - пароля  и логина - если успешно
    17.           $_SESSION['user_id'] = $_POST['login'];
    18. //посылаем куда то дальше..
    19.             header('Location: main.php');
    20.             exit;
    21.       }
    22. ?>
    Файл main.php
    Код (PHP):
    1. <?php header( "Content-Type: text/html; charset=utf8" );
    2. if (isset($_SESSION['user_id']))
    3. {
    4. echo ("Здравствуйте вы внутри сессии пользователя ".$_SESSION['user_id']);
    5. }
    6. else header('Location: login.php');
    7. ?>    
    Добавлено спустя 2 минуты 36 секунд:
    писал на лету мог какиенибудь кавычки скобки пропустить
     
  6. Roma_SP

    Roma_SP Новичок

    С нами с:
    11 сен 2013
    Сообщения:
    89
    Симпатии:
    0
    Добавлено спустя 2 минуты 36 секунд:
    писал на лету мог какиенибудь кавычки скобки пропустить[/quote]
    Ну так то все работает, но проблема такая же, при переходах на разные страницы, все равно выводит id в url

    Добавлено спустя 41 секунду:
    Добавлено спустя 2 минуты 36 секунд:
    писал на лету мог какиенибудь кавычки скобки пропустить[/quote]
    Ну так то все работает, но проблема такая же, при переходах на разные страницы, все равно выводит id в url
     
  7. Roma_SP

    Roma_SP Новичок

    С нами с:
    11 сен 2013
    Сообщения:
    89
    Симпатии:
    0
    Получается нужно отправлять через setcookie, создать обработчик между страницей a и b и в другой странице ее вытаскивать, нельзя ли просто переходить по страницам без обработчика?... Как я знаю что cookie перед отправкой подвергается url кодированию, безопасен ли способ перехода по страницам через куки.
     
  8. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Slavka,
    Код (PHP):
    1. isset($_POST['login'],$_POST['password']) 
    Roma_SP, вы какуют-то чушь мелите =) честно слово))))
     
  9. Roma_SP

    Roma_SP Новичок

    С нами с:
    11 сен 2013
    Сообщения:
    89
    Симпатии:
    0
    Я еще новичок, просто хочу понять как отправить id допустим по ссылке <a href="mysite.php">Перейти</a> и вытащить в mysite.php без номера id=001, у меня выходит так mysite.php?id=001...я делаю с сессиями

    Добавлено спустя 1 минуту 54 секунды:
    session_start()
    if (!empty($_SESSION['login']) and !empty($_SESSION['key']))//если есть логин и key то вывожу из бд инфо
    {
    $login = $_SESSION['login'];
    $key = $_SESSION['key'];
    $result = mysql_query("SELECT id FROM table WHERE login = '$login'",$db);
    $vivod = mysql_fetch_array($result);
    echo "Ваш id = $vivod[id]";
    }

    <a href="mysite.php?$vivod [id]">Перейти</a>
     
  10. kimitake

    kimitake Новичок

    С нами с:
    14 ноя 2013
    Сообщения:
    10
    Симпатии:
    0
    читайте книжки )) http - протокол без сохранения состояния, поэтому вы либо передаете параметр явным образом, например через GET (как у вас и сделано, mysite.php?id=$id) или приходится пользоваться сессиями. да и вообще, что за секретность, зачем нужно прятать id? больше всего похоже на глобальную ошибку проектирования.
     
  11. Roma_SP

    Roma_SP Новичок

    С нами с:
    11 сен 2013
    Сообщения:
    89
    Симпатии:
    0
    Если в url введу mysite.php?id=010, то захожу в другой профиль, да можно сделать через if ($viviod['login'] == $login){ // инфа}
    else{ echo"Не ваш профиль";
    exit "Ошибка";
    }

    но хотелось бы скрыть...
     
  12. kimitake

    kimitake Новичок

    С нами с:
    14 ноя 2013
    Сообщения:
    10
    Симпатии:
    0
    раз уже используете авторизацию через сессии, то и айди передавайте через сессию. перечитала еще раз ваши первые сообщения, но вся ситуация в целом так до сих пор и не ясна. учитесь формулировать вопросы.
     
  13. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Сессия живет своей жизнью, вы когда сохраняете, проверяйте, что сохранено и подгружайте.
     
  14. Slavka

    Slavka Активный пользователь

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    чтото мне в голову стукнуло .. а может у вас вот такая настроечка выключена - поэтому сиды вы видите ?
    http://php.ru/manual/session.configuration.html#ini.session.use-cookies

    session.use_cookies определяет, будет ли модуль использовать cookies для хранения идентификатора сессии на стороне клиента. По умолчанию 1 (включено).
     
  15. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Сессии работают на сервере, все содержимое хранится на сервере.
    Идентификатор, для обращения.