zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden Login Script verändern

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 07.04.2011, 00:16
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 15.11.2009
Beiträge: 132
andre-ne befindet sich auf einem aufstrebenden Ast
Standard Login Script verändern

Hallo!

Ich habe das folgende Login Script mit MySQL Abfrage im Internet gefunden. Jedoch sind mir bei der urspünglichen Version zu viele einzelne Dateien.

Ich möchte das Script so abändern, das ich nur noch folgende Dateien habe:

login.php (Hier soll das Login Formular sein)
geschuetzt.php (Nach erfolgreichem Anmelden soll auf diese Datei direkt geleitet werden)
error.php (Auf diese Seite soll geleitete werden wenn die Login Daten falsch sind)


Folgendes Script habe ich für die Datenbank abfrage:
PHP-Code:
<?php
session_start
();
?>

<?php
$verbindung 
mysql_connect("localhost""BENUTZNAME" "PASSWORT")
or die(
"Verbindung zur Datenbank konnte nicht hergestellt werden");
mysql_select_db("DATENBANKNAME") or die ("Datenbank konnte nicht ausgewählt werden");

$username $_POST["username"];
$passwort md5($_POST["password"]);

$abfrage "SELECT username, passwort FROM login WHERE username LIKE '$username' LIMIT 1";
$ergebnis mysql_query($abfrage);
$row mysql_fetch_object($ergebnis);

if(
$row->passwort == $passwort)
    {
    
$_SESSION["username"] = $username;
    echo 
"Login erfolgreich. <br> <a href=\"geschuetzt.php\">Geschützer Bereich</a>";
    }
else
    {
    echo 
"Benutzername und/oder Passwort waren falsch. <a href=\"sorry.php\">Login</a>";
    }

?>
Meines denkens nach müsste ich im Prinzip nur die letzten Dinge bei
PHP-Code:
if($row->passwort == $passwort)
    {
    
$_SESSION["username"] = $username;
    echo 
"Login erfolgreich. <br> <a href=\"geschuetzt.php\">Geschützer Bereich</a>";
    }
else
    {
    echo 
"Benutzername und/oder Passwort waren falsch. <a href=\"sorry.php\">Login</a>";
    } 
so abändern das eben auf die Seite geschuetzt.php bzw. error.php geleitet wird ohne erst einen Link zu klicken.


Mein Formular sieht wie folgt aus (ich denke das müsste richtig sein):

HTML-Code:
<form action="login.php" method="post">
Dein Username:<br>
<input type="text" size="24" maxlength="50"
name="username"><br><br>

Dein Passwort:<br>
<input type="password" size="24" maxlength="50"
name="password"><br>

<input type="submit" value="Login">
</form>

Auf der Seite geschuetzt.php wird zudem noch der folgende PHP Code eingebaut für die Session:

PHP-Code:
<?php
session_start
();
?>

<?php
if(!isset($_SESSION["username"]))
   {
   echo 
"Bitte erst <a href=\"login.html\">einloggen</a>";
   exit;
   }
?>
Allerding würde ich hier auch gerne sofort auf die error.php weiterleiten, ohne den hier gezeigten Link erst klicken zu müssen.

Ich hoffe ich habe mich recht verständlich ausgedrückt.
Über Hilfe würde ich mich freuen.

Gruß
André
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 07.04.2011, 10:59
Benutzerbild von mantiz
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 25.02.2007
Beiträge: 2.843
mantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz sein
Standard

Du kannst per header(...) weiterleiten.
In der verlinkten Beschreibung steht ein Beispiel.

// Edit: Ups, zu schnell auf 'Abschicken' geklickt.

Du solltest die Eingaben besser mit http://de3.php.net/manual/de/functio...ape-string.php escapen, um SQL-Injections vorzubeugen, oder direkt PDO und prepared Statements für die DB verwenden.

Geändert von mantiz (07.04.2011 um 11:02 Uhr)
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 07.04.2011, 12:28
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 15.11.2009
Beiträge: 132
andre-ne befindet sich auf einem aufstrebenden Ast
Standard

Oh wei jetzt weiß ich gar nicht mehr weiter.

Das mit dem header() habe ich wie folgt angewand, allerdings habe ich folgendes Problem und zwar springt er beim aufrufen der Seite immer gleich zur Error-Seite.

Ich habe das Script wie folgt verändert (ansonsten keine Änderungen):
PHP-Code:
if($row->passwort == $passwort)
    {
    
$_SESSION["username"] = $username;
    
header ("Location: http://www.domain.de/geschuetzt.php");
    exit;
    }
else
    {
    
header ("Location: http://www.domian.de/sorry.php");
    exit;
    } 
Allerdings mit dem escapen habe ich keine Erfahrung, wie soll ich das am besten anwenden? Aus deinem Link werde ich leider nicht schlau

Ich hab mit Datenbankenabfragen noch keine wirklichen Erfahrungen und mit PHP nur ein paar Grundkenntnisse

Gruß
André
Mit Zitat antworten
  #4 (permalink)  
Alt 07.04.2011, 12:54
Benutzerbild von mantiz
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 25.02.2007
Beiträge: 2.843
mantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz sein
Standard

Was heisst "Er springt zur Error-Seite"? 404 Not found? Oder ein anderer Fehler?

Stimmt der Pfad für die Weiterleitung?

Die Domain muss nicht unbedingt mit angegeben werden,
PHP-Code:
header("Location: geschuetzt.php"); 
würde ausreichen, wenn sich die Datei im gleichen Verzeichnis befindet, wie das Login-Script.

Zum escapen: Im verlinkten Dokument wird doch ein Beispiel gezeigt ...
Mit Zitat antworten
  #5 (permalink)  
Alt 07.04.2011, 13:10
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 15.11.2009
Beiträge: 132
andre-ne befindet sich auf einem aufstrebenden Ast
Standard

Entschuldige ich habe mich flasch ausgedrückt. Keine 404 etc.

Was ich sagen wollte ist, dass wenn ich die Seite login.php aufrufe (enthält das erwähnte Script und das Anmeldeforumlar) wird mir gar nicht das Formular angezeigt, sondern wird sofort der else-Befehl ausgeführt (die Weiterleitung auf die sorry.php/Error-Datei)

Okay das mit dem escapen werde ich mir noch einmal ganz in Ruhe step by step angucken und dann denke ich werde ich es hinbekommen.

P.S. Danke für den Tipp das ich die Domain weg lassen kann. Wenn die Datei in einem anderen Ordner liegt, kann ich dann einfach ORDNER/DATEI.PHP schreiben oder muss ich dann noch etwas beachten?
Mit Zitat antworten
  #6 (permalink)  
Alt 07.04.2011, 14:15
Benutzerbild von mantiz
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 25.02.2007
Beiträge: 2.843
mantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz sein
Standard

Ach so, ja ist klar.

Du solltest natürlich vorher sicherstellen, dass das Formular abgeschickt wurde, ich bin davon ausgegangen, dass Du das ohnehin tust. Macht ja keinen Sinn einen Login zu überprüfen, wenn das Formular zur Eingabe überhaupt erstmal dargestellt wird.

Du kannst z.B. $_SERVER["REQUEST_METHOD"] abfragen, ob es sich bei dem aktuellen Request um einen GET- oder POST-Request handelt.

Bei GET einfach das Formular anzeigen und ende, bei POST Login-Daten prüfen und entsprechend weiterleiten bzw. erneut das Formular mit entsprechender Fehlermeldung anzeigen.

Bei der Weiterleitung kannst Du auch mit relativen Pfadangaben arbeiten, das ist korrekt.
Mit Zitat antworten
  #7 (permalink)  
Alt 07.04.2011, 15:56
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 15.11.2009
Beiträge: 132
andre-ne befindet sich auf einem aufstrebenden Ast
Standard

Also bei mir klappt das ganze irgendwie nicht mit header().
Jetzt bekomme ich gleich beim öffnen der Seite eine Fehlermeldung:

Code:
Cannot modify header information
Bei dem folgenden was du geschrieben hast weiß ich gar nicht wie und wo ich das einfügen soll
Zitat:
Du kannst z.B. $_SERVER["REQUEST_METHOD"] abfragen, ob es sich bei dem aktuellen Request um einen GET- oder POST-Request handelt.

Bei GET einfach das Formular anzeigen und ende, bei POST Login-Daten prüfen und entsprechend weiterleiten bzw. erneut das Formular mit entsprechender Fehlermeldung anzeigen.
Das mit dem escapen versuche ich lieber erst später wenn das mit dem Login funktioniert
Mit Zitat antworten
  #8 (permalink)  
Alt 07.04.2011, 16:37
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 07.04.2005
Ort: Kuchen
Beiträge: 119
Dani@okraina befindet sich auf einem aufstrebenden Ast
Standard

Weil du davor irrgendwo schon eine ausgabe tätigst!
__________________
Gruß
Dani
Mit Zitat antworten
  #9 (permalink)  
Alt 07.04.2011, 16:44
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 15.11.2009
Beiträge: 132
andre-ne befindet sich auf einem aufstrebenden Ast
Standard

Welch ein sinnvoller Eintrag welcher leider falsch ist. Guck dir das Script an, dann siehst du das vorher keine Ausgabe erfolgt
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 07.04.2011, 17:23
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 07.04.2005
Ort: Kuchen
Beiträge: 119
Dani@okraina befindet sich auf einem aufstrebenden Ast
Standard

Ein leerzeichen davor reicht da schon selbst wenn es vor <?php ist schau einfach mal

EDIT: ich bin bei der Arbeit da muss ich mich kurz halten
__________________
Gruß
Dani

Geändert von Dani@okraina (07.04.2011 um 17:25 Uhr)
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PHP Login Script newbie88 Serveradministration und serverseitige Scripte 10 21.05.2011 15:45
Login Script bluub Serveradministration und serverseitige Scripte 4 11.01.2010 19:08
Eingebundenes Script verändern die 2. dephazz CSS 3 18.04.2009 13:54
Eingebundenes Script verändern dephazz CSS 4 15.04.2009 10:19
PHP Login Script Pixel Design Serveradministration und serverseitige Scripte 19 19.01.2007 14:36


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:03 Uhr.