[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Работа со ссылкой
denlam
Доброго времени суток=)
Проблема такая:
Хочу чтобы при логине, если выводит ошибку, то чтобы она выводила ошибку на той же странице на которой находился посетитель, т.е. человек допустим сидит на sale.php?id=255 там логиниться его кидает на login.php и если ошибка чтобы кидало обратно на предыдущую страницу и причем под формой логина выводила ошибку необходимую! Попробовал сделать это так

if(isset($_POST[login]) & $_POST[login] != "")
{
if(isset($_POST[pass]) & $_POST[pass] != "")
{
$check1 = mysql_query("select * from login where login='$_POST[login]'");
if(mysql_num_rows($check1) != 0)
{
$check2 = mysql_query("select pass from login where login='$_POST[login]'");
$check2 = mysql_fetch_assoc($check2);
if($check2[pass] == $_POST[pass])
{
session_start();
$_SESSION[login] = $_POST[login];
$_SESSION[pass] = $_POST[pass];
$URL=$_SERVER['HTTP_REFERER'];
header("Location:$URL");
}else {
$login_error = "Вы ввели неправильный пароль!";
$URL= "".$_SERVER['HTTP_REFERER']."&login_error=".$login_error."";
header("Location:$URL");}
}
else {
$login_error = "Такого логина нет в базе данных, <a href='reg.php'>Зарегистрироваться!</a>";
$URL= "".$_SERVER['HTTP_REFERER']."&login_error=".$login_error."";
header("Location:$URL");}
}
else {
$login_error = "Вы не ввели пароль!";
$URL= "".$_SERVER['HTTP_REFERER']."&login_error=".$login_error."";
header("Location:$URL");}
}



Прошу особое внимание обратить на эти строчки:

}else {
$login_error = "Вы ввели неправильный пароль!";
$URL= "".$_SERVER['HTTP_REFERER']."&login_error=".$login_error."";
header("Location:$URL");}

Вот как форма выглядит
user posted image


Короче говоря, проблема вот в чем:
Если на странице где логинились уже была глобальная переменна GET, например страница sale.php?id=255, то все нормально, при ошибке он возвращается на страницу sale.php?id=255&login_error=oshibka ! А если логиниться допустим с index.php, то при возврате он выдает 404 потому что ссылка получается index.php&login_error=oshibka blink.gif

Внимание, вопрос: как сделать чтобы когда нужно он пеhtl login_error=.. подставлял & , а когда нужно он подставлял / ?

Вообще в голову не лезет как можно решить эту проблему! знатоки, помогите пожалуйста! sad.gif(



Спустя 3 минуты, 18 секунд (17.06.2010 - 23:23) tomash написал(а):
history.back() функция js? подойдет?

Спустя 5 минут, 2 секунды (17.06.2010 - 23:28) denlam написал(а):
че то щас меня замкнул решил через сессии делать, сделал так

if(isset($_POST[login]) & $_POST[login] != "")
{
if(isset($_POST[pass]) & $_POST[pass] != "")
{
$check1 = mysql_query("select * from login where login='$_POST[login]'");
if(mysql_num_rows($check1) != 0)
{
$check2 = mysql_query("select pass from login where login='$_POST[login]'");
$check2 = mysql_fetch_assoc($check2);
if($check2[pass] == $_POST[pass])
{
$_SESSION[login] = $_POST[login];
$_SESSION[pass] = $_POST[pass];
$URL=$_SERVER['HTTP_REFERER'];
header("Location:$URL");
}else {
$_SESSION[login_error] = "Вы ввели неправильный пароль!";
$URL= $_SERVER['HTTP_REFERER'];
header("Location:$URL");}
}
else {
$_SESSION[login_error] = "Такого логина нет в базе данных, <a href='reg.php'>Зарегистрироваться!</a>";
$URL= $_SERVER['HTTP_REFERER'];
header("Location:$URL");}
}
else {
$_SESSION[login_error] = "Вы не ввели пароль!";
$URL= $_SERVER['HTTP_REFERER'];
header("Location:$URL");}

Теперь все работает!

Но в голове все еще мысля горит, вдруг опять такая проблема будет. Как все таки определять есть ли в предыдущей странице get переменные и если есть ставит & а если нет то просто / ?


Спустя 5 минут, 58 секунд (17.06.2010 - 23:34) tomash написал(а):
Объект history хранит в себе историю посещения страниц на компьютере пользователя!

Спустя 2 минуты, 45 секунд (17.06.2010 - 23:36) Ice написал(а):
как быть тем пользователя, у которых режутся рефереры? Не хотите создать в массиве _SESSION массив error..?

Ну, вот,- опоздал laugh.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.