Ich habe ein einfaches Anmeldescript erstellt. Wenn ich jedoch die Seite aktualisiere dann kommt eine Meldung vom Browser aus und meine Daten werden dann noch mal bearbeitet, weil ich das Formular und den Script in der selben Datei habe auch wenn ich es nur "include". Ich habe das Problem gelöst indem ich bei action eine andere Datei angebe in der sich der Script zum bearbeiten befindet und es dann mit header("Location: sowieso") auf die ursprüngliche Datei zurückleite.
Meine Frage ist ob dass so gut und üblich ist oder es einen anderen, besseren Weg gäbe?
Wie mach ich am besten eine Anmeldung per Formular.
Wie mach ich am besten eine Anmeldung per Formular.
Unwissenheit ist ein Segen
-
- Beiträge: 236
- Registriert: Do Feb 10, 2011 6:31 pm
Re: Wie mach ich am besten eine Anmeldung per Formular.
Das geht auch mit nur einer Seite/Datei. Das ganze nennt sich "Affenformular".
Um zu verhindern dass Deine Daten beim "Selbstaufruf" bearbeitet werden, einfach Abfragen für "$_POST[]" einbinden. Und zwar vor der Ausgabe. Die Sicherheit nicht vergessen und alle Eingaben filtern.
Abfrage ob daten schon eingegebenwurden:
So ruft man die eigene Seite per Form auf:
Um zu verhindern dass Deine Daten beim "Selbstaufruf" bearbeitet werden, einfach Abfragen für "$_POST[]" einbinden. Und zwar vor der Ausgabe. Die Sicherheit nicht vergessen und alle Eingaben filtern.
Abfrage ob daten schon eingegebenwurden:
Code: Alles auswählen
if ((isset($_POST['login'])) && ($_POST['username']) && ($_POST['password'])) {...}
So ruft man die eigene Seite per Form auf:
Code: Alles auswählen
<form action="'.$_SERVER['SCRIPT_NAME'].'" method="post">.... </form>
Re: Wie mach ich am besten eine Anmeldung per Formular.
@nouseforname:
das geht auch folgendermaßen auszudrücken:
@Threadstarter:
ggf. kannst du Variablen noch mit übergeben, sodass der Nutzer nicht aufs Formular zurückgeleitet wird, sondern auf die Seite, von der er kommt. Bei mir besteht eine Ortsangabe aus den 3 Parametern "position", "action" und "id". Wenn der Nutzer sich in $position=home , $action=NULL; $id=NULL befindet wird das vom Anmeldeformular dem login-Skript übergeben, was dann entsprechend auf die Seite wieder zurückleitet. (PS: sollte. Tuts aber im Moment leider nicht )
PPS: Je nach Wichtigkeit der Inhalte kannst du über eine Verschlüsselung der Verbindung nachdenken, aber das ist dann nicht mehr direkt deine Frage betreffend.
MfG Naums
Code: Alles auswählen
if ((isset($_POST['login'])) && ($_POST['username']) && ($_POST['password'])) {...}
Code: Alles auswählen
if ((isset($_POST['login'], $_POST['username'], $_POST['password'])) {...}
ggf. kannst du Variablen noch mit übergeben, sodass der Nutzer nicht aufs Formular zurückgeleitet wird, sondern auf die Seite, von der er kommt. Bei mir besteht eine Ortsangabe aus den 3 Parametern "position", "action" und "id". Wenn der Nutzer sich in $position=home , $action=NULL; $id=NULL befindet wird das vom Anmeldeformular dem login-Skript übergeben, was dann entsprechend auf die Seite wieder zurückleitet. (PS: sollte. Tuts aber im Moment leider nicht )
PPS: Je nach Wichtigkeit der Inhalte kannst du über eine Verschlüsselung der Verbindung nachdenken, aber das ist dann nicht mehr direkt deine Frage betreffend.
MfG Naums
.globl truth
truth:
mov r0, #42
mov pc, lr
truth:
mov r0, #42
mov pc, lr
Re: Wie mach ich am besten eine Anmeldung per Formular.
So habe ich das gemeint:
index.php
login.php
Allerdings bekomme ich "Undefined Index" beim ersten Aufruf und mit isset() funktioniert nicht.
index.php
Code: Alles auswählen
<?php
session_start();
if($_SESSION["login"] != true)
{
echo '
<form action="login.php" method="POST">
Name <input type="test" size="20" maxlength="50" name="loginname"/>
Passwort <input type="test" size="20" maxlength="50" name="password"/>
<input type="submit" value="Absenden"/>
</form>';
}
else
echo "Du bist eingelogt";
?>
Code: Alles auswählen
<?php
session_start();
if($_POST["loginname"] == "root" and $_POST["password"] == "root")
{
$_SESSION["login"] = true;
}
else
{
$_SESSION["login"] = false;
}
header("Location: index.php");
?>
Unwissenheit ist ein Segen
Re: Wie mach ich am besten eine Anmeldung per Formular.
Ich empfehle euch gerade bei Formularen mehr mit Empty zu arbeiten
aus if($_SESSION["login"] != true) machst du zb if(empty($_SESSION["login"]))
in der login.php kannst auch den else zweig weglassen...
PS && ist überlicher als and in php
aus if($_SESSION["login"] != true) machst du zb if(empty($_SESSION["login"]))
in der login.php kannst auch den else zweig weglassen...
PS && ist überlicher als and in php
Rechtschreibefehler sind gewollt und dienen der Unterhaltung
Re: Wie mach ich am besten eine Anmeldung per Formular.
Ok so funktionierts auch.
Unwissenheit ist ein Segen