kostenloser Webspace werbefrei: lima-city


mal wieder Include

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    nicko

    Kostenloser Webspace von nicko

    nicko hat kostenlosen Webspace.

    Ich hab ein Problem. Und zwar bei einem Login Script bzw. bei einem Registrierungsscript.
    Das "registrieren" funtzt auch und zwar so:
    Der name wird durch die variable $fname in einer Textdatei gespeichert.
    Die Textdatei hat den namen "m-".$fname.".php"
    Der inhalt sieht dann so aus:
    <?
    $name="$fname";
    ?>
    also wird dann $fname durch den eingegebenen namen ersetzt...
    Genauso mit den passw?rtern und emailadressen, nur das die datei jeweils anders anf?ngt, also:
    m-$fname.php -->Benutzername
    e-$email.php -->Emailadresse
    p-$passwd.php->Kennwort

    funktioniert bis jetzt auch, bis auf das wenn man sich einloggt.

    Und zwar dachte ich mir das so:
    <?
    name="$fname";
    pwd="$passwd";
    include "users/m-".$fname.".php";
    include "users/p-".$pwd.".php";
    #dann ne if abfrage ob die dateien existieren, was ja nicht der Fall ist,
    #wenn man etwas falsches angibt....
    #dann noch ne if abfrage die das passwort ?berpr?ft, wenn die
    #Dateien denn doch vorhanden sein sollten
    #und wenn das passwort nun auchnoch richtig sein sollte, dann soll
    #er einfach nur erstmal irgendwas schreiben...
    ?>

    nur funktioniert das nicht so wie ich es will, da er ne fehlermeldung rausgibt, wenneine datei nicht existiert, also wenn man etwas falsches eingibt. wenn man aber den richtigen namen eingibt aber ein falsches passwort, dann sagt er dass das Passwort falsch ist. Wenn man ein richtiges passowrt angibt aber sich verschrieben hat oder so, dann sagt ein das man eingeloggt ist als der name, den man falsch eingegeben hat.
    Das Problem krieg ich wohl auch von selber hin, wei? nicht genau aber was mich vielmehr interssiert ist, wie ich die fehlermeldung wegbekomme. Kann ich nicht einfach den gesammten ordner "users" includen, also alle dateien die sich im ordner befinden, ohne das ich jede datei einzelnt angebe? Dann h?tt ich zwar ein problem mit den variablen aber da h?tte ich schon eine l?sung...

    w?re cool wenn mir jemand helfen w?rde.

    Nicko

    PS:
    SEHR WICHTIG:
    Ich habe nicht vor dieses script zu verwenden, da es auch viiel leichter geht usw. usw.... Nun, ich will einfach nur ein bisschen mehr in die PHP Welt "eindringen" und mein, ich sag mal, begrentzten horizont oder wie das geschrieben wird, erweitern. Man brauch f?r PHP n?hmlich nicht nur die F?higkeiten, sondern auch Kreativit?t und m?glichkeiten f?r bestehende Probleme. Und da ich jetzt nicht weiter komme, brauche ich eure Inspiration *l?lz*

    Nun gut ihr denkt wahrscheinlich "was oder wovon redet der eigentlich??"
    aber ich sag es nur damit niemand sagen kann, dass das script total l?cherlich ist und umst?ndlich. Das wei? ich n?hmlich selba :)
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. s******r

    Hallo

    Wenn der User einen Namen angibt, den es nicht gibt, dann wird die Datei eingef?gt, die es nicht gibt. Au?erdem: Wenn zwei User das gleiche PW haben, hat die Datei den gleichen Namen ==> Fehler! F?ge das Passwort ebenfalls in die Member-Datei (m-sowieso.php) ein!

    Au?erdem musst du ?berpr?fen, ob die Datei dann vorhanden ist:

    $name="$fname";
    if(file_exists("users/m-".$fname.".php")) {
    include "users/m-".$fname.".php";
    }
    else {
    echo "User nicht vorhanden!!";
    }

    So m?sste es dann aussehen, wenn das PW ebenfalls in der Datei ist.

    bis dann,
    scripter (Mitglied Members on Wire)
  4. Autor dieses Themas

    nicko

    Kostenloser Webspace von nicko

    nicko hat kostenlosen Webspace.

    jo, soweit hab ich es auch, nur das er eine fehlermeldung und den text, das die datei nicht vorhanden ist anzeigt... deswegen wollte ich ja den gesammten inhalt des ordners includen, falls das ?berhaupt geht...

    nicko
  5. Mit opendir() und readdir() die Verzeichniseintr?ge einlesen:

    $basepath = '_dein_Pfad_zum_Verzeichnis_';
    $dirlist = array();
    
    $handle=opendir ($basepath);
    echo "Verzeichnis-Handle: $handle\n";
    echo "Dateien:\n";
    while (false !== ($file = readdir ($handle))) {
      if( is_file($file) ) {
        echo "$file\n";
        $dirlist[] = $file;
      }
    }
    closedir($handle);


    Den Verzeichnispfad mit den Verzeichnis-Eintr?gen zusammenkleben und includen:

    foreach($dirlist as $key => $val) {
      include($basepath.'/'.$val);
    }


    Dies ist nur ein Beispielcode. Geht bestimmt noch zu verbessern.

    MfG
    alopex

  6. Autor dieses Themas

    nicko

    Kostenloser Webspace von nicko

    nicko hat kostenlosen Webspace.

    gibt es auch noch eine variante die leichter zu verstehen ist bzw k?rzer ist?

    thx Nicko


    Edit (by Thornet): Der Beitrag vor diesem wurde gel?scht. Noch ein Doppelposting und ich sehe mich gezwungen, Dich zu verwarnen.

  7. $name="$fname";
    if(file_exists("users/m-".$fname.".php")) {
    include "users/m-".$fname.".php";
    }
    else {
    echo "User nicht vorhanden!!";
    }



    nicko schrieb:
    jo, soweit hab ich es auch, nur das er eine fehlermeldung und den text, das die datei nicht vorhanden ist anzeigt... deswegen wollte ich ja den gesammten inhalt des ordners includen, falls das ?berhaupt geht...

    nicko


    Das ist es ja. Wenn die Datei nicht exists, dann wird auch nichts includet.
    Und somit kommt wegen dem Include keine Fehlermeldung.

    Wenn doch, dann greifst du sp?ter nochmal auf die Datei zu.

    Jens
  8. Autor dieses Themas

    nicko

    Kostenloser Webspace von nicko

    nicko hat kostenlosen Webspace.

    nuja bei mir ?berpr?ft er ob es die datei gibt und egal ob es sie gibt oder nicht, er versucht sie zu includen und deshalb kommt da dann auch eine fehlermeldung, also eine warnung, das es die datei nicht gibt die man includen will. ich mache da wohl irgendwas falsch.. muss ich mir nochmal angucken. auf jedenfall erstmal danke :)
  9. Hallo nicko!

    M?glicherweise hast du nicht den korrekten Pfad angegeben. Versuche doch mal die Datei mit dem gesamten Pfad zu includen, in etwa so:

    $my_include = $_SERVER['DOCUMENT_ROOT'].'/weiterer_pfad/'.'include_datei.php';

    if( file_exists($my_include) ) {
    include($my_include);
    }

    MfG
    alopex

  10. Autor dieses Themas

    nicko

    Kostenloser Webspace von nicko

    nicko hat kostenlosen Webspace.

    kann ich nicht einfach ?berpr?fen ob es die datei gibt und wenn ja, dann soll sie includet werden, so das man den inhalt verarbeiten kann und wenn nicht, das er dann sagt, dass das eingegebene passwort bzw. benutzername falsch ist?

    Das problem ist ja das er irgendwie, trotz falschen benutzernamen und oder passwort sich sozusagen trotzdem versucht einzuloggen, was auch funtkioniert nur mit ein oder 2 fehlermeldungen. somit k?nnte man dann mit den falschen daten trotzdem alles weitere ausf?hren.

    Ich wollte eigentlich nur ein textdatei basiertes loginscript machen, so das ich nicht jeden user manuell eintragen muss aber klappt wohl nicht so ganz. nicht das ich das script auch benutzen will, ich will das ja nur zur eigenen ?bung hinbekommen.

    Deswegen wollte ich auch den gesammten ordner includen, so das alle daten da sind und ich sie bequem ?berpr?fen kann ob eins von denen mit dem eingegebenen ?bereinstimmt ^^

    Nicko

  11. kann ich nicht einfach ?berpr?fen ob es die datei gibt und wenn ja, dann soll sie includet werden, so das man den inhalt verarbeiten kann und wenn nicht, das er dann sagt, dass das eingegebene passwort bzw. benutzername falsch ist?


    Genau das macht das von mir angegebene Skript.


    Ich wollte eigentlich nur ein textdatei basiertes loginscript machen, so das ich nicht jeden user manuell eintragen muss aber klappt wohl nicht so ganz. nicht das ich das script auch benutzen will, ich will das ja nur zur eigenen ?bung hinbekommen.


    Sowas gibt es sicher fertig irgendwo zum Download. Man muss das Rad nicht zweimal erfinden. Allerdings, wenn du etwas lernen willst ...

    1. Befasse dich eingehender mit der PHP-Documentation
    http://www.php.net/manual/de/

    2. Speichere die Benutzerkennung-Passwort-Kombinationen in einer Datei, nicht in mehreren. Benutze das "ini"-Format, d.h. die Datei sieht dann etwa so aus:

    nutzer1="passwort1"
    nicko="gro?er_webmeister"
    gast="08154711"

    3. PHP bietet eine sch?ne Funktion, um solche INI-Dateien in ein so genanntes assoziatives Array zu speichern:
    http://www.php.net/manual/de/language.types.array.php
    Die Funktio hei?t parse_ini_file():
    http://de.php.net/manual/de/function.parse-ini-file.php

    4. Das Abspeichern solcher Dateien geschieht mit der Datei-Funktion fputs():
    http://de.php.net/manual/de/function.fputs.php

    5. Ein assoziatives Array durchsucht man in einer foreach()-Schleife:
    http://de.php.net/manual/de/function.foreach.php

    $login_name = _hier_den_eingegeben_benutzername_einsetzen_;
    $login_password = _hier_das_eingegebene_password_einsetzen;
    ...
    $all_okay = FALSE;
    $password_wrong = FALSE;
    foreach($mein_array as $key => $val) {
    if($key == $login_name) {
    if($val == $login_password) {
    $all_okay = TRUE;
    }
    else {
    $password_wrong = TRUE;
    }
    break;
    }
    }

    // Hier kannst du den Login auswerten
    // $all_okay ist TRUE, wenn Kennung und Passwort stimmen
    // $password_wrong ist TRUE, wenn eine g?ltige Kennung,
    // aber ein falsches Passwort eingegeben wurde
    // beide sind FALSE, wenn die Nutzerkennung nicht existiert

    So, und jetzt: Sch?n ?ben! :wink:

    MfG
    alopex



  12. 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!