keine Weiterleitung
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
ausgabe
benutzer
benutzerdaten
code
dank
datenbank
fehler
formular
header
hilfe
http
kennwort
login
nachname
system
url
verbindung
vorname
warten
weiterleitung
-
hi liebes hilfbereits forum,
hilfe, hilfe,
nun ich habe eine login-system mit sessions in meine homepage integriert
(hier der link https://www.tutorials.de/resources/php-mysql-login-system-mit-sessions.154/,
es läuft ohne zu murren auf xampp.
habe es nun auf meinen lima-city geladen, datenbank ist vorhanden und eingestellt die benutzerdaten zuweisung erfolgte auch ohne fehler.
nur wenn ich nun die seite aufrufe wird sie gleich angezeigt, nicht das loginformular.
der ablauf wäre so:
seite aufrufen-->loginformular--> weiterleitung--> loginsession zur prüfung ob berechtigt oder nicht-->
berechtigt--> weiterleitung zur freigegebner seite erfolgt nicht-->
unberechtig--> weiterleitung (zurück) zum loginformular erfolgt nicht.
die seite www.reikuma27.de wird "normal" angezeigt klickt man auf ausloggen, wir man auch nicht zum loginformular weitergeleitet, sondern ins leere.
zum versuch!
benutzer:kurt
passwort: kp2709
http://reikuma27.de/phptest/login.php
http://reikuma27.de/phptest/formular.php
http://reikuma27.de/phptest/logout.php -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Also wenn ich probiere mich einzuloggen bekomme ich diesen Fehler angezeigt:
Keine Verbindung zur Datenbank
Ist das absicht, dass deine login.php, sowie die logout.php und das formular.php im Ordner phptest liegen?
Denn dein "Ausloggen"-Link zeigt auch nur auf reikuma27.de/logout.php und nicht auf phptest/logout.php
Wenn dein Script auf XAMPP lief, hast du es dann auch für den Lima Webspace angepasst?
Also sind die Pfade und die MySQL Login-Daten richtig?
Dein Script würde auch weiterhelfen..(aber Vorsicht! Wenn du dein Script zeigst, zensiere deine Logindaten für die DB) -
hi, erstmal danke für deine antwort!
also wie kann ich das script dir senden oder aber man sieht es auch hier https://www.tutorials.de/resources/php-mysql-login-system-mit-sessions.154/.
in dieser php login-system wurden nur die datenbank angepasst und meine benutzer geändert und wie schon geschrieben die datenbank anpassung war erfolgreich ist es noch.
die drei php-datein habe ich nur in den ordner zum anschauen oder wie auch immer, ist aber wieder gelöscht.
den test benzutzer und das passwort habe ich auch wieder gelöscht.
ich weis nicht wieso die weiterleitung nicht klappt
dies ist das formular.php
<?php session_start (); ?> <!DOCTYPE html> <html><head> <meta content="text/html;charset=UTF-8" http-equiv="Content-Type"><title>Login</title> <link rel="stylesheet" href="css3/css3.css" type="text/css"> <style type="text/css"> body { background-color: #999999; } h1 { color: white; text-decoration: underline; } #form { margin: 0px auto; padding: 10px 0px 10px 25px; width: 204px; background-color: #eaeaea; } .user { padding: 6px; color: black; } .passw { padding: 6px; } .einloggen { padding: 5px; margin-bottom: 5px; color: white; background-color: #990000; font-weight: lighter; } </style> </head><body> <?php if (isset ($_REQUEST["fehler"])) { echo "Die Zugangsdaten waren ungültig."; } ?> <h1>Login</h1> Bitte logge dich ein:<br> <form name="Login" id="form" method="post" action="login.php?"> Name:<br> <input class="user" maxlength="50" size="25" name="name"> <br> Kennwort:<br> <input class="passw" maxlength="50" size="25" name="pwd" type="password"><br> <br><input type="submit" value="Login"> </form> </body></html>
dies ist das logout.php
<?php ob_start (); session_start (); session_unset (); session_destroy (); header ("Location: formular.php"); ob_end_flush (); ?>
diese ist das login.php
<?php session_start (); $connectionid = mysql_connect ("mysql.lima-city.de", "USERxxxxx", "passwort"); if (!mysql_select_db ("datenbank", $connectionid)) { die ("Keine Verbindung zur Datenbank"); } $sql = "SELECT ". "Id, Nickname, Nachname, Vorname ". "FROM ". "benutzerdaten ". "WHERE ". "(Nickname like '".$_REQUEST["name"]."') AND ". "(Kennwort = '".md5 ($_REQUEST["pwd"])."')"; $result = mysql_query ($sql); if (mysql_num_rows ($result) > 0) { $data = mysql_fetch_array ($result); $_SESSION["user_id"] = $data["Id"]; $_SESSION["user_nickname"] = $data["Nickname"]; $_SESSION["user_nachname"] = $data["Nachname"]; $_SESSION["user_vorname"] = $data["Vorname"]; header ("Location: galerie.php"); } else { header ("Location: formular.php?fehler=1"); } ?>
dies ist das checkuser.php
<?php session_start (); if (!isset ($_SESSION["user_id"])) { header ("Location: formular.php"); } ?>
danke für eure hilfe
reikuma27
Beitrag zuletzt geändert: 21.10.2014 18:38:36 von reikuma27 -
Die PHP-Weiterleitung klappt nur, wenn man vorher nichts ausgegeben hat.
Machmal kann das "ausgeben" auch nur eine Leerezeile sein.
Das erschwert deutlich die Suche des Fehlers...
Nur um den Fehler "weiter einzukreisen": Nimmt mal statt der PHP-Weiterleitung eine META-Weiterleitung
echo '<meta HTTP-EQUIV="REFRESH" content="0; url=formular.php">';
klappt es damit? -
hi,
danke die meta weiterleitung hat funktioniert, nur beim logout wird nicht zum formular.php weitergeleitet .
was mir noch aufgefallen ist, wenn ich auslogge und dann im browser zurück gehe, bin ich wieder in der zuletzt aufgerufenen seite. also so wie ich das verstehe oder vermute, wird der cookie nicht gelöscht.
habe ich da recht, ich bin noch sehr sehr neu auf diesen gebiet.
hier mal die scripts, wie ich es eingefügt habe.
login.php
<?php // Session starten session_start (); // Datenbankverbindung aufbauen $connectionid = mysql_connect ("mysql.lima-city.de", "USERxxxx", "passwort"); if (!mysql_select_db ("datenbank", $connectionid)) { die ("Keine Verbindung zur Datenbank"); } $sql = "SELECT ". "Id, Nickname, Nachname, Vorname ". "FROM ". "benutzerdaten ". "WHERE ". "(Nickname like '".$_REQUEST["name"]."') AND ". "(Kennwort = '".md5 ($_REQUEST["pwd"])."')"; $result = mysql_query ($sql); if (mysql_num_rows ($result) > 0) { // Benutzerdaten in ein Array auslesen. $data = mysql_fetch_array ($result); // Sessionvariablen erstellen und registrieren $_SESSION["user_id"] = $data["Id"]; $_SESSION["user_nickname"] = $data["Nickname"]; $_SESSION["user_nachname"] = $data["Nachname"]; $_SESSION["user_vorname"] = $data["Vorname"]; echo '<meta HTTP-EQUIV="REFRESH" content="0; url=index.php">'; //header ("Location: index.php"); } else { echo '<meta HTTP-EQUIV="REFRESH" content="0; url=formular.php">'; //header ("Location: formular.php?fehler=1"); } ?>
logout.php
<?php // Wird ausgeführt um mit der Ausgabe des Headers zu warten. ob_start (); session_start (); session_unset (); session_destroy (); echo '<meta HTTP-EQUIV="REFRESH" content="0; url=formular.php">'; //header ("Location: formular.php"); ob_end_flush (); ?>
checkuser.php
<?php session_start (); if (!isset ($_SESSION["user_id"])) { echo '<meta HTTP-EQUIV="REFRESH" content="0; url=formular.php">'; //header ("Location: formular.php"); } ?>
Beitrag zuletzt geändert: 22.10.2014 13:10:41 von reikuma27 -
Abgesehen davon das ich dir raten würde auf Objekt Orientierte Programmierung umzusteigen, hast du glaube ich zwei Flüchtigkeits Fehler.
<?php // Wird ausgeführt um mit der Ausgabe des Headers zu warten. ob_start (); session_start (); session_unset (); session_destroy (); echo '<meta HTTP-EQUIV="REFRESH" content="0; url=formular.php">'; //header ("Location: formular.php"); ob_end_flush (); ?>
Beim Content selbst einmal fehlt ein " und beim Formular ebenso.
Welche Software benutzt du zum Programmieren?
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage