Needa
Mitglied
Hallo.
Die meisten Leute in verschiedenen Foren haben mir geraten auf Cookies beim Loginsystem zurückzugreifen.. gesagt getan, ich habe mein Loginscript auf Cookies umgestellt, damit der User sich nicht immer wieder neu einloggen muss!
Nur habe ich jetzt folgendes Problem, mein Script wirft mich beim Einloggen wieder zurück, mit der Begründung "Invalid Userdata". Das ist auch so gewollt, zumindest, wenn ein unregistrierter User eben auf eine geschützte Seite zugreifen will, oder man die Benutzerdaten falsch eingegeben hat, aber ich habe meine Bennutzerdaten 100% richtig eingegeben!
Ich poste hier mal die drei Seiten, die das Hauptscript darstellen, also Login -> Checkuser -> Interner Bereich.
Ich hoffe ihr könnt mir weiterhelfen!
Loginseite
Checkuser
Interner Bereich
Die Checkuser.php ist die gleiche wie in einem Tutorial auf der Seite hier beschrieben, bloß habe ich statt $_SESSION["user_id"] halt $_COOKIE["id] geschrieben. Ich sollte dazu auch sagen, dass alles auf meinem Rechner über XAMPP läuft, in der user-Tabelle auch noch andere Daten (Hardwareangaben, usw.) als Id, Privileg, Nickname und Kennwort sind und, dass das komplette Script schoneinmal richtig lief, also es hat funktioniert. Eigentlich habe ich keine großen Änderungen vorgenommen.
Also nochmal die Frage: Wieso loggt sich der Benutzer jetzt nicht ein? Ich glaube, es ist nur ein minimaler Fehler. So etwas hatte ich auch schon in meinem Loginscript auf Sessions basierend, aber da habe ich nur session_start (); falsch geschrieben. An dem setcookie (); Befehl ist doch eigentlich alles richtig?
TIA, Needa!
Die meisten Leute in verschiedenen Foren haben mir geraten auf Cookies beim Loginsystem zurückzugreifen.. gesagt getan, ich habe mein Loginscript auf Cookies umgestellt, damit der User sich nicht immer wieder neu einloggen muss!
Nur habe ich jetzt folgendes Problem, mein Script wirft mich beim Einloggen wieder zurück, mit der Begründung "Invalid Userdata". Das ist auch so gewollt, zumindest, wenn ein unregistrierter User eben auf eine geschützte Seite zugreifen will, oder man die Benutzerdaten falsch eingegeben hat, aber ich habe meine Bennutzerdaten 100% richtig eingegeben!
Ich poste hier mal die drei Seiten, die das Hauptscript darstellen, also Login -> Checkuser -> Interner Bereich.
Ich hoffe ihr könnt mir weiterhelfen!
Loginseite
PHP:
<?php
if (isset ($_COOKIE["id"])) // Hier wird eigentlich nur geprüft, ob ein Cookie
{ // vorhanden ist, ggf. wird weitergeleitet!
echo "<script language='javascript'>
document.location.href = '?user=profile'; </script>"; }
?>
<?php // Das ist halt der Text der bei falscher Nutzerdaten
if (isset ($_REQUEST["fehler"])) // eingabe erscheint (ist aus diesem Forum/Tut)
{
echo "Invalid Userdata.";
}
?>
<form action="?user=check" method="post">
<br>Nick:
<br><input type="text" name="nick" size="10">
<br>Pass:
<br><input type="password" name="pwd" size="10">
<br><input type="submit" value="Log-On">
</form>
Checkuser
PHP:
<?php
require('config.inc.php');
$connectionid = mysql_connect ("localhost", "root", "");
if (!mysql_select_db ("apexonline", $connectionid))
{
die ("Keine Verbindung zur Datenbank");
}
$sql = "SELECT ".
"*".
"FROM ".
"user ".
"WHERE ".
"(Nickname like '".$_REQUEST["nick"]."') AND ".
"(Kennwort = '".md5 ($_REQUEST["pwd"])."')";
$result = mysql_query ($sql);
if ($result)
{
$data = mysql_fetch_array ($result);
setcookie("id",$data["Id"],time()+3600*24*7); //Hier werden halt die
setcookie("nick",$data["Nickname"],time()+3600*24*7); // Cookies gesetzt, bin
setcookie("privileg",$data["Privileg"],time()+3600*24*7); //mir sicher das hier
// alles richtig ist!
echo "<script language='javascript'>
document.location.href = '?user=profile'; </script>"; }
else
{
echo "<script language='javascript'>
document.location.href = 'index.php?step=0&fehler=1'; </script>";
}
?>
Interner Bereich
PHP:
<?php include('checkuser.php'); ?>
<font face="Verdana, Arial, Helvetica, sans-serif" size="1">
BenutzerId: <?php echo $_COOKIE["id"]; ?><br>
Nickname: <?php echo $_COOKIE["nick"]; ?><br>
Privileg: <?php echo $_COOKIE["privileg"]; ?><br></font><br>
//Profil<br>
<a href="javascript:popup('user/profile_edit.php?userid=<?php print $_COOKIE["id"]; ?>')">Profil ändern</a><br>
<a href="javascript:popup('user/password_edit.php?userid=<?php print $_COOKIE["id"]; ?>')">Kennwort ändern</a><br>
<br>//Admin-Mod-Funktionen:<br>
<a href="">News editieren</a><br>
<a href="?page=user">User editieren</a><br>
Die Checkuser.php ist die gleiche wie in einem Tutorial auf der Seite hier beschrieben, bloß habe ich statt $_SESSION["user_id"] halt $_COOKIE["id] geschrieben. Ich sollte dazu auch sagen, dass alles auf meinem Rechner über XAMPP läuft, in der user-Tabelle auch noch andere Daten (Hardwareangaben, usw.) als Id, Privileg, Nickname und Kennwort sind und, dass das komplette Script schoneinmal richtig lief, also es hat funktioniert. Eigentlich habe ich keine großen Änderungen vorgenommen.
Also nochmal die Frage: Wieso loggt sich der Benutzer jetzt nicht ein? Ich glaube, es ist nur ein minimaler Fehler. So etwas hatte ich auch schon in meinem Loginscript auf Sessions basierend, aber da habe ich nur session_start (); falsch geschrieben. An dem setcookie (); Befehl ist doch eigentlich alles richtig?
TIA, Needa!