[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Обрываеться сессия
Andruhaphp
У меня после выполнения изменений на странице,когда реврешит на другую сессия обрываться
Ну я сам ничего подозрительного не нашел:
<?php
session_start();
include ("db.php");
header('Refresh: 2; URL=update.php');
if (!empty($_SESSION['login']) and !empty($_SESSION['password']))
{
//если существует логин и пароль в сессиях, то проверяем, действительны ли они
$login = $_SESSION['login'];
$password = $_SESSION['password'];
$result2 = mysql_query("SELECT id FROM users WHERE login='$login' AND password='$password' AND activation='1'",$db);
$myrow2 = mysql_fetch_array($result2);
if (empty($myrow2['id']))
{
//если данные пользователя не верны
exit("Вход на эту страницу разрешен только зарегистрированным пользователям!");
}
}

else {
//Проверяем, зарегистрирован ли вошедший
exit("Вход на эту страницу разрешен только зарегистрированным пользователям!"); }
if (isset($_POST['idi'])) { $id = $_POST['idi'];}
if (isset($_POST['login']))
{
$login = $_POST['login'];
$login = stripslashes($login); $login = htmlspecialchars($login); $login = trim($login);
if (!empty($login)) { if (strlen($login) < 3 or strlen($login) > 15) {
exit ("Логин должен состоять не менее чем из 3 символов и не более чем из 15."); }
$result = mysql_query("SELECT id FROM users WHERE login='$login'",$db);
$myrow = mysql_fetch_array($result);
if (!empty($myrow['id'])) {
exit ("Извините, введённый вами логин уже зарегистрирован. Введите другой логин.");}
$result2 = mysql_query("UPDATE users SET login='$login' WHERE id='$id' ",$db);
if($result2==true) {echo "Логин успешно изменен,на ".$login."<br/>";}
}
}

if (isset($_POST['email']))
{
$email = $_POST['email'];
$email = htmlspecialchars($email); $email = trim($email);
if (!empty($email))
{
$result2 = mysql_query("UPDATE users SET email='$email' WHERE id='$id' ",$db);
if($result2==true) {echo "Электронная почта успешно изменена,на ".$email."<br/>";}
}
}

if (isset($_POST['country']))
{
$country = $_POST['country'];
if (is_numeric($country)==true)
{
if (!empty($country))
{
$result2 = mysql_query("UPDATE users SET country='$country' WHERE id='$id' ",$db);
if($result2==true) {echo "Страна успешно изменена"."<br/>";}
}
}
}

if (isset($_POST['city']))
{
$city = $_POST['city'];
if (!empty($city))
{
$result2 = mysql_query("UPDATE users SET city='$city' WHERE id='$id' ",$db);
if($result2==true) {echo "Город успешно изменен"."<br/>";}
}
}

if (isset($_POST['product']))
{
$product = $_POST['product'];
if (!empty($product))
{
$result2 = mysql_query("UPDATE users SET product='$product' WHERE id='$id' ",$db);
if($result2==true) {echo "Категория успешно изменена"."<br/>";}
}
}

if (isset($_POST['company']))
{
$company = $_POST['company'];
$login = stripslashes($login); $login = htmlspecialchars($login); $login = trim($login);
if (!empty($company))
{
$result2 = mysql_query("UPDATE users SET company='$company' WHERE id='$id' ",$db);
if($result2==true) {echo "Компания успешно изменена,на ".$company."<br/>";}
}
}

if (isset($_POST['telephon']))
{
$telephon = $_POST['telephon'];
if (!empty($telephon))
{
$result2 = mysql_query("UPDATE users SET telephon='$telephon' WHERE id='$id' ",$db);
if($result2==true) {echo "Телефон успешно изменен,на ".$telephon."<br/>";}
}
}

if (isset($_POST['www']))
{
$www = $_POST['www'];
if (!empty($www))
{
$result2 = mysql_query("UPDATE users SET www='$www' WHERE id='$id' ",$db);
if($result2==true) {echo "ТСайт успешно изменен на ".$www."<br/>";}
}
}


?>




Спустя 16 минут, 45 секунд (17.03.2011 - 22:38) T1grOK написал(а):
А установка переменных сессии где?

Спустя 5 минут, 35 секунд (17.03.2011 - 22:44) Andruhaphp написал(а):
session_start();
$login = $_SESSION['login'];
$password = $_SESSION['password'];

Спустя 4 минуты, 53 секунды (17.03.2011 - 22:48) T1grOK написал(а):
Нет это вы пытаетесь извлечь из сесии информацию, которой собственно и нету вовсе, потому что вы не устанавливали таких переменных в сессии.

Спустя 2 минуты, 56 секунд (17.03.2011 - 22:51) Andruhaphp написал(а):
если бы её не было я бы не зашел на эту страницу
а лаг возникает,когда меня перебрасывает на header('Refresh: 2; URL=update.php');,с которой я собственно и пришел

Спустя 6 минут, 3 секунды (17.03.2011 - 22:57) T1grOK написал(а):
Еще раз повторяю! УСТАНОВКИ ПЕРЕМЕННЫХ СЕССИИ НЕТУ, по крайней мере в представленном куске кода.

Спустя 10 минут, 56 секунд (17.03.2011 - 23:08) Andruhaphp написал(а):
как тогда исправить подскажи

Спустя 11 минут, 32 секунды (17.03.2011 - 23:20) T1grOK написал(а):
Ну если идти по логике вашего скрипта:

if($_POST['login'] AND $_POST['password']){
//проверяем есть ли в базе такая пара логин и пароль
//если (есть запись в бд==true){

$_SESSION['login'] = $_POST['login'];
$_SESSION['password'] = $_POST['password'];
//}иначе{
// послать нафиг и делаем рефреш
//}

}else{
if($_SESSION['login'] AND $_SESSION['password']){
//если уж решили проверять и сессийные переменные - проверяейте
//если(нету записи в бд== true){

unset($_SESSION['login']);
unset($_SESSION['password']);
//рефреш
//}

}else{
//рефреш
}
//а тут уже идет то, что может выполнять авторизированный пользователь

Спустя 23 минуты, 12 секунд (17.03.2011 - 23:43) Andruhaphp написал(а):
спасибо,но проблема в том что я измению данные для пользователя как администратор,и в сесси должны пыть логин и пароль администратора

Спустя 2 минуты, 4 секунды (17.03.2011 - 23:45) Andruhaphp написал(а):
В принцепи я могу их так же вставить я ведь знаю,как из базы выбрать,только где мне их встеавить после чего

Спустя 44 минуты, 14 секунд (18.03.2011 - 00:29) Andruhaphp написал(а):
тема закрыта!!!
Быстрый ответ:

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