Session Problem

Alles, was PHP betrifft, kann hier besprochen werden.

Session Problem

Postby xandas1 » 20. October 2008 12:39

Hallo Leute, ich habe ein PHP Skript, indem soll der Username auf Diverse Seiten übergeben werden. Mein Problem ist ich prüfe ob die Variable vorhanden ist, aber es wird immer die Bedingung für nicht vorhanden ausgeführt.. warum??

Code: Select all
<?php

session_start();

$name = $_POST['name'];

if(!isset($name))
   {
   $name = "Gast";
   }

//Session registieren
$_SESSION['username'] = $name;

echo "hallo $name"

$db_host = "mysql";
$db_user = "***";
$db_pwd = "***";
$db_name = "xandas1";
$connection = mysql_connect($db_host,$db_user,$db_pwd);
mysql_select_db($db_name);

$password = $HTTP_POST_VARS['password'];
$user = $HTTP_POST_VARS['user'];

$query = "SELECT * FROM users WHERE pass='$password' AND user='$user'";
$result = mysql_query($query);
while($row = mysql_fetch_array($result)){
$checkuser = $row[user];
$checkpassword = $row[pass];
}
?>
<html>
<head>
<title>Datencheck <? echo $HTTP_POST_VARS['user'];?></title>
</head>
<body>
<?
if($user == $checkuser && $password == $checkpassword && $user != ""){
@session_register("user","password");
echo "Herzlich Willkommen $name Sie worden erfolgreich eingeloggt. <a href= session2.php> Weiter </a>";
} else{
echo "Dein Benutzername oder das Kennwort sind Falsch, klicke auf <a href= index.html> Zurück </a> um das Login zu wiederholen!";
}

?>
<br>
<br>
<body bgcolor="#999999">
</body>
</html>
xandas1
 

Postby Nobbie » 20. October 2008 15:48

$password = $HTTP_POST_VARS['password'];


Warum benutzt Du außer $_POST immer noch die (total veraltete) Variable $HTTP_POST_VAR?

$query = "SELECT * FROM users WHERE pass='$password' AND user='$user'";
$result = mysql_query($query);
while($row = mysql_fetch_array($result)){


Hast Du hier mal überprüft, ob die Anfrage überhaupt irgendeinen Treffer gibt (sprich: wird die while-Anweisung wenigstens einmal durchlaufen?).

Und: wieso machst Du überhaupt eine while-Schleife? Wenn es mehrere Treffer gäbe, so würde ja jeder Durchlauf das Ergebnis von davor überschreiben!?

Mit der Funktion mysql_num_rows() (siehe http://de2.php.net/manual/en/function.m ... m-rows.php) kannst Du überprüfen, ob und wieviele Treffer die Abfrage vorher überhaupt gebracht hat.

Das Script sieht so aus, als wenn Du es aus verschiedenen (teilweise neuen, teilweise uralten) Vorlagen zusammenkopiert hättest - weißt Du eigentlich auch genau, was da im einzelnen passiert?
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04


Return to PHP

Who is online

Users browsing this forum: No registered users and 17 guests