Jump to content
php.lv forumi

logina problēmas


eT`

Recommended Posts

šodien pārisntalēju OS no Win7 uz Ubuntu 9.10 un mēģināju ielogoties savā saitā, bet neizdodas :/

 

logina kods:

if(isset($_GET["action"]) && $_GET["action"] == "login")
{
if(isset($_POST["name"]) && isset($_POST["pass"]) && $_POST["name"] != "" && $_POST["pass"] != "")
{
	$user1 = html(strtolower($_POST["name"]));
	$user = str_replace(" ","_",$user1);
	$parole = md5($_POST["pass"].'xxx');
	$k = mysql_query("SELECT * FROM useri WHERE username='$user' AND password='$parole'");
	$f = mysql_fetch_array($k);
	$stat = $f["status"];
	$idl = $f["username"];
		if(mysql_num_rows($k) == 1)
		{
			if($stat != "0")
			{
			$_SESSION['admins'] = $stat;
			}
		mysql_query("UPDATE useri SET online='Y' WHERE username='$idl'");
		$_SESSION["user"] = $idl;
		header('Location: '.$_SERVER['HTTP_REFERER'].'');
		}
		else
		{
		header('Location: http://filmam.lv/jaunumi');
		}
}
else
{
header('Location: http://filmam.lv/jaunumi');
}
}

 

un vieta kur ir logns:

<?
if($_SESSION["user"] != '')
{
?>
menu
<?
}
else
{
?>
logina forma
<?
}
?>

Edited by eT`
Link to comment
Share on other sites

Nu tad sāc ar mazumiņu...pārbaudi vai sessijas tiek izveidotas...

Nu tip izveido 2-vus falus.

 

test1.php

 

session_start();
$_SESSION['test'] = "Ir OK";
echo '<a href="test2.php">Next Page</a>';

 

test2.php

session_start();
echo $_SESSION['test'];

 

Un tādā garā visus datus pārbaudi, vai tie tiek saņemti un vai tiek padoti...

Link to comment
Share on other sites

nju tad jādebugo step by step, kas strādā un kas nestrādā...

iekš $_SESSION kkas vsp saglabājas starp requestiem? (pēc f5)

 

 

 

hmm tīri no loģikas šīs 3 rindas

$f = mysql_fetch_array($k);
$stat = $f["status"];
$idl = $f["username"];

vajadzēja likt iekš

if(mysql_num_rows($k) == 1) {

bet tas tā ;)

Edited by 2easy
Link to comment
Share on other sites

jā pārliku un sapratu kapēc ;]]

kapēc izpildīt, ja nezin vai rezultāts vispār būs pozitīvs :)

 

tamm pārbaudīju un viņš neizpilda šo daļu:

 

<?
$user1 = html(strtolower($_POST["name"]));
	$user = str_replace(" ","_",$user1);
	$parole = md5($_POST["pass"].'ahujennasaltrinda');
	$k = mysql_query("SELECT * FROM filmu_useri WHERE username='$user' AND password='$parole'");
		if(mysql_result($k,0) == 1)
		{

}
?>

 

it kā netiek izselektēts users.

pamēģināju uzlikt aizmirsu paroli, un ielogoties ar to ko man atsūta uz e-pastu.

ielogoties izdevās, bet netiek saglabāts kukijs id un tapēc nekur tālāk netieku :D

zinu, zinu labāk tīri uz sesijām, bet viss ar laiku.

kapēc Ubuntu saglabā GARMSESSID kukiju bet id nesaglabā? :/

 

EDIT: viņs pēc katra refresha lapai, kur pieprasa kukiju saglabā cepumu ch_cookie WTF?

 

uztaisiju print_r sesijai un ieguvu:

Array ( [admins] => [user] => 78.84.248.11 )

bet jābūt

Array ( [admins] => 5 [user] => doublet )

Edited by eT`
Link to comment
Share on other sites

tāmmm izņēmu vispār no weba kukiju saglabāšanu un lietošanu, un tagad it kā ielogošanās ir kārtībā.

bet nav skaidrs kapēc saglabā pie katra refresha kaut kādu ch_cookie. kas tas tāds ir?

+ man sesijā saglabā useri bet statusu nesaglabā :/

 

pārveidotais logins:

<?
if(isset($_GET["action"]) && $_GET["action"] == "login")
{
if(isset($_POST["name"]) && isset($_POST["pass"]) && $_POST["name"] != "" && $_POST["pass"] != "")
{
	$user1 = html(strtolower($_POST["name"]));
	$user = str_replace(" ","_",$user1);
	$parole = md5($_POST["pass"].'xxx');
	$k = mysql_query("SELECT * FROM filmu_useri WHERE username='$user' AND password='$parole'");
		if(mysql_result($k,0) == 1)
		{
		$f = mysql_fetch_array($k);
		$stat = $f["status"];
		$idl = $f["username"];
			if($stat != "0") { $_SESSION['admins'] = $stat; }
		mysql_query("UPDATE filmu_useri SET online='Y' WHERE username='$idl'");
		$_SESSION["user"] = $idl;
		header('Location: '.$_SERVER['HTTP_REFERER'].'');
		}
		else
		{
		header('Location: http://filmam.lv/jaunumi');
		}
}
else
{
header('Location: http://filmam.lv/jaunumi');
}
}
?>

statuss DB glabājas kā enum('0','1','2','3','4','5')

 

EDIT: izņēmu to fetch_array pirms mysql_result un viss notiek :D kapēc tā? un tas ch_cookie ar vairs nesaglabājas vairākas reizes, bet tikai vienu reizi :)

Edited by eT`
Link to comment
Share on other sites

lol, gan fetch, gan mysql_result() abi pabīda uz priekšu iekšējo mysql pointeri uz nākošo rindu :D:D:D

tāpēc izmanto tikai vienu funkciju! tad jau laikam 1x fetcho ārā masīvu un ņem vajadzīgos laukus ;)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...