Hallo estmal,
ich schreibe zur Zeit an einer Passwortänderungsseite mit Login.
Die User werden in einer user.txt Datei gespeichert.
Nach dem Login möchte ich den im Login-Formular verwendeten Namen weiter verwenden über diesen Code:
Leider kommt bei meinem Login "Login erfolgreich Geschützter Bereich"
und dann klick man auf den Link, aber der Name wird im nächsten Formular nicht weiter verwendet.
Kann man eine sofrotige Weiterleitung nach dem Absenden machen anstatt die Meldung echo 'klick mal auf den link', damit der Name weiter verwendet wird oder geht das ganz einfach nicht.
22.03.2011, 10:22
#
2
FreewareGuide
Moderator
Registriert seit: 31.10.2002
Ort: Oldenburg
Beiträge: 5.432
So ganz verstehe ich noch nicht, was Du hast und was nicht.
Aber ja, Du kannst eine PHP-Seite schreiben, die als Ziel des Formulars angegeben wird, die Formulardaten (Login) entgegen nimmt und auswertet und dann aber kein HTML sondern eine Weiterleitung macht. Das hängt aber alles stark damit zusammen, wie Deine Seiten sonst so aufgebaut sind (CMS oder so).
...bin letztens durch die Aufnahmeprüfung zur Hellseherschule gekracht!
22.03.2011, 10:29
#
3
Gian1307
Threadstarter
Registriert seit: 06.10.2010
Beiträge: 97
+man trägt sich ein
+die daten werden in einer user.txt datei gespeichert
+man geht zum login
+gibt username und passwort ein (login)
+jetzt kommt per echo 'anmeldung erfolgreich usw,' (hier soll ein weiterleitung sein)
+hier ist das formular zur änderung des passwortes (der username vom login sollte hier angezeigt sein anstatt ein leeres eingabe feld
+danach sollte das passwort geändert sein
das meiste hab ich schon geschrieben aber solche kleinigkeiten möchte ich noch ausmärzen wie die weiterleitung und das verwenden des usernamens
nachdem man im login formular auf absenden geklickt hat sollte man sofort(wenn alles richtig eingegeben wurde) auf das andere formular springen
22.03.2011, 11:01
#
4
FreewareGuide
Moderator
Registriert seit: 31.10.2002
Ort: Oldenburg
Beiträge: 5.432
Aber Du arbeitest schon mit Sessions, um Dir zu merken, dass jemand eingeloggt ist? So wie Du es schilderst klingt das noch nach erstem Ausflug in die PHP-Welt.
22.03.2011, 11:03
#
5
Gian1307
Threadstarter
Registriert seit: 06.10.2010
Beiträge: 97
naja ich bin noch ein anfänger
aber zum erstemal ist das nicht
22.03.2011, 13:31
#
6
FreewareGuide
Moderator
Registriert seit: 31.10.2002
Ort: Oldenburg
Beiträge: 5.432
Und wie merkst Du Dir das einloggen? Der Aufruf einer Webseite ist üblicherweise "zustandslos", d.h. Du rufst eine ab und eine andere und die wissen erst einmal nichts voneinander. Wenn Du also ein Formular abschickst mit Login/Passwort, dann ist der Seite, die das Formular auswertet bekannt, dass Du dich eingeloggt hast. Wenn Du darin aber sofort weiterleitest ist diese Info schon wieder weg, Du bist nicht mehr eingeloggt. Darum fragte ich nach Sessions, die sind ein Weg sich das längere Zeit zu merken.
ich habe das mit log gemacht
im ersten formular wird log == 0 auf log == 1 gesetzt wenn passwort und nutzername stimmen und wenn log == 1 ist dann soll die weiterleitung kommen aber bissher kommt nur der link zum geschützten bereich
im zweiten formular das gleiche prinzip außer das log auf 2 gesetzt wird da es schon 1 ist
---------- Doppelpost zusammengeführt ----------
ich stelle einfachmal was ich hab rein
login.html:
if ($userdata[0]==$username and $passwort==trim($userdata[1]))
{
$_SESSION['username'] = $username;
echo "Login war erfolgreich. <a href=\"geheim.php\">Geschützer Bereich</a>"; +++Hier soll die weiterleitung auf geheim hin, also einfach die seite und kein link+++
$log = 1;
}
}
fclose($userdatei);
if ($log==0)
{
echo "Zugriff verweigert <a href=\"login.html\">Zurück</a>";
}
?>
?> <html>
<head>
<title>Passwortänderung</title>
</head>
<body>
<h1 style="color:#556B2F; font-size:50px;" align="center">Passwortänderung</h1>
</br></br></br>
<center>
<form method="post" action="gb2.php" >
<table border="0" width="500" height="150">
<tr>
<td><b>Nutzername:</b></td>
<td><input type="text" name="username" /></td> +++hier hatte ich den code von ganz oden drin damit username gleich angezeigt wird aber das funzte nicht, hoffentlich weißt du da was+++
</tr>
<tr>
<td><b>altes Passwort:</b></td>
<td><input type="password" name="oldpass" /></td>
</tr>
<tr>
<td><b>neues Passwort:</b></td>
<td><input type="password" name="password" /></td>
</tr>
<tr>
<td><b>neues Passwort bestätigen:</b></td>
<td><input type="password" name="passworth" /></td>
</tr>
</table>
</br></br></br>
<input type="submit" value="Absenden" >
</form>
</center>
</body>
</html>
gb.php (bin noch nicht sicher ob es funktioniert da ich erst das andere perfekt machen will aber es zeigt mir in zeile 31 ein fehler an wenn ich es ausprobiere)
?> <html> <head> <title>Passwortänderung</title> </head> <body> <h1 style="color:#556B2F; font-size:50px;" align="center">Passwortänderung</h1> </br></br></br> <center> <form method="post" action="gb2.php" > <table border="0" width="500" height="150"> <tr> <td><b>Nutzername:</b></td> <td><input type="text" name="username" /></td> +++hier hatte ich den code von ganz oden drin damit username gleich angezeigt wird aber das funzte nicht, hoffentlich weißt du da was+++ </tr> <tr> <td><b>altes Passwort:</b></td> <td><input type="password" name="oldpass" /></td> </tr> <tr> <td><b>neues Passwort:</b></td> <td><input type="password" name="password" /></td> </tr> <tr> <td><b>neues Passwort bestätigen:</b></td> <td><input type="password" name="passworth" /></td> </tr> </table> </br></br></br> <input type="submit" value="Absenden" > </form> </center> </body> </html>
Aber ehe du da jetzt groß mit deinem phplogin rumspringst solltest du dir vielleicht gedanken machen, lieber mit .htaccess / .htpasswd zu arbeiten. Dafür eine Profileinstellung für einen User zu erstellen ist ziemlich einfach. Zudem hast du automatisch den Nutzername etc. immer greifbar, auf allen Seiten innerhalb der Domain.
__________________
"Wer kämpft, kann verlieren. Wer nicht kämpft, hat schon verloren." - Bertolt Brecht
25.03.2011, 09:14
#
12
Gian1307
Threadstarter
Registriert seit: 06.10.2010
Beiträge: 97
ich brauch das aber in php
und weißt du warum das gb2.php nicht funktioniert
danke für geheim.php
25.03.2011, 09:19
#
13
.:Philipp:.
Registriert seit: 05.11.2008
Beiträge: 1.826
Du kannst ja in php damit arbeiten musst du aber selber wissen wie du es haben möchtest
Meinst du die gb.php? gb2 finde ich nicht.
25.03.2011, 09:20
#
14
Gian1307
Threadstarter
Registriert seit: 06.10.2010
Beiträge: 97
äääähhhhhhmmmmmmm
ich wollte gerade das script ausprobieren und dann kam das als ich geheim.php öffnen wollte
Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /users/gian1307/www/hftl/geheim.php on line 8
und das als ich mich einloggen wolte
Parse error: syntax error, unexpected '<' in /users/gian1307/www/hftl/login.php on line 17
?> <html> <head> <title>Passwortänderung</title> </head> <body> <h1 style="color:#556B2F; font-size:50px;" align="center">Passwortänderung</h1> </br></br></br> <center> <form method="post" action="gb2.php" > <table border="0" width="500" height="150"> <tr> <td><b>Nutzername:</b></td> <td><input type="text" name="username" /></td> +++hier hatte ich den code von ganz oden drin damit username gleich angezeigt wird aber das funzte nicht, hoffentlich weißt du da was+++ </tr> <tr> <td><b>altes Passwort:</b></td> <td><input type="password" name="oldpass" /></td> </tr> <tr> <td><b>neues Passwort:</b></td> <td><input type="password" name="password" /></td> </tr> <tr> <td><b>neues Passwort bestätigen:</b></td> <td><input type="password" name="passworth" /></td> </tr> </table> </br></br></br> <input type="submit" value="Absenden" > </form> </center> </body> </html>
25.03.2011, 09:37
#
18
Gian1307
Threadstarter
Registriert seit: 06.10.2010
Beiträge: 97
mmmh
also in login.php muss ich doch statt dem echo
<meta http-equiv="refresh" content="3; URL=/login.php" >
einsetzten
25.03.2011, 09:42
#
19
.:Philipp:.
Registriert seit: 05.11.2008
Beiträge: 1.826
Das echo muss auch weiterhin dort stehen. Irgendwie muss das Script ja HTML ausgeben. Die weiterleitung benötigt den header (von HTML). Desshalb musst du das ganze HTML Gerüst ausgeben.
"Wer kämpft, kann verlieren. Wer nicht kämpft, hat schon verloren." - Bertolt Brecht
25.03.2011, 09:44
#
20
FreewareGuide
Moderator
Registriert seit: 31.10.2002
Ort: Oldenburg
Beiträge: 5.432
Wobei ich noch einwerfen möchte, dass ich einen Header-Redirect (siehe oben) einem META-Redirekt gegenüber bevorzugen würde, weil schneller und zuverlässiger.