![]() |
PHP (Anfänger) Problem!
Hallo zusammen,
Habe eine Loginseite, wo man Benutzernamen aus einem Dropdown Menü auswählt und das dazugehörige Passwort eingibt. Wenn ich dann aber auf anmelden klicke, bekomme ich nur eine leere Seite. Wo liegt der Fehler begraben??? Hier die Scripts: login.php <? //Verbindung zur DB herstellen $db = @mysql_connect("localhost","root"); @mysql_select_db(Test); @mysql_query($db); //Variablen $Anmelden = array_item($_POST, 'Anmelden'); $Passwort = array_item($_POST, 'Passwort'); $Username = array_item($_POST, 'Username'); function array_item($ar, $key) { if (array_key_exists($key, $ar)) return ($ar[$key]); } if ($Anmelden) { $result = mysql_query("SELECT UserID, Username FROM Users WHERE Username = '$Username' and Passwort = '$Passwort'"); if (mysql_num_rows($result)==1) { echo '<META HTTP-EQUIV="REFRESH" CONTENT="0;URL=./home.html" target="_to">'; exit; } } @mysql_close($db); ?> und hier der Teil der login.html <h2><font face="Futura Md BT" size="6">Bitte melden Sie sich mit ihrem Benutzernamen und ihrem Passwort an:</font></h2> <h2></h2> <form method="post" action="login.php"> <table width="19%" border="1" cellspacing="2" cellpadding="0"> <tr align="right" valign="middle"> <td align="right" valign="middle" width="15%"> <font face="Futura Lt BT" size="4">Username:</font></td> <td align="left" valign="middle" width="25%"> <select name="Username" size="1"> <option value="Name1">Name1</option> <option value="Name2">Name2</option> </select></td> </tr> <tr> <td align="right" valign="middle" width="15%"> <font face="Futura Lt BT" size="4">Passwort:</font></td> <td align="left" valign="middle" width="25%"><input type="password" name="Passwort" size="25"></td> </tr> <tr> <td align="right" valign="middle" width="15%"></td> <td align="left" valign="middle" width="25%"><input type="submit" name="Anmelden" value="Anmelden"></td> </tr></form> </table> <h2></h2> </div> </body> Danke schon mal im voraus! |
Re: PHP (Anfänger) Problem!
Zitat:
a) einen "ordentlichen" HTTP Redirect machen oder b) eine komplette HTML-Seite schicken und c) eine absolute URL verwenden P.S.: Ein Target wird da ned funktionieren. ad a) PHP-Code:
|
Hier nun die ganze HTML Seite.
@_m3 Danke für die Info, nur: Warum muss ich hier die URL absolut übergeben??? <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html;charset=iso-8859-1"> <meta name="generator" content="Adobe GoLive"> <title>Login Verwaltungsprogramm!</title> </head> <body bgcolor="#3366CC" link="#FFFFFF" vlink="#FF0000" alink="#00FF00" text="#FFFF00" background="hintergrund.jpg"> <div align="center"> <h1></h1> <h1></h1> <h1><font face="Futura Md BT" size="7">Herzlich Willkommen im</font></h1> <h1><font face="Futura Md BT" size="7">Verwaltungsprogramm</font></h1> </p> </p> <h1></h1> <h2><font face="Futura Md BT" size="6">Bitte melden Sie sich mit ihrem Benutzernamen und ihrem Passwort an:</font></h2> </p> <h2></h2> <form method="post" action="login.php"> <table width="19%" border="1" cellspacing="2" cellpadding="0"> <tr align="right" valign="middle"> <td align="right" valign="middle" width="15%"> <font face="Futura Lt BT" size="4">Username:</font></td> <td align="left" valign="middle" width="25%"> <select name="Username" size="1"> <option value="Name1">Name1</option> <option value="Name2">Name2</option> </select></td> </tr> <tr> <td align="right" valign="middle" width="15%"> <font face="Futura Lt BT" size="4">Passwort:</font></td> <td align="left" valign="middle" width="25%"><input type="password" name="Passwort" size="25"></td> </tr> <tr> <td align="right" valign="middle" width="15%"></td> <td align="left" valign="middle" width="25%"><input type="submit" name="Anmelden" value="Anmelden"></td> </tr></form> </table> <h2></h2> </div> </body> </html> Vielleicht findet ja jemand den Fehler mit der leeren Seite! Danke! |
also ich würd schreiben:
PHP-Code:
|
oder so:
PHP-Code:
|
Habe es jetzt so gemacht, aber es ändert sich immer noch nichts.
Bekomme immer noch die leer Seite! Was mache ich da bloß falsch????? |
Alle beteiligten Files gezippt als RedirectKlapptnicht.zip (oder anderer Name *schüchterichmalherum*) posten und die Teilnehmer werden sich zumindest bemühen die Ursache zu klären.
|
Anbei die Files login.html, login.php und home.html (ohne Grafiken!)
Vielleicht findet ja so jemand den Fehler. |
Screenshot (ohne Taskleiste - muss nicht sein :D :rolleyes: ;) - ) :
|
Sprich: Bei mir geht es !
|
PHP-Code:
|
jetzt weiß ich, wie du über 2000 posts zusammenbekommen hast ;) :lol:
|
Wieso funktionierts bei dir, aber bei mir nicht????
Woran könnte das jetzt liegen??? |
1.) Wenn ich mir die HTML Quellen von Go Live so ansehe kommt mir das Grausen, aber das ist OT ;)
2.) Die Zeile @mysql_query($db) bricht mir das Herz. 3.) Drückst du vielleicht auf die ENTER Taste anstatt den Submit-Button zu drücken? ~ |
@heli2sky: Unterhalb einer Anhangdatei kann man nichts schreiben. Das hat also Verständnisgründe (Didaktische Vorgangsweise). Aber ich weiß, für Leute wie Dich, soll man den dritten vor dem zweiten Schritt machen *HoHoh is scho Weihnachten, fragt der Kaiser Franz ganz imponiersüchtelnd* ... ;) :rolleyes:
|
@käptn: Warum bricht dir die Zeile mit dem mysql_query das Herz?
Habe es mit Enter und mit Submit versucht! |
|
Was soll es bringen wenn du den Verbindungszeiger an mysql_query() übergibst?
Vielleicht solltest du bei der Fehlersuche die @ weglassen? :rolleyes: ;) Und vielleicht noch folgendes verwenden: PHP-Code:
|
Zitat:
PHP-Code:
|
Kommen die Einser weisst Du bescheid, kommen sogar die Zweier dann eben auch. Sprich die Zweier kommen unter Garantie bei Dir nicht. (Bei mir wären sie ja auch nicht gekommen) Ich habe ja nur header("Location: home.html"); in einer c1.php Datei unter http://localhost/ gemacht ...
|
Stimmt, die 22222er kommen nicht.
Warum bloß nicht???? |
Die Spalte Passwort sollte man vielleicht auch im Select mit Abfragen ;)
Jetzt kommen sogar die 2222er, nur bekomme ich jetzt die Fehlermeldung: Cannot modify header information - header already sent by....... Was das bedeutet ist mir klar, nur: Wie kriege ich das weg????? Cookies habe ich schon zusammen mit allen Temp Internet Files gelöscht, hat aber nichts gebracht. Was muss ich sonst noch machen????? |
Mach den <?php ?> Teil noch VOR dem Html-Teil! Wenn du das Skript erst im <body> ausführst, dann ist der Header der Datei schon gesetzt und kann nicht erneut gesetzt werden ;)
@kikakater Schon klar, manchmal sind Doppelposts auch sinnvoll, aber schau dir diesen Thread mal an -> 9 Postings von dir, wofür auch 6 genügt hätten... Jeder hat da seine Philosophie, meine ist, dass auch im Internet und in Foren bestimmte Umgangsformen herrschen und Funktionen wie z.B. "edit" zum guten Ton gehören sollten. (Wobei natürlich dein Engagement im Forum sehr lobend zu erwähnen ist!) |
Ich kann Dir überhaupt nicht beipflichten, es geht hier um Didaktik und nicht um maximale Effektivität, was die Anzahl an Statements anlangt.
Es ist aus Verständnisgründen und der Übersicht notwendig, mehrere Postings abzusetzen. Inflation gibt es dahingehend nicht. Nur frage ich mich, warum keine Späne fallen sollen ? Bist neidisch ? Also, versteh'e "das sachliche Argument" und reagier nicht überkandidelt (ist ein bißchen schwierig, wenn das zum Thema gemacht werden soll), es geht mir um Hilfe, nicht um den Eindruck, den ich bei Zaungästen erwecke. Das ist sowieso immer ein willkürliches Unterfangen. Wie sich etwas aufschaukelt, weiß man, wenn man ein bißchen geschult ist. :confused: :confused: :confused: :confused: :confused: |
@creibl: Ich habe Deinen Fehler - respektive die Ursache des Fehlers in Zusammenhang mit dem Header Befehl - gefunden :cool: :D :)
Ersetze den Parameterwert für output_buffering von off durch z.B. 4096 in der RICHTIGEN - sprich der verwendeten - php.ini. Fahr' bitte den Apache Server herunter und starte ihn danach wieder oder setze das Kommando restart ab, also diesen Schritt bitte nicht vergessen ! Dann klappt's auch mit dem Header ... :lol: |
Danke euch!
Jetzt hats funktioniert! Habe das ganze <?php ?> noch vor das <html> gegeben und das buffering umgesetzt, dann hats geklappt. Schönes Wochenende noch. Danke! |
Alle Zeitangaben in WEZ +2. Es ist jetzt 22:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag