Hallo,
ich bin noch PHP und MySQL Anfänger und versuche ein einfaches Login-Script zu schreiben, aber irgendwie funktioniert das nicht richtig. Es fängt schon damit an, dass die SQL-Abfrage die Werte doppelt ausgibt laut var_dump. Die Tabelle die ich anspreche hat 6 Spalten, in dem Array "$benutzer" sind aber 12 Einträge.
SQL Abfrage in der Loginseite:
Ich habe die mysql_query schon in phpmyadmin getestet und dort hat sie auch funktioniert, ohne die Werte doppelt auszugeben. Ich habe sogar versucht durch "GROUP BY" die Anzahl zu begrenzen, was eigentlich nicht nötig wäre, denn der Benutzername ist unique und momentan ist auch nur ein Testeintrag in der Tabelle eingetragen. Aber das brachte auch nicht den gewünschten Erfolg. Fehlermeldungen erhalte ich auch keine.
Nach einem erfolgreichen Login soll der User auf eine andere Seite weitergeleitet werden. Das versuchte ich wie folgt:
ich versuchte es auch mit vollständiger URL:
Hatte so nicht funktioniert, also habe ich die Krücke über JS genommen:
Ich hab dann auch gelesen, dass "header" nur dann aufgerufen werden kann, wenn vorher keine Ausgabe erfolgt ist. Ich habe dann alle "echo" und "var_dump" Befehle entfernt, die "or die" habe ich drin gelassen, weil ich dachte dass hier keine Ausgabe stattfindet, weil keine Fehlermeldung angezeigt wurde. Hätte ich das auch entfernen sollen?
Die im Login erhaltenen Werte versuchte ich dann in einer SESSION zu speichern und an die Folgeseite zu übergeben.
In der Loginseite:
Innerhalb der Loginseite kann ich mit mit
das gespeicherte Array abrufen, zwar wie anfangs erwähnt mit doppelten Werten, aber immerhin. In der Folgeseite geht das leider nicht. Da gibt mir var_dump immer "NULL" aus.
Aufruf in der Folgeseite:
Was mache ich falsch?
Ich freue mich über jegliche Hilfe.
Vielen Dank schon mal im Voraus.
Grüße,
pyretta
ich bin noch PHP und MySQL Anfänger und versuche ein einfaches Login-Script zu schreiben, aber irgendwie funktioniert das nicht richtig. Es fängt schon damit an, dass die SQL-Abfrage die Werte doppelt ausgibt laut var_dump. Die Tabelle die ich anspreche hat 6 Spalten, in dem Array "$benutzer" sind aber 12 Einträge.
SQL Abfrage in der Loginseite:
PHP:
$result = mysql_query("SELECT * FROM reg_tbl_user WHERE user_name = '$benutzername' AND user_passwort = '$passwort_sha1' GROUP BY user_name") or die("Anfrage fuer 'reg_tbl_user' war nicht erfolgreich. Error: " . mysql_error());
$benutzer = mysql_fetch_array($result);
Ich habe die mysql_query schon in phpmyadmin getestet und dort hat sie auch funktioniert, ohne die Werte doppelt auszugeben. Ich habe sogar versucht durch "GROUP BY" die Anzahl zu begrenzen, was eigentlich nicht nötig wäre, denn der Benutzername ist unique und momentan ist auch nur ein Testeintrag in der Tabelle eingetragen. Aber das brachte auch nicht den gewünschten Erfolg. Fehlermeldungen erhalte ich auch keine.
Nach einem erfolgreichen Login soll der User auf eine andere Seite weitergeleitet werden. Das versuchte ich wie folgt:
PHP:
header('Location: folgeseite.php');
Code:
header('Location: http://www.domain.de/folgeseite.php');
Hatte so nicht funktioniert, also habe ich die Krücke über JS genommen:
PHP:
echo "<script type='text/javascript'>$(document).ready(function(){window.location = 'folgeseite.php';});</script>";
Die im Login erhaltenen Werte versuchte ich dann in einer SESSION zu speichern und an die Folgeseite zu übergeben.
In der Loginseite:
PHP:
session_start();
[...]
$_SESSION['benutzer'] = $benutzer;
Innerhalb der Loginseite kann ich mit mit
PHP:
var_dump($_SESSION['benutzer']);
Aufruf in der Folgeseite:
PHP:
session_start();
var_dump($_SESSION['benutzer']);
Was mache ich falsch?
Ich freue mich über jegliche Hilfe.
Vielen Dank schon mal im Voraus.
Grüße,
pyretta