Проблем с сесиите...

tahys

Registered
Здравейте досега си тествах сайта на локалният сървър и работеше перфекно.. но като го качих на хостинг и нещо ми се базикат сесиите....

Давам рефреш и съм влезнал... давам отново и съм излезнал и така се сменят
при индифицирането ползвам следният код

Код:
if (isset($_SESSION['usr']))
{
    $checkusr = $_SESSION['usr'];
    $zaqvka = mysql_query("SELECT user,session FROM `users` WHERE `user` = '$checkusr' AND `session` = '$ses'");
    $zaqvka = mysql_num_rows($zaqvka);
    if ($zaqvka == 1) { $logged = 1; $username = $_SESSION['usr']; }
    else { $logged = 0; unset($_SESSION['usr']); session_destroy(); }
}
 
Код:
	 if (isset($_SESSION['usr'])) 
{ 
    $checkusr = $_SESSION['usr']; 
    $zaqvka = mysql_query("SELECT user,session FROM `users` WHERE `user` = '$checkusr' AND `session` = '$ses'"); 
    $zaqvka = mysql_num_rows($zaqvka); 
    if ($zaqvka == 1) { $logged = 1; $username = $_SESSION['usr']; } 
    else { $logged != 1; unset($_SESSION['usr']); } 
}
я пробвай така
 
tahys каза:
Здравейте досега си тествах сайта на локалният сървър и работеше перфекно.. но като го качих на хостинг и нещо ми се базикат сесиите....

Давам рефреш и съм влезнал... давам отново и съм излезнал и така се сменят
при индифицирането ползвам следният код

Код:
if (isset($_SESSION['usr']))
{
    $checkusr = $_SESSION['usr'];
    $zaqvka = mysql_query("SELECT user,session FROM `users` WHERE `user` = '$checkusr' AND `session` = '$ses'");
    $zaqvka = mysql_num_rows($zaqvka);
    if ($zaqvka == 1) { $logged = 1; $username = $_SESSION['usr']; }
    else { $logged = 0; unset($_SESSION['usr']); session_destroy(); }
}

Не, че разбирам много от сесии ама, защо правиш проверка на усер и сесия, ами ако в момента на влизане сесията е различна от тази която ти е в базата!?!?!?!?, примерно влезеш от друг компютър, къде е логиката

Код:
session_start();
if (isset($_SESSION['usr']))
{
    session_register("usr");
    $checkusr = $_SESSION['usr'];
    $pass = $_POST['pass';]
    $zaqvka = mysql_query("SELECT user,passFROM `users` WHERE `user` = '$checkusr' AND `pass` = '$pass'");
    $zaqvka = mysql_num_rows($zaqvka);
    if ($zaqvka == 1) { $logged = 1; $username = $_SESSION['usr']; }
    else { $logged = 0; unset($_SESSION['usr']); session_destroy(); }
}
 
Имам още 1 if за "Запомни ме"
и и else { $logged = 0; }

ЕДИТ: Сега забелязах че не иска даже да ме ЛОГНЕ в сайта....

Използвам един файл който трябва да проверява за сесията дали е създадена и този файл го Includvam в другите файлове на локалният хост работи без грешка качих го на хостинг на Icn и се прецака не иска даже да влезне
 
login.php
Код:
<?php

if (!isset($_POST['username']) || !isset($_POST['password'])) {
?>
<html>forma niakakva</html>
<?php
}else{
$user = addslashes($_POST['username']);
$pass = md5($_POST['password']);
$dbHost = "localhost";
$dbUser = "user_db";
$dbPass = "pass";
$dbDatabase = "db_name";
$db = mysql_connect("$dbHost", "$dbUser", "$dbPass") or die ("Error connecting to database.");
mysql_select_db("$dbDatabase", $db) or die ("Couldn't select the database.");
$result=mysql_query("select * from admin where username='$user' AND password='$pass'", $db);
$rowCheck = mysql_num_rows($result);
	if($rowCheck > 0){
	while($row = mysql_fetch_array($result)){
		session_start();
		session_register('username');
		header("Location: index.php");
	}
	}else{
	echo '<div onMouseOver="style.cursor=\'pointer\'" onClick="javascript:history.back();" style="margin: 100px auto 0px auto; padding: 8px; width: 320px; border: 1px solid #000000; text-align: center; font-weight: bold; color: #FFFFFF; background-color: #D71A21;">Невалидно потребителско име или парола!<br />Моля, опитайте отново.</div>';
	}
}
?>


index.php

Код:
<?php
session_cache_expire(60); // expire in 1 hour
session_start();
$_SESSION['time'] = time();
if(session_is_registered('username')){
	$dbHost = "localhost";
        $dbUser = "user_db";
	$dbPass = "pass";
	$dbDatabase = "db_name";
	$db = mysql_connect("$dbHost", "$dbUser", "$dbPass") or die ("Error connecting to database.");
	mysql_select_db("$dbDatabase", $db) or die ("Couldn't select the database.");

sydyrjanieto

<?php
}else{
header("Location: login.php");
}

?>

logout.php

Код:
<?php
session_start();
if(session_is_registered('username')){
	session_unset();
	session_destroy();
	header( "Location: login.php" );
}else{
	header( "Location: login.php" );
}
?>
 
Мойто е почти същото като твойто...
инклудвам файл който най-отгоре има session_start(); за да не го правя на всички файлове...

А сесита е присвоявам $_SESSION['usr'] = $username при входа


И най-страното е че работи без грешка на моят сървър.... ;(
 
Така Съпорта ми го оправи.. но давам точка на embaka защото най-много се опита да ми помогне!
 

Back
Горе