Warum kostenlos registrieren?

Nur als registriertes Mitglied hast Du vollen Zugriff auf alle Funktionen unserer Website. So kannst Du eigene Fragen stellen und hast die volle Übersicht über neue interessante Themen im Forum.
Jetzt kostenlos registrieren.

Login


PHP -> log-in-system mit cookies

Fragen oder Probleme mit HTML, PHP oder CSS?

PHP -> log-in-system mit cookies

Beitragvon Spezial am 09.08.2004, 13:43

Also mein Problem:
Ich habe auf http://spezial.funpic.de/ ein log-in-system gecodet, aber wenn man sich einlogt, und dann im geschützten bereich ist kommen fehler am laufenden bande!
Also die index.php(ist vll ein bisschen viel aber ich habe gerade nur kurz zeit und möchte da jetzt nix unwichtiges rausschneiden usw.):
Code: Alles auswählen
<!DOCTYPE html PUBLIC "_//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>www.spezial.de.be</title>
</head>
<body bgcolor="#C0C0C0">
<?php
$hauptinhalt=$HTTP_GET_VARS['do'];
$ordner=$HTTP_GET_VARS['area'];

  print("<table align=center border='2,5' bordercolor=#AEA7B1>");
  print("<tr>");
  print("<td height=70 width=900>");
  print("<center>");
  print("<img src='images/top.jpg' height=70 width=900>");
  print("</center>");
  print("</td>");
  print("</tr>");
  print("<tr>");
  print("<td>");
  print("<table border='2' align=center bordercolor=#AEA7B1>");
  print("<tr>");
  print("<td valign=top height=100 width=150>");
  print("<center>");
  print("Menü<br><br>");
  print("<li><a href='index.php'>Start</a></li>");
  print("<br><li><a href='index.php?area=includes&do=test'>ein erster link</a></li><br>");
  print("<img src='images/spacer.gif' width=10 height=200>");
  print("<table border=0><tr><td bgcolor='#6E7B8B'>");
include("includes/counter.php");
  print("</td></tr></table>");
  print("</center>");
  print("</td>");
  print("<td valign=top height=500 width=600>");
if($hauptinhalt!="" or $ordner!=""):
include($ordner.'/'.$hauptinhalt.'.php');
else:
include("includes/start.php");
endif;
  print("</td>");
  print("<td valign=top height=100 width=150>");
  print("<center>");
  print("Log-In:<br>");
  print("<a href='index.php?area=includes&do=vergessen'><font size='-1,5'>Passwort vergessen?</font></a>");
  print("<form name='Eingabe' action='php/login.php' method='post'>");
  print("Benutzer: <br>");
  print("<input type='text' name='benutzer' size='20'><br>");
  print("Passwort: <br>");
  print("<input type='password' name='pass' size='20'><br><font size='-1,5'>Neu hier? <a href='index.php?area=includes&do=reg'>Hier</a> kannst du dich registrieren</font><br>");
  print("<input type='submit' value='Log-In'>");
  print("</form>");
  print("</center>");
  print("</td>");
  print("</tr>");
  print("</table>");
  print("</td>");
  print("</tr>");
  print("</table>");
?>
</body>
</html>

so die "php/login.php":
Code: Alles auswählen
<?php
setcookie('id', $benutzer);
setcookie('pw', $pass);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body bgcolor="#C0C0C0">
<?php
$benutzer=$HTTP_POST_VARS['benutzer'];
$pass=$HTTP_POST_VARS['pass'];

$db=mysql_connect("localhost", "spezial", "*ZENSIERT*")
  or die ("<b>Zur Zeit kein Connect zum Datenbankserver!</b>");
mysql_select_db("spezial")
  or die ("<b>Datenbank konnte nicht angesprochen werden</b>");
$anfrage="SELECT * FROM user WHERE benutzer LIKE '";
$anfrage.=$benutzer;
$anfrage.="'";
$ergebnis=mysql_query($anfrage)
  or die ("<b>Fehler bei der Datenbankanfrage</b>");
$anz=mysql_num_rows($ergebnis)
or die ("<b>Anzahl der Ergebnisse konnte nicht ermittelt werden</b>");
if ($anz==1) {
    $zeile=mysql_fetch_row($ergebnis)
      or die ("<b>Der Datensatz konnte nicht ermittelt werden</b>");
    if ($pass==$zeile[1]) {
        print ("<table border='0' width=100% height=100%><tr width=100% height=100%><td width=100% height=100%>");
        print ("<center>Hallo");
        print ($benutzer);
        print ("!<br><a href='../index.php?area=includes&do=test'>Login erfolgreich. Solltest du innerhalb der nächsten 5 Sekunden nicht weitergeleitet werden klicke hier.</a>");
        print ("<meta http-equiv='refresh' content='5; URL=http:../index.php?area=includes&do=test'>");
      }
    else {
        print ("Das agegebene Passwort ist für den von Ihnen gewählten Benutzer <b>FALSCH</b>!<br><br>");
        print ("<a href='../index.php'>Startseite</a>");
     }
    }
else {
        print ("Benutzername <b>NICHT</b> vorhanden!<br><br>");
        print ("<a href='../index.php'>Startseite</a>");
  }
mysql_close($db);
?>
</body>
</html>

und die "includes/test.php" so:
Code: Alles auswählen
<?php
$id=$HTTP_COOKIE_VARS["id"];
$pw=$HTTP_COOKIE_VARS["pw"];

$db=mysql_connect("localhost", "spezial", "*ZENSIERT*");
mysql_select_db("spezial");
$anfrage="SELECT * FROM user WHERE benutzer LIKE '";
$anfrage.=$id;
$anfrage.="'";
$ergebnis=mysql_query($anfrage);
$anz=mysql_num_rows($ergebnis);
if ($anz==1) {
    $zeile=mysql_fetch_row($ergebnis);
    if ($pw==$zeile[1]) {
        print ("<table border='0' width=100% height=100%><tr width=100% height=100%><td width=100% height=100%>");
        print ("<center>Hallo");
        print ($id);
        print ("!<br>Willkommen im internen Bereich!</a>");
      }
    else {
        print ("Cookie error: Das im Cookie gespeicherte Passwort ist <b>FALSCH</b>!<br><br>");
        print ("<a href='../index.php'>Startseite</a>");
     }
    }
else {
        print ("Cookie error: Der im Cookie gespeicherte Benutzername ist <b>NICHT</b> vorhanden!<br><br>");
        print ("<a href='../index.php'>Startseite</a><br>");
        print ($id);
        print ($pw);
  }
mysql_close($db);
?>

Was ist daran falsch?
Würde mich über schnelle und gute Hilfe freuen :)

Code: Alles auswählen
Logindaten(damit ihr den Fehler selbst anschauen könnt):
Benutzername: Benutzer
Passwort: passwort


MfG.
Spezial
Spezial
 
Beiträge: 9
Registriert: 09.08.2004, 12:44
Wohnort: auf meiner website!


Beitragvon CoolCasimir am 09.08.2004, 18:02

Also bei mir kommen keine Fehler. Wo soll denn da einer auftreten. Habe mir Deinen Quelltext jetzt nicht richtig durchgelesen, mir ist nur aufgefallen, dass Du den Befehl print sehr gerne benutzt. Ich persönlich benutze immer echo, aber das muss ja jerder selber wissen.
P.S. Du kannst die Klammern bei print weg lassen.
CoolCasimir
Moderator a. D.
 
Beiträge: 2197
Registriert: 14.01.2004, 14:07
Wohnort: Hansestadt Hamburg

Beitragvon Spezial am 09.08.2004, 19:48

print ist einfach übersichtlicher
wenn ich das ganze mit echo machen würde steige ich nicht mehr durch V.V
Spezial
 
Beiträge: 9
Registriert: 09.08.2004, 12:44
Wohnort: auf meiner website!

Beitragvon Spezial am 09.08.2004, 19:49

achja der fehler kommt:
einloggen geht ja -> weiterleitung(innerhalb von 5 sekunden) -> cookie eroor: der im cookie gespeicherte benutzername ist nicht vorhanden!
Spezial
 
Beiträge: 9
Registriert: 09.08.2004, 12:44
Wohnort: auf meiner website!

Beitragvon CoolCasimir am 09.08.2004, 23:05

Poste doch mal den Inhalt der Tabelle user bitte.
CoolCasimir
Moderator a. D.
 
Beiträge: 2197
Registriert: 14.01.2004, 14:07
Wohnort: Hansestadt Hamburg

Beitragvon Spezial am 10.08.2004, 13:54

okay.
da wo *Zensiert* steht ist mein passwort...da ich hier und überall anders ein ähnliches habe möchte ich das nicht veröffentlichen V.V
Code: Alles auswählen
benutzer ; pw ; mail ; id ; webmaster ; newsb ; newsp
Spezial ; *Zensiert* ; spezial14@freenet.de ; 1 ; 1 ; 1 ; 1
name ; passwort ; e-mail@provider.de ; 3 ; 0 ; 0 ; 0
DnAe ; DNAE ; dnae@operamail.com ; 4 ; 0 ; 0 ; 0
Benutzer ; passwort ; test@test.de ; 0 ; 0 ; 0 ; 0

; = neue Spalte
Spezial
 
Beiträge: 9
Registriert: 09.08.2004, 12:44
Wohnort: auf meiner website!

Beitragvon CoolCasimir am 10.08.2004, 18:50

Code: Alles auswählen
setcookie('id', $benutzer);
$id=$HTTP_COOKIE_VARS["id"];


Was steht denn nun in $id drin? hast Du das mal ausgegeben?
So wie ich das sehe steht da nun der Benutzername drinnen und nicht die ID. Du musst also nach dem Einloggen, vor der Weiterleitung die ID noch zuordnen.
CoolCasimir
Moderator a. D.
 
Beiträge: 2197
Registriert: 14.01.2004, 14:07
Wohnort: Hansestadt Hamburg

Beitragvon Spezial am 10.08.2004, 20:43

ne in dem cookie 'id' muss der benutzername stehen! ich war nur zu faul den cookie benutzername zu nennen... und das feld id ist für den a**ch ich habe die userliste vor 4tagen gemacht und gestern erst richtig gelesen wie das funzt das er die automatisch zuordnet und nichts zweimal vorkommt...

die seite hat jetzt völlig neues design, die cookies heißen anders (auch anderes verzeichnis auf dem server) und die userliste funzt jetzt :)
und wenn ich das heute noch schaffe, dann funktioniert das loginsystem endlich :)
aber wahrscheinlich schaffe ich das erst morgen fertig zu machen wenn's funzt/nicht funzt dann melde ich mich nochmal ;)

SChonmal danke für die tolle Hilfe ;)

MfG.
Spezial!
Spezial
 
Beiträge: 9
Registriert: 09.08.2004, 12:44
Wohnort: auf meiner website!

Beitragvon CoolCasimir am 11.08.2004, 09:32

Ja, dann viel Glück.
CoolCasimir
Moderator a. D.
 
Beiträge: 2197
Registriert: 14.01.2004, 14:07
Wohnort: Hansestadt Hamburg

Beitragvon Spezial am 11.08.2004, 16:30

danke :)

ihr seid hier ja voll nett ;) *fettes_lob*
Spezial
 
Beiträge: 9
Registriert: 09.08.2004, 12:44
Wohnort: auf meiner website!



Ähnliche Themen


Zurück zu HTML, PHP & Co.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste