Wie mach ich am besten eine Anmeldung per Formular.

Fragen zum Thema HTML, JavaScript, PHP
Antworten
canlot
Beiträge: 393
Registriert: Di Mär 08, 2011 11:01 pm
Wohnort: NRW

Wie mach ich am besten eine Anmeldung per Formular.

Beitrag von canlot » So Apr 29, 2012 3:29 pm

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?
Unwissenheit ist ein Segen

nouseforname
Beiträge: 236
Registriert: Do Feb 10, 2011 6:31 pm

Re: Wie mach ich am besten eine Anmeldung per Formular.

Beitrag von nouseforname » So Apr 29, 2012 4:17 pm

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:

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>

Benutzeravatar
naums
Beiträge: 740
Registriert: Sa Jan 02, 2010 10:40 pm
Kontaktdaten:

Re: Wie mach ich am besten eine Anmeldung per Formular.

Beitrag von naums » Mo Apr 30, 2012 1:33 am

@nouseforname:

Code: Alles auswählen

   if ((isset($_POST['login'])) && ($_POST['username']) && ($_POST['password'])) {...}
das geht auch folgendermaßen auszudrücken:

Code: Alles auswählen

   if ((isset($_POST['login'], $_POST['username'], $_POST['password'])) {...}
@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
.globl truth
truth:
mov r0, #42
mov pc, lr

canlot
Beiträge: 393
Registriert: Di Mär 08, 2011 11:01 pm
Wohnort: NRW

Re: Wie mach ich am besten eine Anmeldung per Formular.

Beitrag von canlot » Mo Apr 30, 2012 1:19 pm

So habe ich das gemeint:
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";
?>
login.php

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");
?>
Allerdings bekomme ich "Undefined Index" beim ersten Aufruf und mit isset() funktioniert nicht.
Unwissenheit ist ein Segen

Dominik
Beiträge: 381
Registriert: Mo Jul 07, 2008 9:39 pm

Re: Wie mach ich am besten eine Anmeldung per Formular.

Beitrag von Dominik » Mo Apr 30, 2012 5:45 pm

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
Rechtschreibefehler sind gewollt und dienen der Unterhaltung

canlot
Beiträge: 393
Registriert: Di Mär 08, 2011 11:01 pm
Wohnort: NRW

Re: Wie mach ich am besten eine Anmeldung per Formular.

Beitrag von canlot » Mo Apr 30, 2012 7:56 pm

Ok so funktionierts auch.
Unwissenheit ist ein Segen

Antworten