nach login automatisch weiterleiten
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
bau
bleiben
browser
code
dank
einloggen
formular
header
index
jemand
leiten
login
post
profil
punkt
sekunde
url
vergessen
weiterleitung
zahl
-
kann mir jemand helfe
und zwar
ich habe in index.php login eingebaut und will nach einlogin automatisch weiter leiten zum myprofil.php
php
<?php if(isset($_POST['submit']) and $_POST['submit']=='Einloggen') { if(isset($_SESSION['UserID'], $_SESSION['Nickname'])) { ?> <h3>Willkommen <?php echo htmlspecialchars($_SESSION['Nickname']); ?></h3> <p> Sie haben sich erfolgreich eingelogt.<br> <br> <a href="index.php">Zurück zur Startseite</a> </p> <?php }else { ?> <p> Sie konnten nicht eingeloggt werden.<br> Nickname oder Passwort fehlerhaft.<br> Zurück zum <a href="<?php echo $_SERVER['PHP_SELF']; ?>">Login-Formular</a> </p> <?php } }else { ?> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <table> <tr> <td><p>Nickname: </p></td> <td><input type="text" name="Nickname" maxlength="32"></td> </tr> <tr> <td><p>Passwort: </p></td> <td><input type="password" name="Passwort"></td> </tr> <tr> <td><p>eingeloggt bleiben: </p></td> <td><input type="checkbox" name="Autologin" value="1"></td> </tr> <tr> <td><a href=" verifiziere.php">Passwort vergessen</a></td> <td><input type="submit" name="submit" value="Einloggen"></td> </tr> </table> </form> <?php } ?>
danke -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Baue doch einfach eine JavaScrip-Weiterleitung ein:
<script language="javascript"> function Weiterleitung() { location.href='/myprofil.php; } window.setTimeout("Weiterleitung()", 1000); </script>
Beitrag zuletzt geändert: 7.3.2013 15:22:40 von fuhnefreak -
fuhnefreak schrieb:
^^ Schlimmer gehts nimmer.. ;)
Baue doch einfach eine JavaScrip-Weiterleitung ein:
<script language="javascript"> function Weiterleitung() { location.href='/myprofil.php; } window.setTimeout("Weiterleitung()", 1000); </script>
tshaika schrieb:
ich habe in index.php login eingebaut und will nach einlogin automatisch weiter leiten zum myprofil.php
<?php if(isset($_POST['submit']) and $_POST['submit']=='Einloggen') { if(isset($_SESSION['UserID'], $_SESSION['Nickname'])) { header("Location: myprofil.php"); }else { [...]
-
menschle schrieb:
fuhnefreak schrieb:
^^ Schlimmer gehts nimmer.. ;)
Baue doch einfach eine JavaScrip-Weiterleitung ein:
<script language="javascript"> function Weiterleitung() { location.href='/myprofil.php; } window.setTimeout("Weiterleitung()", 1000); </script>
tshaika schrieb:
ich habe in index.php login eingebaut und will nach einlogin automatisch weiter leiten zum myprofil.php
<?php if(isset($_POST['submit']) and $_POST['submit']=='Einloggen') { if(isset($_SESSION['UserID'], $_SESSION['Nickname'])) { header("Location: myprofil.php"); }else { [...]
ich hab jetz so stehen
<?php if(isset($_POST['submit']) and $_POST['submit']=='Einloggen') { if(isset($_SESSION['UserID'], $_SESSION['Nickname'])) { header("Location: profil.php?id='.$row['ID']."); ?> <?php }else { ?> <p> Sie konnten nicht eingeloggt werden.<br> Nickname oder Passwort fehlerhaft.<br> Zurück zum <a href="<?php echo $_SERVER['PHP_SELF']; ?>">Login-Formular</a> </p> <?php } }else { ?>
geht aber nicht??? -
Versuch es mal so:
<?php if(isset($_POST['submit']) and $_POST['submit']=='Einloggen') { if(isset($_SESSION['UserID'], $_SESSION['Nickname'])) { header("Location: profil.php?id=".$row['ID']); } else { ?> <p> Sie konnten nicht eingeloggt werden.<br> Nickname oder Passwort fehlerhaft.<br> Zurück zum <a href="<?php echo $_SERVER['PHP_SELF']; ?>">Login-Formular</a> </p> <?php } } ?>
Dein letzter Teil dürfte überflüssig sein. Außerdem war der header() falsch.
Beitrag zuletzt geändert: 7.3.2013 16:33:52 von tobiworlds -
nenen lezte teil brauch auch also so
<?php if(isset($_POST['submit']) and $_POST['submit']=='Einloggen') { if(isset($_SESSION['UserID'], $_SESSION['Nickname'])) { header("Location: profil.php?id=".$row['ID']); }else { ?> <p> Sie konnten nicht eingeloggt werden.<br> Nickname oder Passwort fehlerhaft.<br> Zurück zum <a href="<?php echo $_SERVER['PHP_SELF']; ?>">Login-Formular</a> </p> <?php } }else { ?> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <table> <tr> <td><p>Nickname: </p></td> <td><input type="text" name="Nickname" maxlength="32"></td> </tr> <tr> <td><p>Passwort: </p></td> <td><input type="password" name="Passwort"></td> </tr> <tr> <td><p>eingeloggt bleiben: </p></td> <td><input type="checkbox" name="Autologin" value="1"></td> </tr> <tr> <td><a href=" verifiziere.php">Passwort vergessen</a></td> <td><input type="submit" name="submit" value="Einloggen"></td> </tr> </table> </form> <?php } ?>
geht trotztem nicht das bleibt immer bei index.php
Beitrag zuletzt geändert: 7.3.2013 16:55:51 von tshaika -
Ich weiß zwar nicht, was menschle mal wieder hat, warscheinlich mag er wohl einfach kein JavaScript . Aber die Methode geht auf jeden Fall, da jeder normale und gängige Browser mitlerweile JavaScript unterstützt
Hier dann der fertige Code:
<?php if(isset($_POST['submit']) and $_POST['submit']=='Einloggen') { if(isset($_SESSION['UserID'], $_SESSION['Nickname'])) { ?> <script language="javascript"> function Weiterleitung() { location.href='/myprofil.php; } window.setTimeout("Weiterleitung()", 3000); </script> <h3>Willkommen <?php echo htmlspecialchars($_SESSION['Nickname']); ?></h3> <p> Sie haben sich erfolgreich eingelogt.<br> <br> <a href="index.php">Zurück zur Startseite</a> </p> <?php }else { ?> <p> Sie konnten nicht eingeloggt werden.<br> Nickname oder Passwort fehlerhaft.<br> Zurück zum <a href="<?php echo $_SERVER['PHP_SELF']; ?>">Login-Formular</a> </p> <?php } }else { ?> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <table> <tr> <td><p>Nickname: </p></td> <td><input type="text" name="Nickname" maxlength="32"></td> </tr> <tr> <td><p>Passwort: </p></td> <td><input type="password" name="Passwort"></td> </tr> <tr> <td><p>eingeloggt bleiben: </p></td> <td><input type="checkbox" name="Autologin" value="1"></td> </tr> <tr> <td><a href=" verifiziere.php">Passwort vergessen</a></td> <td><input type="submit" name="submit" value="Einloggen"></td> </tr> </table> </form> <?php } ?>
Dann wird noch 3 Sekunden die Willkommensmeldung angezeigt und dann wird der User weitergeleitet. -
if(isset($_SESSION['UserID'], $_SESSION['Nickname'])) { header("Location: profil.php?id=".$row['ID']);
Sind die Sessionvariablen $_SESSION['UserID'] und $_SESSION['Nickname'] gesetzt?
Wenn nicht, dann wird eine Weiterleitung nicht durchgeführt.
Beitrag zuletzt geändert: 7.3.2013 17:16:00 von timebandit -
wo prüfst du denn ob die gerade gesendeten daten von "Nickname" und "Passwort" überhaupt stimmen - und wie kommst du dann an "$_SESSION['UserID']" und "$_SESSION['Nickname']" ?...
und wo entsteht die variable $row['ID']?... bist du sicher das die if-bedingung überhaupt irgendwann zutrifft ? vielleicht landet dein script einfach immer im "else"
und bedenke das bei einer header()-weiterleitung NICHTS vorher ausgegeben werden darf !
-
hcms
kannst du mit richtig php schreiben das ich zum richtige user weitergeleitet kann?
oder gibt andere möglichkeit
ich will so wen user nicht eingelogt ist soll loginsystem wen eigeloggt ist soll profil zeigen
Beitrag zuletzt geändert: 7.3.2013 17:34:16 von tshaika -
nun, dir wurden hier ja schon verschiedene vorschläge gemacht wie eine weiterleitung funktioniert - wie gesagt zb mit javascript oder php-header()... ich würde definitiv zu der variante von "tobiworlds" tendieren - und an der einen entscheidenden zeile code ist alles ok denke ich:
header("Location: profil.php?id=".$row['ID']);
...das das bei dir nicht funktioniert liegt wohl eher an dem "drumherum"... denn wenn das der ganze code sein soll den du da gepostet hast kanns ja auch nicht funktionieren - siehe die stichpunkte aus meinem vorherigen beitrag.
du wirst doch ein script haben um Username und Passwort mit der datenbank zu vergleichen - oder etwa nicht ? daraus stammt wohl die variable $row['ID']... aber in deinem geposteten code kann man das nirgends sehen... auch wie die session zustande kommt ist nicht nachvollziehbar. -
fuhnefreak schrieb:
Och, JavaScript mag ich schon, aber schau doch mal, wo wir hier sind:
Ich weiß zwar nicht, was menschle mal wieder hat, warscheinlich mag er wohl einfach kein JavaScript
Richtig, es ist das PHP, MySQL & .htaccess -Forum.
Aber die Methode geht auf jeden Fall, da jeder normale und gängige Browser mitlerweile JavaScript unterstützt
Was ein Browser unterstützt, spielt doch gar keine Rolle.
Wenn ein Anwender JavaScript deaktiviert hat, nützt es ihm rein gar nichts.
Und wozu JavaScript einsetzen, wenn es sich doch mit PHP lösen lässt?
Brauchst nicht antworten - war ne rein rhetorische Frage. ;) -
ach ja ich hab ich denke das ist richtig ist
if(isset($_POST['submit']) AND $_POST['submit']=='Einloggen'){ // Falls der Nickname und das Passwort übereinstimmen.. $sql = "SELECT ID FROM User WHERE Nickname = '".mysql_real_escape_string(trim($_POST['Nickname']))."' AND Passwort = '".md5(trim($_POST['Passwort']))."' "; $result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error()); // wird die ID des Users geholt und der User damit eingeloggt $row = mysql_fetch_assoc($result); // Prüft, ob wirklich genau ein Datensatz gefunden wurde if (mysql_num_rows($result)==1){ doLogin($row['ID'], isset($_POST['Autologin'])); header("Location: myprofil.php?id=".$row['ID']); } else{ ?> <p> Sie konnten nicht eingeloggt werden.<br>\n". Nickname oder Passwort fehlerhaft.<br>\n". Zurück zum <a href=<?php echo $_SERVER['PHP_SELF'];?>">Login-Formular</a> </P> <?php } } else{ ?> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <table> <tr> <td><p>Nickname: </p></td> <td><input type="text" name="Nickname" maxlength="32"></td> </tr> <tr> <td><p>Passwort: </p></td> <td><input type="password" name="Passwort"></td> </tr> <tr> <td><p>eingeloggt bleiben: </p></td> <td><input type="checkbox" name="Autologin" value="1"></td> </tr> <tr> <td><a href=" verifiziere.php">Passwort vergessen</a></td> <td><input type="submit" name="submit" value="Einloggen"></td> </tr> </table> </form> <?php } ?>
-
Ich schreib immer eine Variable $jumpurl:
$jumpurl = "index.php"; echo "<meta http-equiv=\"refresh\" content=\"3;url=$jumpurl\" /> Weiterleitung in 3 Sekunden";
Mit dem Punkt content=\"3;url=:$jumpurl\" gibst du durch die Zahl 3 an, wie lange gewartet werden soll bis du weitergeleitet wirst. Schreibst du die Jumpurl ans ende deines Skriptes und fügst als zahl 0 ein wirst du weitergeleitet, sobald das skript durchgearbeitet wurde. :D -
rainbowsix-roguespear schrieb:
Weiterleitungspausen sind genauso 80´er, wie Intros.
Ich schreib immer eine Variable $jumpurl:
Mit dem Punkt content=\"3;url=:$jumpurl\" gibst du durch die Zahl 3 an, wie lange gewartet werden soll bis du weitergeleitet wirst. Schreibst du die Jumpurl ans ende deines Skriptes und fügst als zahl 0 ein wirst du weitergeleitet, sobald das skript durchgearbeitet wurde. :D$jumpurl = "index.php"; echo "<meta http-equiv=\"refresh\" content=\"3;url=$jumpurl\" /> Weiterleitung in 3 Sekunden";
Und wozu HTML als Weiterleitung? PHP-Lösungen wurden doch schon genannt. -
ich hab ein problem mit weiterleitung am myprofil
und zwar ich ich habe eingloggin in index.php und es leitet weiter mit
weiter nur wenn ich seitenkopf.php einbilde geht nicht mehr und bleibt bei index.php steihen kann mir jemand helhen die grundgerust ist mit html5 geschriebenheader("Location: myprofil.php?id=".$row['ID']);
danke -
tshaika schrieb:
ich hab ein problem mit weiterleitung am myprofil
und zwar ich ich habe eingloggin in index.php und es leitet weiter mit
weiter nur wenn ich seitenkopf.php einbilde geht nicht mehr und bleibt bei index.php steihen kann mir jemand helhen die grundgerust ist mit html5 geschriebenheader("Location: myprofil.php?id=".$row['ID']);
danke
Das hat man dir jetzt wahrscheinlich schon 10mal erzählt, aber nochmal: Wenn du header() zur Weiterleitung benutzt, dann darf bevor du header() verwendest KEINE AUSGABE VON CODE an den Client erfolgen. Das heißt es darf nichtmal ein <div> oder ähnliches benutzt werden. Benutze ERST header() und dann fügst du deinen HTML Code ein. Durch das einbinden von seitenkopf.php hast du wahrscheinlich eine Codeausgabe VOR header() erzeugt. -
ach ja danke geht wieder
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage