kostenloser Webspace werbefrei: lima-city


Login Script mit Session

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    mrmuggel

    mrmuggel hat kostenlosen Webspace.

    --------------------------------------------------------------------------------

    Hallo Leute,

    Ich hab folgendes Problem:

    Zitat:
    Ich möchte ein Login Script erstellen, in beim Lógin die Funktion session_register eingesetzt wird. Allerdings bin Ich beim Gebiet Sessions + Cookies nicht so weit entwickelt XD Jedenfalls habe Ich mir da schon was überlegt. Nur leider funktioniert das irgendwie nicht

    ________________________________________
    Hier kommt der Login (php) Code:
    ________________________________________

    PHP-Code:
    ------------------------------------------------------------------------
    <?php session_start(); include 'sessionhelpers.inc.php'; ?>
    <?php if (isset($_POST['login'])) { $userid=check_user($_POST['username'], $_POST['userpass']);
    if ($userid!=false) login($userid); else echo 'Entweder war dein Username oder
    dein Passwort nicht richtig !';
    } if (!logged_in()) echo '
    <form method="post" action="login.php">

    <table align="center" border="0" width="400" height="45">
    <tr>
    <td class="green" width="170" height="25"><b><font size="2">Benutzername:</font></b></td>
    <td class="dunkel" height="25" width="204">
    <b>
    <input name="username" type="text" size="20" style="width: 202; height: 23">
    </b></td>
    </tr>
    <tr>
    <td class="green" width="170" height="25"><b><font size="2">Passwort:</font></b></td>
    <td class="dunkel" width="204" height="25"><input name="userpass" type="password" id="userpass0" size="20" style="width: 202; height: 23"></td>
    </tr>
    <tr>
    <td width="178" height="18"></td>
    <td width="208" height="18"></td>
    </tr>
    <tr>
    <td class="green" width="170" height="1">
    <p align="center"><b>[<a href="forgotpass.php">Passwort
    vergessen?</a>]</b></p>
    </td>
    <td class="green" width="200" height="1">
    <p align="center"><b><input name="login" type="submit" id="login0" value="Einloggen">
    </b>
    </p>
    </td>
    </tr>
    </table>
    </form>
    '; else echo '
    <?php
    $mitgliedsdaten = array($userid, $username);
    session_start();
    session_register('mitgliedsdaten');
    $datum1 = date("y.m.d");
    $sql1 = "UPDATE users SET Lastlogin='$datum1', Login='1' WHERE ID='$userid'";
    $result1 = mysql_query("$sql1", $dbcnx);

    Du hast dich erfolgreich eingeloggt $username'; echo ' '; ?>

    --------------------------------------------------------------------------
    In der Datei sessionhelpers.inc.php stehen nur die Befehle wie logout(), login() usw.
    Falls ihr die Datei auch braucht bitte melden.
    Ansonsten kann Ich nur sagen :Hilfe
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Also, ich bin selbst noch nicht so Erfahren in der Programmierung in PHP, aber mir fallen zwei Dinge auf.


    1.

    Bei erfolgreichem Login rufst du ein zweites Mal session_start() auf, nachdem du das gleich zu Beginn des Skripts getan hast. Ich verstehe auch nicht so recht, warum du zwei separate Skript Bereiche verwendest.


    2.

    ... else echo '<?php ...

    Das dürfte ziemlicher Humbug sein. Du brauchst den Teil des PHP Skripts, denn du bedingt ausführen lassen willst, nicht per echo() auszugeben.

    Versuch es mal damit:

    ...

    else {
    $mitgliedsdaten = array($userid, $username);
    session_register('mitgliedsdaten');
    $datum1 = date("y.m.d", $Var);
    $sql1 = "UPDATE users SET Lastlogin='$datum1', Login='1' WHERE ID='$userid'";
    $result1 = mysql_query("$sql1", $dbcnx);

    echo "Du hast dich erfolgreich eingeloggt $username";
    echo ' ';
    }
    ?>

    Ist sicher auch noch nicht ausgereift, weil z.B. noch eine Datenbank Fehlerausgabe fehlt.
  4. <?php session_start(); include 'sessionhelpers.inc.php'; ?>
    <?php if (isset($_POST['login'])) { $userid=check_user($_POST['username'], $_POST['userpass']);
    if ($userid!=false) login($userid); else echo 'Entweder war dein Username oder
    dein Passwort nicht richtig !';
    } if (!logged_in()) echo '
    <form method="post" action="login.php">
    
    <table align="center" border="0" width="400" height="45">
    <tr>
    <td class="green" width="170" height="25"><b><font size="2">Benutzername:</font></b></td>
    <td class="dunkel" height="25" width="204">
    <b>
    <input name="username" type="text" size="20" style="width: 202; height: 23">
    </b></td>
    </tr>
    <tr>
    <td class="green" width="170" height="25"><b><font size="2">Passwort:</font></b></td>
    <td class="dunkel" width="204" height="25"><input name="userpass" type="password" id="userpass0" size="20" style="width: 202; height: 23"></td>
    </tr>
    <tr>
    <td width="178" height="18"></td>
    <td width="208" height="18"></td>
    </tr>
    <tr>
    <td class="green" width="170" height="1">
    <p align="center"><b>[<a href="forgotpass.php">Passwort
    vergessen?</a>]</b></p>
    </td>
    <td class="green" width="200" height="1">
    <p align="center"><b><input name="login" type="submit" id="login0" value="Einloggen">
    </b>
    </p>
    </td>
    </tr>
    </table>
    </form>
    '; else echo '
    <?php
    $mitgliedsdaten = array($userid, $username);
    session_start();
    session_register('mitgliedsdaten');
    $datum1 = date("y.m.d" $Var;
    $sql1 = "UPDATE users SET Lastlogin='$datum1', Login='1' WHERE ID='$userid'";
    $result1 = mysql_query("$sql1", $dbcnx);
    
    Du hast dich erfolgreich eingeloggt $username'; echo ' '; ?>


    Hier sieht man gleich dass etwas nicht stimmen kann ;) All das rote ist ein string xD

    Ich empfehle dir einen php-editor, dort merkt man solche fehler sofort ;)

    <?php if (isset($_POST['login'])) { $userid=check_user($_POST['username'], $_POST['userpass']); //...
    }
    ?>


    Da musst du dann noch schauen ob niemand ein leeres formular gesendet hat. Entweder gleich in der funktion check_user oder du machst es halt so:

    <?php if (isset($_POST['login']) AND !empty($_POST['username']) AND !empty($_POST['userpass'])) { $userid=check_user($_POST['username'], $_POST['userpass']); //...
    }
    ?>
  5. r********r

    Hallo

    session_register(); ist ab PHP Version 4.1.0 nicht mehr nötig. Du kannst $_SESSION benutzen;

    $blub = "I don't know anything.";
    $_SESSION["some_stupid_text"] = $blub;

    :biggrin:

    Viele Grüße,
    Andy
  6. Autor dieses Themas

    mrmuggel

    mrmuggel hat kostenlosen Webspace.

    Irgendwie will das nicht funktionieren :slant:

    Ich hab alles probiert.
    Könnte mir vll. jemand der Zeit und Lust hat zu Helfen mir so ein Script machen muss nich viel sein nur dass Ich nach dem Login Username und Passwort abfragen kann. Am besten mit MySQL :angel:

    Danke im Vorraus schon mal,...

    Ich bin auch gerne bereit ein Design oder sowas in der Art für den User zumachen der mir das codet XD
  7. s***h


    Irgendwie will das nicht funktionieren :slant:

    Ich hab alles probiert.
    Könnte mir vll. jemand der Zeit und Lust hat zu Helfen mir so ein Script machen muss nich viel sein nur dass Ich nach dem Login Username und Passwort abfragen kann. Am besten mit MySQL :angel:

    Danke im Vorraus schon mal,...

    Ich bin auch gerne bereit ein Design oder sowas in der Art für den User zumachen der mir das codet XD


    Du könntest auch ein schon bestehendes Script verwenden.
    Ein solches gibt es z.B hier:
    http://basti2web.de/infusions/pro_download_panel/download.php?catid=5
    Du darfst nur den Copyright-Link nicht entfernen.
  8. Autor dieses Themas

    mrmuggel

    mrmuggel hat kostenlosen Webspace.

    Ich finde sowas nicht wirklich gut :biggrin:

    Aber zur Not würde Ich es nehmen, Ich steh ahlt bissi unter Zeit Druck wegen dem doofen Login Script get meine ganze Page nicht weiter :slant: Deswegen suche Ich dringends Hilfe

    Trotzdem werde Ich mir das Script mal anschauen, thx jedenfalls
  9. Autor dieses Themas

    mrmuggel

    mrmuggel hat kostenlosen Webspace.

    So,...
    Ich habe jetzt doch noch was geschrieben:
    Mit den beiden Dateien wollte Ich Daten die über ein Formular übermittelt werden in eine Session und Cookies speichern. Leider funktioiert dass nicht ?
    Wisst ihr wieso ???

    Danke im Vorraus :)
    ______________________
    Datei: form.php //Formular zum Abschicken
    <form action="test.php" method="post">
      <b>Dein Username: </b><input type="text" size="17" name="username">
      <br>
      <b>Dein Passwort: </b><input type="text" size="17" name="passwort">
      <br>
      <center>
      <input type="submit" value="OK">
      </center>
      </form>


    ______________________
    Date: test.php //Auswertung und Speicherung der Sessions
    <?php
    
    //Session starten
    session_start();
    
    
    //Username aus dem Formular abrufen + als Session, Cookie speichern
    $username = $_POST["username"];
    $_SESSION["username"] = $username;
    setcookie("username","$username",time()+(3600*24));
    
    
    //Passwort aus dem Formular abrufen + als Session, Cookie speichern
    $passwort = $_POST["passwort"];
    $_SESSION["passwort"] = $passwort;
    setcookie("passwort","$passwort",time()+(3600*24));
    
    
    //Usernamen anzeigen
    echo '<b>Dein Username: <br></b>';
    echo  $_SESSION["username"]; 
    echo '<?php $username1 ?> <?php $_COOKIE["username"]; ?>';
    echo '<br>';
    
    
    //Passwort anzeigen
    echo '<b>Dein Passwort: <br></b>';
    echo  $_SESSION["passwort"]; 
    echo '<?php $passwort1 ?> <?php $_COOKIE["passwort"]; ?>';
    
    
    //Username + Passwort als Cookie Variable speichern
    $passwort1 = $_COOKIE["passwort"];
    $username1 = $_COOKIE["username"];
    
    
    ?>


    Es wird keinerlei Fehlermeldung angezeigt.
    Beim 1. Mal wenn Ich auf die SEite kommt mit den eingebenen Daten werden sie angezeigt, allerdings nur 1x wie es bei Post-Daten üblich ist. Nun will Ich mit dem Script diese Post-Daten aber speichern und abrufen !
    BItte helft mir ;)

  10. Also du machst einen murks mit den strings

    <?php
    Usernamen anzeigen 
    echo '<b>Dein Username: <br></b>'; 
    echo  $_SESSION["username"];  
    echo '<?php $username1 ?> <?php $_COOKIE["username"]; ?>'; 
    echo '<br>';
    ?>


    Sowas ist ziemlich humbug. während du im php bist startest du nochmals php

    wenn du eine variable mit text ausgeben will, dann muss man aus dem string raus.

    Konkret und sauber:

    <?php
    Usernamen anzeigen 
    echo '<b>Dein Username: <br></b>'; 
    echo  $_SESSION["username"];  
    echo 'username' . $_COOKIE["username"]; 
    echo '<br>';
    ?>


    Der punkt verbindet alles zu einem string, der nachher ausgegeben wird. was du mit $username1 bezweckst weiss ich nicht, diese variable wierd niergends gesetzt (hab ichs übersehen). Es geht zwar auch wenn man variabeln einfach im string angiebt, aber das ist nicht sauber und funzt meinens wissens nach nur in doubblequote anführungszeichen.

    schau mal da nach: www.tut.php-q.net

    da mal das kapitel strings durchlesen ;). Wie gesagt bei dir ists murks ;)

    Beitrag geändert: 14.7.2007 20:10:53 von infanteria
  11. Autor dieses Themas

    mrmuggel

    mrmuggel hat kostenlosen Webspace.

    Okay viel Dank, ich werds gleich durchlesen udn ausprobieren.
    Hoffen dass es nun funzt...

    EDIT:

    Es funzt nicht, ich möchte nur dass das was Ich im Formular eingebe als Cookie oder Session gespeichert wird und Ich es dann abrufen kann :P

    Beitrag geändert: 14.7.2007 20:23:43 von mrmuggel
  12. Hallo,

    also das folgende Script funktioniert bei mir. Es ist eine leichte
    Abwandlung von dem was du gecoded hattest. Username und Passwort werden
    für die Session und auch als Cookie gespeichert, ausgelesen und angezeigt.
    Ich hoffe das ist nun endlich das was du willst.

    <?php
    
    //Session starten
    session_start();
    
    
    //Username aus dem Formular abrufen + als Session, Cookie speichern
    $username = $_POST["username"];
    $_SESSION["username"] = $username;
    setcookie("username","$username",time()+(3600*24));
    
    
    //Passwort aus dem Formular abrufen + als Session, Cookie speichern
    $passwort = $_POST["passwort"];
    $_SESSION["passwort"] = $passwort;
    setcookie("passwort","$passwort",time()+(3600*24));
    
    
    //Usernamen anzeigen
    echo '<b>Dein Username: <br></b>';
    echo 'aus Session: ' . $_SESSION["username"] . '<br>';
    echo 'aus Cookie: ' . $_COOKIE["username"];
    echo '<br><br>';
    
    
    //Passwort anzeigen
    echo '<b>Dein Passwort: <br></b>';
    echo 'aus Session: ' . $_SESSION["passwort"]  . '<br>';
    echo 'aus Cookie: ' . $_COOKIE["passwort"];
    
    
    ?>


    Gruß
    Manni
  13. Autor dieses Themas

    mrmuggel

    mrmuggel hat kostenlosen Webspace.

    Es funktioniert schon, nur auf welche Art und Weise (Ich drück mich machmal zeihmlich doof aus:angel:)

    Also wenn Ich in der Datei form.php die Daten eingebe komme Ich auf die Seite dann wird zunächst nur der Username und das Passwort aus der Session angezeigt.
    Wenn Ich akualisiere wird nur der Username und Passwort aus den Cookies angezeigt.

    Aktualisiere Ich noch ein 3x so wird gar nix angezeigt -.-
    Sinn und Zweck war ejdoch dass Ich die Daten jeder Zeit abrufen kann ???
  14. Also rein nach der logik zeigt dieses script beim ersten mal username + passwort an und beim aktualiseren nix mehr, ausser du sendest die daten nochmals.

    ka was dein problem ist.
  15. kleinereisbaer666

    Kostenloser Webspace von kleinereisbaer666

    kleinereisbaer666 hat kostenlosen Webspace.

    Habe ein nettes Login-Script gefunden... Login-Script V1.0 (MySQL)

    http://schielkes.graffiede.net/downloads.php

    Schau es dir einfach mal an! :thumb:
  16. Hallo,

    du solltest zum Testen den Browser clean machen, also temporäre Dateien und Cookies löschen. Sonst kann man irgendwie gar nichts genau vorhersagen.
    Bei mir verhält sich die Sache dann so (ie + FF):
    Auf der Formularseite gebe ich UN und PW ein und klicke go. Nun erhalte ich bei Session die Daten und bei Cookie nichts. Das liegt daran, dass du das selbe Script zum schreiben und lesen des Cookies nimmst. Bereits vor Ausführung des Scripts werden die Cookies gelesen (sie sollen ja im Script zur Verfügung stehen). Wenn aber das Cookie erst im Script gesetzt wird, wird die $_Cookie Variable nicht mehr aktualiesiert und der Wert ist leer. Beim Aktualisieren werden die Cookies erneut gelesen. Diesmal sind ist das Cookie ja schon vom letzten Aufruf da und auch der Wert wird angzeigt. Die Post Daten werden erneut gesendet, somit ist auch die Session Variable initialisiert und das Cookie wird mit den gleichen Werten überschrieben. Deshalb kann ich nun so oft aktualisiern wie ich will, die Werte für Session und Cookie werden korrekt angzeigt.
    Ist das bei dir anders?

    Öffnest du nun eine neue Browserinstanz, dirket mit dem Script, dann ist natürlich die Session Variable nicht initialisiert, denn ohne Fromular werden auch keine POST Daten gesendet. Das Cookie hingegen ist ja noch da und wird gelesen. Also werden nur die Cookie Daten angezeigt. Aktualisierst du nun, so verschwinden auch die Cookie Werte, denn beim vorherigen Aufruf wurden sie ja mit den leeren bzw. nicht vorhandenen POST Daten überschrieben. Es wird nichts mehr angezeigt.
    Ist es vielleicht das was dich verwirrt?

    Ich würde empfehlen für das Setzen und Lesen der Werte zwei Scripte zu verwenden.

    Gruß
    Manni
  17. Autor dieses Themas

    mrmuggel

    mrmuggel hat kostenlosen Webspace.

    Öhm, naja eigentlich hat mich dein Post nun etwas verwirrt. XD

    Ich werd dass dann nochmals probieren und mir das Login Script anschauen danke:thumb:
  18. Autor dieses Themas

    mrmuggel

    mrmuggel hat kostenlosen Webspace.

    So,...Ich habe Hier das gesamte Login Script.

    Inhalt:
    login.php
    logout.php
    Datenbank erstellen.php
    sessionhelpers.inc.php

    Ich möchte nun dass wenn Ich mich einlogge der Username angezeigt wird mit dem Ich eingeloggt bin. Bitte nicht über:

    $nickname = $_POST....

    Sondern über die Session die in sessionhelpers.inc.php hoffentlich drinnen ist, mein dummes Problem wo Ich noch keine Lösung gefunden habe ist wie Ich die Daten abfragen kann.

    Ich hab das ganze Login Script in .zip Format hochgeladen. Klickt einfach auf den Link -> danach kommt Ihr auf eine Seite wo ihr den ganz großen Link DOWNLOAD klciken müsst :)

    Link: http://www.kram-hochladen.de/returnfile.php?id=OTI3OTQ=

    Danke jetzt schon mal, vll. bin Ich ein bischen Begriffs stutzig ;)


    Beitrag geändert: 15.7.2007 14:10:53 von mrmuggel
  19. Für dieses loginscript brauchst du eine datenbank. dazu musst du eine bei lima-city ersteigern. Ausserdem musst du noch in der sessionhelbers.inc.php die datenbankangaben spezifizerien, deine datenbank liegt nämlich nicht auf localhost

    getestet habe ich das ganze nicht, aber es ist ein bischen, naja, ich löse solche sachen über $_SESSON und nicht über eine datenbank...

  20. Autor dieses Themas

    mrmuggel

    mrmuggel hat kostenlosen Webspace.

    Halo !!!
    Meine Datenbank leigt auf localhost, weil Ich das Script Hier nicht hoste. Ich hab einen eigenen PaidSpace, und wenn Ich mir das so code dann weiß Ich bestimmt wie meine Daten sind :mad:

    Ich hab auch schon eine einwegs Lösung gefunden nur möchte Ich die daten in sessionhelpers.inc.php speichern :)

    Sei mir nicht böse, aber bei sowas weiß Ich schon was Ich tue
  21. Das teil sieht mit den kommentaren drum aus wie ein vorgefertigtest script. dachte du hättest es einfach kopiert. leider weiss ich jetzt nicht was genau das problem ist, der code sieht einigermassen funktionabel aus
  22. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!