Autor Zpráva
killer
Profil
Starý problém je vyřešen a narazil jsem na nový, potřebuji udělat přihlášení, ověřuje to z db, ale nějak to nechce převzít informace z přihlašovacího rofmuláře, pokud najdete chybu, prosím opravte me

přes vyplněný formuláš se spustí toto:

<?php
include("connection.php");

session_start();

function userid($login,$pass,$link)
{
$vysledek = mysql_query("SELECT id FROM onlineGlogin WHERE login = '$login' AND password = '$pass'",$link);
if(mysql_num_rows($vysledek) == 0)
return false;
else
{
$radek = mysql_fetch_array($vysledek);
return $radek["id"];
}
}

$name = $_POST["login"];
$pass = md5($_POST["pass"]);

$link = mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname,$link);

$uid = userid($name,$pass,$link);

if(!$uid)
header("Location: ../index.php?site=admin_login");
else
{
session_start("uid");
$_SESSION["uid"] = $uid;
header("Location: ../index.php?site=admin_onlinegames");
}
?>

a to by mělo přesměrovat na soubor, ten je ale chráněn proti nezvaným uživatelům tímto:

<?php

session_start();

if(!isset($_SESSION["uid"]))
{
echo"Nejste prihlášen";
die;
}

?>

ale i když to přesměruje napíše se: Nejste prihlášen

THX za rady
Anonymní
Profil *
killer
Problém bych viděl zde:
session_start("uid"); 
killer
Profil
tak tím to není, i s tím to nefunguje
Alphard
Profil
tak tím to není, i s tím to nefunguje
zkoušel jsi session_register("uid"); ?
killer
Profil
nezkoušel, jak to mám použít ??
Anonymní
Profil *
killer:
tak tím to není, i s tím to nefunguje

Právě, že to zkuste bez toho, máte v prvním skriptu na začátku session_start() a níže před přiřazením hodnoty do proměnné $_SESSION["uid"] máte session_start("uid"). Proč?
killer
Profil
i když jsem to udělal bez toho session_start("uid"); nejedeto, ale možná něco mám špatně

<?php
include("connection.php");

session_start();

function userid($login,$pass,$link)
{
$vysledek = mysql_query("SELECT id FROM onlineGlogin WHERE login = '$login' AND password = '$pass'",$link);
if(mysql_num_rows($vysledek) == 0)
return false;
else
{
$radek = mysql_fetch_array($vysledek);
return $radek["id"];
}
}

$name = $_POST["login"];
$pass = md5($_POST["pass"]);

$link = mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname,$link);

$uid = userid($name,$pass,$link);

if(!$uid)
header("Location: ../index.php?site=admin_login");
else
{
$_SESSION["uid"] = $uid;
header("Location: ../index.php?site=admin_onlinegames");
}
?>

a u ověření

<?php

if(!isset($_SESSION["uid"]))
{
echo"Nejste prihlášen";
die;
}

?>
Anonymní
Profil *
killer:

Nyní vám u skriptu pro ověření chybí session_start(), ale v první ukázce tam bylo. :)
killer
Profil
ee ani tak to nejede

je tento způsob bezpečný ?? mohl bych ho použít ??
Alphard
Profil
zkus ještě tohle:
<?php
include("connection.php");

session_start();

function userid($login,$pass,$link)
{
$vysledek = mysql_query("SELECT id FROM onlineGlogin WHERE login = '$login' AND password = '$pass'",$link);
if(mysql_num_rows($vysledek) == 0)
return false;
else
{
$radek = mysql_fetch_array($vysledek);
return $radek["id"];
}
}

$name = $_POST["login"];
$pass = md5($_POST["pass"]);

$link = mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname,$link);

$uid = userid($name,$pass,$link);

if(!$uid)
header("Location: ../index.php?site=admin_login");
else
{
session_register("uid");
$_SESSION["uid"] = $uid;
header("Location: ../index.php?site=admin_onlinegames");
}
?>
killer
Profil
díky problém jsem už vyřešil
Toto téma je uzamčeno. Odpověď nelze zaslat.