Passworteingabe in Html/php ?
-
Hallo einen schönen guten Tag,
Ich bin in Html und php Neuling und versuche eine eigene Homepage zu programmieren bei der Ich aber eine
Passworteingabe vorschalten möchte. Die Gestaltung in Html ist einfach/machbar und das hochladen über
filezilla habe Ich auch direkt hinbekommen aber der Login funktioniert nicht so richtig.Ich hatte gegoogelt und auf dieser Seite drei kurze Skripte gefunden
http://www.informationsarchiv.net/topics/1866/
Ich zeige euch auch den Code direkt an:
Ich habe den Quelltext leicht abgeändert, so das bei richtigem login auf eine entsprechende Startseite verlinkt/geleitet werden soll:Die index.html
<html> <head> <title>login</title> </head> <body bgcolor="3A426C"> <img src="images/img02.png" align="right"width="500" height="600" alt="" /> <form action="inhalt.php" method="post"> <table border=0> <tr> <td>Benutzer:</td> <td><input type="text" name="user"></td> </tr> <tr> <td>Passwort:</td> <td><input type="pwd" name="pass"></td> </tr> <tr> <td>&</td> <td><input type="submit" name="senden" value=Login></td> </tr> </table> </form> </body> </html>
Die Datei pwd.php
<?php $benutzer = "test"; $passwort = "test"; ?>
Die Datei inhalt.php
<html> <head> <title>PSW</title> </head> <body> <?php include("pwd.php"); if (($benutzer == "$user") and ($passwort == "$pass")) { echo"<li><a href=\"startmodul99901.html\">"; } //Zeile 10 Compilerprobleme wegen doppelter Quotes -> Loesung mit Backslash \" ausschalten ? else { echo "Falsche Zugangsdaten."; } ?> </body> </html>
Das Problem nachdem Hochladen kommt der Login ganz normal, aber man kann sich nicht einloggen
Es kommt immer die Fehlermeldung "Falsche Zugangsdaten"
Mein Anbieter ist web.de , Ich denke das die php unterstützen sonst käme ja auch diese Meldung nicht.
Das Passwort und der Login sind soweit Ich das sehe test?
aber der Code tut nicht was er soll ? Auch nicht bevor Ich es verändert hatte?
Kann mir jemand helfen?
Muss man die Dateien in einen bestimmten Ordner reinlegen so wie z.B. die Bilder in den Bilderordner ?
Ich weiss auch garnicht wie es z.B. um die Sicherheit dieser Programmierung steht. Ich habe über rechtsklick mal versucht mit den Quelltext von der Datei inhalt.php anzuschauen ging aber nicht, der server zeigt nichts an, was erst mal dafür spricht, dass das Beispiel sicher ist - ?
-
musste den Beitrag kurz korrigieren
Die Adresse der Seite ist www.salus457.de,
wenn jemand es testen will.
-
$user und $pass existieren doch gar nicht. Schau dir mal $_POST an.
-
Die Bedeutung von Post ist Daten zu übertragen, sorry muss Ich alles erst nachlesen. In der Datei pwd.php wird doch
zugewiesen ? Müssen $user und $pass noch deklariert werden ?
Was bedeutet das Dollarzeichen ? Variablendeklaration ?
Wieso wird der Teil pwd.php inkludiert ? aus Sicherheitsgründen ?In der index.html sind user und pass doch genannt/zugewiesen ?
In der Datei inhalt.php werden Sie mit Benutzer und Passwort verknüpft ?
Falsch ist ja nur ne Abfrage.
-
Kann mir jemand einige Hinweise geben welche Anweisungen fehlen oder Ich ändern soll ?
-
roflo schrieb:
$user und $pass existieren doch gar nicht. Schau dir mal $_POST an.
Das.
Früher wurden für diese Argumente einfach von php aus Variablen angelegt, das war aber sicherheitstechnisch unschön.
Daher sind sie nur noch in$_POST["user"]
und$_REQUEST["user"]
. (Es gibt auch noch die Methode GET, die liegen dann in$_GET
und auch in$_REQUEST
. Es gibt noch mehr Arrays mit Systeminformationen in php...)Und das $ zeigt an, dass es sich um Variablen handelt... aber wenn du das nichtmal weißt solltes du dir vielleicht mal ein gutes Buch zu PHP zu Gemüte führen
-
Danke für den Hinweis, mach Ich
und hab's scheinbar gelöst, allerdings zeigt er mir jetzt eine leere Seite an
hab $user und _POST['user'])<?php include("pwd.php"); if (($benutzer == ($_POST['user'])) and ($passwort == ($_POST['pass']))) { echo"<li><a href=\"startmodul99901.html\">"; }
ersetzt
Weiss nicht ob Ich mit echo so verlinken kann.
Ich bekomme jetzt eine leere Seite angezeigt ?
-
Gut gemeinter Rat, lies ein Buch oder mach dich irgendwo im Netz über Grundlagen schlau...
EDIT:
<?php include("pwd.php"); if($benutzer === $_POST['user'] && $passwort === $_POST['pass']){ header("Location: http://www.salus457.de/startmodul99901.html"); die(); } else { echo "Falsche Zugangsdaten."; }
Hier gibts ein paar Grundlagen
snwFlake
-
Danke
-
Das Problem dabei ist, dass bei dieser Methode jeder Heinz 'startmodul99901.html' direkt im Browser aufrufen kann, ohne eingeloggt zu sein.
-
Das ist nicht das einzige Problem...ich bin lediglich auf das akuteste eingegangen...und das war Syntax.
Ohne sich grundlegend mit dem Thema auseinander zu setzen wird er auch nicht weit kommen.
-
das heißt den Quelltext besser in der inhalt.php einbetten ? siehe:
include("pwd.php"); if (($benutzer == ($_POST['user'])) and ($passwort == ($_POST['pass']))) { echo" <html> <head> <meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" /> <title>Salus</title> </head> <body>
So hatte Ich es sowieso gemacht, da die Anleitung das Fallbeispiel von dem Ich den Quelltext hatte es so vorgegeben hatte.
(Ich hab quasi die Idee für die mir der nette Kollege snwFlake die Anleitung hat zukommen lassen noch nicht umgesetzt.)
Ich hatte allerdings mit der genau dieser Vorahnung die Bezeichnung für starmodul99901.html bewusst gewählt. Das heißt php zeigt den link ja nicht an. Der Quelltext lässt sich mit rechtsklick nicht auslesen und auf startmodul99901 muss man doch erst mal kommen? Oder liege Ich falsch ?
-
Das ist nicht das einzige Problem...ich bin lediglich auf das akuteste eingegangen...und das war Syntax.
Ohne sich grundlegend mit dem Thema auseinander zu setzen wird er auch nicht weit kommen.
Das stimmt vollkommen, was mir bis jetzt geholfen hat ist, - dass Ich andere Sprachen flüssig behersche. - Ich werde php einige Zeit über Bücher, Tutorials z.B den angegeben Link erlernen !
-
PHP läuft auf server side, ohne ftp o.ä. server connection wirst du nicht in der Lage sein PHP-Scripts auszulesen.
PHP zeigt gar nichts an...das macht HTML. Allerdings auch nicht so wie du es versucht hast.
echo'<li><a href="/startmodul99901.html">redirect me</a>';
Damit bekommst du einen klickbaren Link als List formatiert.
-
Ja , das war ein Denkfehler ist !Für den Link existiert kein Auslöser
-
Wenn man auf die die Datei zugreifen kann, wird das früher oder später auch jemand tun. Schau dir mal sessions an.
-
ok, die Version ist nicht wirklich sicher, habs glaube Ich kapiert.
-
$_SESSION? Ist das Tamiflu? Die Qualität im Forum war auch schon höher...
-
wollknäul schrieb:
Die Qualität im Forum war auch schon höher...
Durch unregistrierte Trolle ist sie halt leider gesunken...
-
von dem hier verlinkten php-einfach tutorial kann ich nur abraten, es ist grauenhaft veraltet.
Gute Tutorials sind zum Beispiel http://www.peterkropff.de/site/php/php.htm (für anfänger), http://php-de.github.io/ (etwas mehr erfahrung), http://php.net/manual/de/tutorial.firstpage.php (die offizielle Doku)Alles 3 wirklich sehr gute Basis für php, php-einfach ist vielleicht einfach, dafür aber auch einfach unbrauchbar