[PHP] Login auf gleicher Seite reload

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Daddy Wowa, 17. Februar 2011 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 17. Februar 2011
    Login auf gleicher Seite reload

    Moin,

    ich habe danach schon länger gesucht, gegooglet und rumprobiert. Vielleicht fehlt mir auch einfach nur das richtige stichwort zum googlen. Nun hoffe ich, ihr könnt mir in der hinsicht irgendwie helfen.

    Wenn ich nun beispielweise logindaten von einer index.php mit POST an eine login.php sende, wird die login.php geöffnet. Wie kann ich es nun schaffen, dass ich das echo aus der login.php im ursprünglichen container ausgegeben bekomme. Also dass statt des lloginformulars erscheint: "herzlich willkommen blabla"..."logout" oder so.

    hoffe ihr könnte mir helfen.
    WOWA
     
  2. 17. Februar 2011
    AW: Login auf gleicher Seite reload

    Das wird dir per POST wohl weniger gelingen, dafür müsstest du mit JavaScript/AJAX arbeiten. Du fängst das Klickevent deines Submit Buttons ab, schickst Username und Passwort via AJAX an dein PHP Script und PHP gibt dir dann aus, ob du eingeloggt wurdest oder nicht.

    Falls dir das alles nicht viel sagt solltest du dich erstmal mit AJAX beschäftigen.

    greez
     
  3. 17. Februar 2011
    AW: Login auf gleicher Seite reload

    Deine Stichwörter sind "Javascript" und "Ajax".

    Mit Ajax ist es dir möglich eine Abfrage im Hintergrund an den Server zu senden und das Ergebnis in der Aktuellen Seite zu Verarbeiten. (Ohne Neuladen der Seite)
     
  4. 17. Februar 2011
    AW: Login auf gleicher Seite reload

    AAAAAH,

    danke euch beiden. Da hätte ich mich ja totsuchen und -probieren können.

    Wäre es denn auch rein theoretisch möglich das über eine Session zu lösen? dass ich dann quasi im login einfach nur bestimmte variablen setze und die index, je nach variablenwert, einfach nur unterschiedliche dinge ausgibt. Oder wäre das allein aus Sicherheitstechnischer sicht nicht zu raten?
    (nur mal aus Interesse)

    Danke nochmal
    wowa
     
  5. 17. Februar 2011
    AW: Login auf gleicher Seite reload

    Es ist möglich und auch die gängige Praxis. Sieh dir beispielsweise diese Forensoftware an:

    Beliebige Seite (z.B. index.php) mit Loginfeld rechts oben.
    User gibt seine Logindaten sein -> POST an login.php
    -> Login erfolgreich -> Weiterleitung(sseite) an Ursprungsseite -> Willkommensfeld rechts oben
    oder
    -> Login fehlgeschlagen -> Fehler & Neues Loginfeld anzeigen

    Das wird mit Sessions gemacht und man braucht kein Javascript oä dafür. Elementare Teile einer Webseite - wie Login und Registration - sollten IMMER auch ohne Javascript funktionieren.
     
  6. 18. Februar 2011
    AW: Login auf gleicher Seite reload

    Du musst dir als erstes klar machen, dass eine Webseite statisch ist wenn du sie im Browser angezeigt bekommst.
    Diese Einschränkung wird im Web 2.0 gerne mit JavaScript (Stichwort: AJAX) umgangen, das hatten wir ja nun schon.

    Alle herkömmlichen Technologien die ohne JavaScript laufen müssen schon vom Design her ein neues Aufrufen der Seite erforderlich machen.

    Was du selbstverständlich machen könntest, wäre folgendes:
    Deine index.php überprüft ab ein bestimmtes Formular abgesendet wurde (Tipp: Name und Wert des Submit-Buttons). Falls ja veranlasst du den Login und gibst anschließend wie gewohnt deine Seite aus.

    Der Login passiert so ganz ohne JavaScript, aber mit einem neuladen der Seite.
    Du wirst allerdings nicht auf eine login.php o.Ä. weitergeleitet, sondern kommst zurück.
     
  7. 19. Februar 2011
    AW: Login auf gleicher Seite reload

    Setze einfach im Loginformular einen link der aktuellen seite

    z.B.
    PHP:
     <input type="hidden"  name="letzte_seite" value="<?php  echo  $_SERVER [ 'REQUEST_URI' ];  ?>
    Im log in script wird der Benutzer dann, im Falle eines erfolgreichen Logins, an die letztere seite weitergeleitet. so habe ich es zumindestens gemacht.

    Wie oben beietrs erwähnt worden sit, sollte das Login ohne javascript aufgebaut werden.

    MfG
    atkaz
     
  8. 19. Februar 2011
    AW: Login auf gleicher Seite reload

    Ohja mach bloß XSS Tor und Tür auf
     
  9. 20. Februar 2011
    AW: Login auf gleicher Seite reload

    Alternative:
    $_SERVER['HTTP_REFERER'] in Verbindung mit strip_tags() und htmlspecialchars()!?
     
  10. 20. Februar 2011
    AW: Login auf gleicher Seite reload

    PHP:
     <input type="hidden"  name="letzte_seite" value="<?php  echo  htmlentities ( $_SERVER [ 'REQUEST_URI' ]);  ?>"
     
  11. 21. Februar 2011
    AW: Login auf gleicher Seite reload

    Ok das sind schon mal viele hilfreiche informationen. Dann denke ich, werde ich mich etwas genauer mit sessions befassen.

    Dazu kommt nämlich, dass eine Tabelle aus einer Datenbank ausgegeben werden soll, mit Suche, etc.
    Da könnte ich doch ähnlich vorgehen und die (z.B.) suche.php mehrere Variablen mit Strings füllen und dann in der index.php die SQL Anweisungen mit diesen Variablen ausführen?

    Ich hoffe man versteht, was ich meine.
    --------------

    würde mit Sessions auch soetwas funktionieren?
    PHP:
    <? php
    session_start
    ();
    $HTTP_SESSION_VARS [ "variable" ]= "hallo" ;
    ?>
    <html ....>
    .
    .
    <?php  echo  $HTTP_SESSION_VARS [ "variable" ];  ?>
    .
    .
    </html>

    würde das echo ein "hallo" ausgeben?
     
  12. 21. Februar 2011
    AW: Login auf gleicher Seite reload

    Würde es! Aber schau dir mal die PHP Doku an, gibt ne kleine Neuerung. Benutzt $_SESSION

    PHP:
    <? php
    // Sie sollten session_register() nicht verwenden
    $barney  "A big purple dinosaur." ;
    session_register ( "barney" );

    // Ab PHP 4.1.0 ist die Verwendung von $_SESSION vorzuziehen
    $_SESSION [ "zim" ] =  "An invader from another planet." ;

    // Die alte Methode war, $HTTP_SESSION_VARS zu verwenden
    $HTTP_SESSION_VARS [ "spongebob" ] =  "He's got square pants." ;
    ?>

     
  13. 21. Februar 2011
    AW: Login auf gleicher Seite reload

    Ja.

    Um sowas zu testen, kannst du dir XAMPP installieren und PHP-Skripte lokal ausführen.

    @hacker5: Das stimmt, allerdings hat $HTTP_SESSION_VARS, dadurch, dass es nicht superglobal ist, mMn auch einige Vorteile, wobei ich bisher eigtl immer $_SESSION benutzt habe
     
  14. 21. Februar 2011
    AW: Login auf gleicher Seite reload

    Was hat es denn genau für Vorteile? Habe noch nie mit $HTTP_SESSION_VARS gearbeitet und das sind jetzt schon gute 7 Jahre die ich mit PHP arbeite. Und bisher bin ich noch nie in eine Situation gekommen wo ich dachte, wäre die Session jetzt doch nicht superglobal.
     
  15. 21. Februar 2011
    AW: Login auf gleicher Seite reload

    Ok die Vor- und Nachteile werde ich mit der Zeit schon mitbekommen. Mir ist nun erst mal wichtig das zu realisieren, was ich mir vorstelle.

    Habe bisher noch nie Scripte geschrieben und da ist die Herangehensweise ja doch anders als bei Programmen. Naja aller Anfang ist schwer, wenn ich mich mit den typischen Methoden vertraut gemacht hab sollte es hoffentlich leichter werden :] .
     
  16. 21. Februar 2011
    AW: Login auf gleicher Seite reload

    vorteil: keiner
    nachteil: nicht superglobal, in der php.ini abschaltbar, deprecated (siehe hier)
     
  17. 21. Februar 2011
    AW: Login auf gleicher Seite reload

    bedeutet superglobal, dass die Variable über das Scriptende hinausreicht? Also auch anderen (Script-) Dateien zur Verfügung steht?
     
  18. 21. Februar 2011
    AW: Login auf gleicher Seite reload

    nein, superglobal bedeutet, dass die variable in allen funktionen zur verfügung steht ohne explizit importiert zu werden.

    näheres dazu: PHP: Variable scope - Manual
     
  19. 21. Februar 2011
    AW: Login auf gleicher Seite reload

    Ja ich weiß ^^ Ich wollte wissen was er dadran als Vorteil sieht alleine, weil er danach selber gesagt hat, dass er es noch nie benutzt hat.
     
  20. 21. Februar 2011
    AW: Login auf gleicher Seite reload

    Hatte mich verlesen und dann falsch geschlussfolgert
     
  21. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.