[PHP] Brauche Hilfe bei (einfachem) Kunden-Login (bitte asap ;-))

C

cyberdude2011

Gast
Moin,

bin hier gerade für so ein Schülerprojekt am PHP-Programmieren. Nun haben wir einen einfachen Onlineshop auf PHP und mit mySQL gebastelt und nun funktioniert mein Kunden-Login (der eigentlich als Admin-Login dienen soll) irgendwie nicht...

Hab halt ne Tabelle angelegt (tbl_login) mit name und pass und als Formular:
Formular für Eingabe schrieb:
<html>
<body></body>
<form action="check.php" method="post">
<table width="200" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>Name:</td>
<td><input type="text" name="name"></td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" name="pass"></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="login" value="Login">
</td>
</tr>
</table>
</form>
</html>
und dann meine check.php
check.php schrieb:
<?php
include("config.inc.php");
session_start();

if($login)
{
$name = $_POST['name'];
$pass = $_POST['pass'];
echo"eingegeben";

$pass = md5($pass);



$check = "SELECT * FROM `".$my_table."` WHERE name LIKE '".$name."' AND pass = '".$pass."'";
$check_result = mysql_query($check);
$result = mysql_num_rows($check_result);


if($result > 0)
{
$logedin = TRUE;
session_register("logedin");
echo "Login erfolgreich!<br>Bitte klicken Sie <a href=\"index.php\">hier</a> um zur Startseite zu gelangen.";
}
else
{
echo "Die Daten waren falsch.";
}
}
?>

Verbindung ist auch kein Problem, allerdings funktioniert irgendwas nicht mit der Übergabe der eingegebenen Daten, da nach Abschicken des Formulars die check.php keine komplett weiß bleibt... selbst wenn ich ne echo eingabe hinter if($login) setze die seite komplett weiß bleibt :(

was mache ich falsch?

danke und gruß :)
 
Moin,

Ändere folgende Zeile:

PHP:
  if ($login)

in diese hier ab:

PHP:
  if (isset($_POST['login']))

So sollte es eigentlich funktionieren.


Ciao
 
Code:
WHERE name LIKE '".$name."' AND pass = '".$pass."'";
Das ist auch grober Unfug :) Richtig ist:
Code:
WHERE name='".$name."' AND pass = '".$pass."'";

Dann in der Datenbank sicherstellen, dass bei Benutzername und passwort der korrekte zeichensatz hinterlegt ist. Wenn gross und kleinschreibung beachtet werden soll, müsstest du als coalition noch latin1_binary für die spalten name und pass angeben.
 
Noch zwei andere Tips - session_register() ist veraltet. Um Daten in die Session zu schreiben, benutze $_SESSION:

$_SESSION['logedin']=TRUE;

Danach würde ich eine Weiterleitung mit header() empfehlen ;)
 
Zurück
Oben