kostenloser Webspace werbefrei: lima-city


Useraccounts in File schreiben

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    misterbunny

    misterbunny hat kostenlosen Webspace.

    Ich hab die Datei index.php :

    <html>
    <body>
    <?php
    <h1>Wollen sie sich einen Account erstellen?<h1>
    <form action="createacc.php" method="post">
    Name: <input type="text" name="name" />
    Password: <input type="text" name="password" />
    <input type="submit" />
    </form>
    
    ?>
    
    
    </body>
    </html>


    und die Datei createacc.php:

    <html>
    <body>
    
    <?php 	if (fopen $name+ ".txt","x" == "false")
    		echo "This User already exists";
    	else
    	(fopen($name+ ".txt","x");
    	fwrite ($name, $password;)
    	fclose
    	}
    	
    ?>
    </body>
    </html>


    Aber ich komm mit dem code mit dem man Dateien erstellt und so nicht klar...
    Kann mir da wer sagen, wie es richtig geht? Der Grundgedanke sollte klar sein: Es wird ein Account mit Passwort erstellt. Wenn der Accountname schon existiert, kommt die Fehlermeldung, dass es diesen User bereits gibt...
    Danke schonmal im Vorraus...

  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. Warum willst du denn auch das ganze in ein txt File speichern? Eine Datenbank wäre viel schneller und kofortabler!

    zudem:

    else
    ( -> {fopen($name+ ".txt","x");
    fwrite ($name, $password;)
    fclose
    }
  4. Letztendlich ist es wurscht, ob Du mit Dateien oder einer Datenbank arbeitest.

    Für beide Varianten sollte dir, um überhaupt etwas Sinnvolles zu gestalten, die Syntax von php ein Begriff sein und Du solltest die, für die jeweilige Methode relevanten Sicherheitsmechanismen kennen.

    Gesetzt den Fall, dein Code würde funktionieren, was er allein wegen einer Menge Syntaxfehler nicht kann, wäre das speichern eines Passwortes in einer Textdatei ein gravierendes Sicherheitsproblem.
    Guckst Du hier: username.txt
    Ich glaube nicht, daß das in deinem Sinne ist, oder? :wink:

    Hinweise zur richtigen Nutzung der Dateifunktionen liefert php.net (z.B. fopen). Auch die Datenbankfunktionen sind dort dokumentiert.

    Für die Grundlagen zur Arbeit mit php und MySQL kann ich dir das Tutorial von Schattenbaum.net empfehlen.


    FF


    Beitrag zuletzt geändert: 16.11.2009 13:18:08 von fatfreddy
  5. Autor dieses Themas

    misterbunny

    misterbunny hat kostenlosen Webspace.

    Ok, danke erstmal...
    Also erstmal lerne ich die einfache Syntax (danke für die Seite), danach muss ich mich dann wohl an die Sicherheit machen...
    Sorry, die Frage ist wahrscheinlich dumm, aber mit welcher Funktion kann man die Datei vor einem einfachen, dierekten Zugriff schützen?
  6. misterbunny schrieb:
    Sorry, die Frage ist wahrscheinlich dumm, aber mit welcher Funktion kann man die Datei vor einem einfachen, dierekten Zugriff schützen?


    Warum sollte die Frage dumm sein? Ganz im Gegentum ist es sinnvoll, sich frühzeitig über Schutzfunktionen Gedanken zu machen. :wink:

    1.
    In den Ordner mit deinen txt-Dateien legst Du eine Datei namens .htaccess (achte auf den Punkt am Anfang!)
    Diese bekommt folgenden Inhalt:
    Options -Indexes
    
    <Files *.txt>
    Order Deny,Allow
    Deny from all
    </Files>


    Dadurch können nur noch die, auf dem Server laufenden Skripte auf diese Dateien zugreifen.

    2.
    Passworte sollten grundsätzlich nicht im Klartext abgespeichert werden.
    PHP bietet eine Funktion md5(), damit wird das Passwort verschlüsselt und kann in der Datei/Datenbank abgelegt werden.
    Wenn dein User später sein PW eingibt. mußt Du nur die Eingabe ebenfalls verschlüsseln und mit dem gespeicherten, verschlüsselten Passwort vergleichen.




    FF
  7. Autor dieses Themas

    misterbunny

    misterbunny hat kostenlosen Webspace.

    Okay, noch ne Frage:

    Ich habe den Code jetzt soweit umgeändert, dass er zumindest im Browser keine Fehler mehr anzeigt, ich hab aber einen Fehler in einer Zeile

    index:

    <html>
    <body>
    
    <h1>Wollen sie sich einen Account erstellen?<h1>
    <form action="createacc.php" method="post">
    Name: <input type="text" name="name" />
    Password: <input type="text" name="password" />
    <input type="submit" />
    </form>
    
    </body>
    </html>


    createacc.php:

    <html>
    <body>
    
    
    <?php 		
           $filename=$PASTE_name.".txt";
    da ist offenbar ein Fehler
    if (file_exists($filename))
    		echo "This User already exists";
    	else
    		{
    		$handle = fopen ($filename,"w");
    		fwrite($PASTE_name, $PASTE_password);
    		echo $filename;
    es wird .txt ausgegeben und nicht, wie gewünscht $PASTE_name.txt
    fclose;
    		}
    ?>
    </body>
    </html>


    Was ist an der Zeile $filename=$PASTE_name.".txt" falsch? Wird da $PASTE_name nicht als string dazuaddiert oder so was?
    mfg
    MrB

    Beitrag zuletzt geändert: 16.11.2009 17:54:50 von misterbunny
  8. Ändere deine createacc.php mal wie folgt ab:

    <html>
    <body>
    
    
    <?php 		
            $name = htmlspecialchars($_POST["name"]);
            $password = htmlspecialchars($_POST["password"]);
    
           $filename = $name . ".txt";
    
    	 if (file_exists($filename))
                {
    		echo "This User already exists";
                 }
    	else
    		{
    		$handle = fopen($filename,"w");
    		fwrite($handle, $password);
    		echo $filename;
    		fclose($handle);
    		}
    ?>
    </body>
    </html>


    Das sollte eigentlich funktionieren. ;)

    misterbunny schrieb:
    Was ist an der Zeile $filename=$PASTE_name.".txt" falsch? Wird da $PASTE_name nicht als string dazuaddiert oder so was?

    Prinzipiell schon, aber die Variable $PASTE_name hat keinen Inhalt. :wink:
    Mit post übergebene Variablen liest man mit $_POST['formularfeldname'] aus.


    Beitrag zuletzt geändert: 16.11.2009 18:47:59 von fatfreddy
  9. Autor dieses Themas

    misterbunny

    misterbunny hat kostenlosen Webspace.

    Hey danke, jetzt wird endlich erfolgreich die Textdatei mit den Logindaten erstellt :)
    Hura, jetzt muss ich nur noch die Eingabe im Passwortfeld durch Sterne verstecken
    (was ich auch noch lernen muss^^) und letzendlich das Loginfenster bauen, denn was bringt einen der Account, wenn man sich nicht einloggen kann :D

    Beitrag zuletzt geändert: 17.11.2009 6:03:49 von misterbunny
  10. misterbunny schrieb:
    Hura, jetzt muss ich nur noch die Eingabe im Passwortfeld durch Sterne verstecken
    (was ich auch noch lernen muss^^)

    Ganz einfach, einfach als Eingabefeld für das Passwort
    <input type="password">
    anstatt
    <input type="text">
    benutzen...

    Beitrag zuletzt geändert: 17.11.2009 6:11:23 von buechsdeluxe
  11. Autor dieses Themas

    misterbunny

    misterbunny hat kostenlosen Webspace.

    Das geht ja schoen einfach, ich mag php irgendwie...
  12. misterbunny schrieb:
    Das geht ja schoen einfach, ich mag php irgendwie...


    Ich auch, aber du solltest wissen dass der Input-Tag nichts mit PHP zu tun hat :wink: Hierbei handelt es sich um reines HTML was im Gegensatz zu PHP auch keine Programmiersprache sondern eine Auszeichnungssprache ist. Aber das nur am Rande :blah:

    Beitrag zuletzt geändert: 17.11.2009 7:34:42 von buechsdeluxe
  13. Autor dieses Themas

    misterbunny

    misterbunny hat kostenlosen Webspace.

    buechsdeluxe schrieb:
    misterbunny schrieb:
    Das geht ja schoen einfach, ich mag php irgendwie...


    Ich auch, aber du solltest wissen dass der Input-Tag nichts mit PHP zu tun hat :wink: Hierbei handelt es sich um reines HTML was im Gegensatz zu PHP auch keine Programmiersprache sondern eine Auszeichnungssprache ist. Aber das nur am Rande :blah:


    Hehe, okay.
    Aber ich finds irgendwie schon erstaunlich, wie einfach man doch so ne Seite machen kann...

    Beitrag zuletzt geändert: 17.11.2009 8:02:42 von misterbunny
  14. Hehe, aber eigtl ist das ja noch die schwierigere Variante :wink:
    Am allereinfachsten sind natürlich WYSIWYG-Editoren :puke:

  15. misterbunny schrieb:
    Hura, jetzt muss ich nur noch die Eingabe im Passwortfeld durch Sterne verstecken
    (was ich auch noch lernen muss^^) und letzendlich das Loginfenster bauen, denn was bringt einen der Account, wenn man sich nicht einloggen kann :D


    Und nicht vergessen, die Passworte verschlüsselt zu speichern.:wink:

    buechsdeluxe schrieb:
    Am allereinfachsten sind natürlich WYSIWYG-Editoren :puke:


    Handarbeit bringt aber einen deutlich höheren Lerneffekt.

    FF
  16. Autor dieses Themas

    misterbunny

    misterbunny hat kostenlosen Webspace.

    Hehe, ja die Verschlüsselung sollte auch noch rein o0
    Aber ich freu mich im Moment erstmal, dass alles wie geplant läuft...
  17. 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!