php.lv forumi: logina problēmas - php.lv forumi

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

logina problēmas

#1 User is offline   eT` 

  • Daudzsološais profiņš
  • PipPipPip
  • Group: Reģistrētie lietotāji
  • Posts: 244
  • Joined: 2008.01.08

Posted 2010.03.05 05:34

š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
<?
}
?>

This post has been edited by eT`: 2010.03.05 05:38


#2 User is offline   Morphius 

  • Daudzsološais profiņš
  • PipPipPip
  • Group: Reģistrētie lietotāji
  • Posts: 132
  • Joined: 2009.03.18

Posted 2010.03.05 06:04

Pievērs uzmanību, vai šajā login funkcijas pirmajās rindās ir tāds nieks kā session_start()...

This post has been edited by Morphius: 2010.03.05 06:05


#3 User is offline   eT` 

  • Daudzsološais profiņš
  • PipPipPip
  • Group: Reģistrētie lietotāji
  • Posts: 244
  • Joined: 2008.01.08

Posted 2010.03.05 06:24

protams, ka ir :)
uz Win7 un visa pārējā gāja, bet tagad uz Ubuntu neiet :/

#4 User is offline   Morphius 

  • Daudzsološais profiņš
  • PipPipPip
  • Group: Reģistrētie lietotāji
  • Posts: 132
  • Joined: 2009.03.18

Posted 2010.03.05 07:43

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...

#5 User is offline   2easy 

  • Koda dievs
  • PipPipPipPipPip
  • Group: Reģistrētie lietotāji
  • Posts: 2,006
  • Joined: 2009.10.02

Posted 2010.03.05 08:51

pārbaudi, vai browserim cepumi ir atļauti. varbūt linux domā, ka saldumi nav veselīgi :D

#6 User is offline   eT` 

  • Daudzsološais profiņš
  • PipPipPip
  • Group: Reģistrētie lietotāji
  • Posts: 244
  • Joined: 2008.01.08

Posted 2010.03.05 10:40

cepumos ir GARMSESSID ;]]

#7 User is offline   2easy 

  • Koda dievs
  • PipPipPipPipPip
  • Group: Reģistrētie lietotāji
  • Posts: 2,006
  • Joined: 2009.10.02

Posted 2010.03.05 11:08

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ā ;)

This post has been edited by 2easy: 2010.03.05 11:13


#8 User is offline   eT` 

  • Daudzsološais profiņš
  • PipPipPip
  • Group: Reģistrētie lietotāji
  • Posts: 244
  • Joined: 2008.01.08

Posted 2010.03.08 06:22

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 )

This post has been edited by eT`: 2010.03.08 06:39


#9 User is offline   2easy 

  • Koda dievs
  • PipPipPipPipPip
  • Group: Reģistrētie lietotāji
  • Posts: 2,006
  • Joined: 2009.10.02

Posted 2010.03.08 14:13

pārbaudi datus ;)

#10 User is offline   eT` 

  • Daudzsološais profiņš
  • PipPipPip
  • Group: Reģistrētie lietotāji
  • Posts: 244
  • Joined: 2008.01.08

Posted 2010.03.09 02:13

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 :)

This post has been edited by eT`: 2010.03.09 02:17


#11 User is offline   2easy 

  • Koda dievs
  • PipPipPipPipPip
  • Group: Reģistrētie lietotāji
  • Posts: 2,006
  • Joined: 2009.10.02

Posted 2010.03.09 04:30

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 ;)

#12 User is offline   eT` 

  • Daudzsološais profiņš
  • PipPipPip
  • Group: Reģistrētie lietotāji
  • Posts: 244
  • Joined: 2008.01.08

Posted 2010.03.09 04:45

ahh uztaisīju mazliet savādāk :D

kvērijs -> mysql_result
ja mysql_result == 1 tad atkal kvērijs un fetch :D

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic