Здравствуйте!У меня на сайте размещена авторизация по логину и паролю, проблема возникла когда в url я ввожу к примеру mysite.ru/page.php?id=id001 , то входит в другую учетную запись, с этой проблемой я справился через if($sq=['login']==$login){//содержимое сайта} else {echo"Ошибка со входом";} работает сессия, возник другой вопрос: как скрыть в url номер id. Понимаю можно работать с куками. А безопасно ли? Поделитесь опытом...Есть ли другие безопасные варианты ?
думаю вам сюда .. viewtopic.php?f=13&t=45332 Добавлено спустя 2 минуты 9 секунд: а прятать необязательно можно использовать вот это http://php.ru/manual/function.session-id.html в качестве id =) <мат> кто подберет
Файл login.php Код (Text): <form action="auth.php" method="post" id="login_form"> <input name="login" id="login" type="text" /> <input name="password" id="pass" type="password" /> <input value="Войти" id="logonbtn" type="submit" /> </form> файл auth.php Код (PHP): <?php session_start(); if (isset($_GET['logout'])) { if (isset($_SESSION['user_id'])) { unset($_SESSION['user_id']); setcookie('login', '', 0, "/"); setcookie('password', '', 0, "/"); header('Location: index.php'); exit; } } if (isset($_POST['login']) && isset($_POST['password'])) { //какаято проверка - пароля и логина - если успешно $_SESSION['user_id'] = $_POST['login']; //посылаем куда то дальше.. header('Location: main.php'); exit; } ?> Файл main.php Код (PHP): <?php header( "Content-Type: text/html; charset=utf8" ); session_start(); if (isset($_SESSION['user_id'])) { echo ("Здравствуйте вы внутри сессии пользователя ".$_SESSION['user_id']); } else header('Location: login.php'); ?> Добавлено спустя 2 минуты 36 секунд: писал на лету мог какиенибудь кавычки скобки пропустить
Добавлено спустя 2 минуты 36 секунд: писал на лету мог какиенибудь кавычки скобки пропустить[/quote] Ну так то все работает, но проблема такая же, при переходах на разные страницы, все равно выводит id в url Добавлено спустя 41 секунду: Добавлено спустя 2 минуты 36 секунд: писал на лету мог какиенибудь кавычки скобки пропустить[/quote] Ну так то все работает, но проблема такая же, при переходах на разные страницы, все равно выводит id в url
Получается нужно отправлять через setcookie, создать обработчик между страницей a и b и в другой странице ее вытаскивать, нельзя ли просто переходить по страницам без обработчика?... Как я знаю что cookie перед отправкой подвергается url кодированию, безопасен ли способ перехода по страницам через куки.
Slavka, Код (PHP): isset($_POST['login'],$_POST['password']) Roma_SP, вы какуют-то чушь мелите =) честно слово))))
Я еще новичок, просто хочу понять как отправить 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>
читайте книжки )) http - протокол без сохранения состояния, поэтому вы либо передаете параметр явным образом, например через GET (как у вас и сделано, mysite.php?id=$id) или приходится пользоваться сессиями. да и вообще, что за секретность, зачем нужно прятать id? больше всего похоже на глобальную ошибку проектирования.
Если в url введу mysite.php?id=010, то захожу в другой профиль, да можно сделать через if ($viviod['login'] == $login){ // инфа} else{ echo"Не ваш профиль"; exit "Ошибка"; } но хотелось бы скрыть...
раз уже используете авторизацию через сессии, то и айди передавайте через сессию. перечитала еще раз ваши первые сообщения, но вся ситуация в целом так до сих пор и не ясна. учитесь формулировать вопросы.
чтото мне в голову стукнуло .. а может у вас вот такая настроечка выключена - поэтому сиды вы видите ? http://php.ru/manual/session.configuration.html#ini.session.use-cookies session.use_cookies определяет, будет ли модуль использовать cookies для хранения идентификатора сессии на стороне клиента. По умолчанию 1 (включено).