kostenloser Webspace werbefrei: lima-city


Php Loginseite verwirklichen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    dataserver

    dataserver hat kostenlosen Webspace.

    Hallo,
    Ich habe eine Login-Seite erstellt, aber sie funktioniert nicht...
    Hat wer eien Idee, wie ich das machen kann?
    Der Benutzername ist ein Ordner im Ordner user und das Passwort ist in einer Textdatei im Benutzerordner.
    Ich habe schon probiert, kann aber trotzdem jemand einen Codeschnippsel als Beispiel zeigen?

    Danke im Vorraus

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

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

  3. Hallo dataserver,

    es wäre hilfreich, wenn du uns mal den Code zeigen würdest, den du bisher hast, sonst ist es schwer zu sagen, wo es bei dir hakt :biggrin:

    Wieso ist der Benutzername ein Ordner? Das kannst du entweder (für den Anfang) direkt in den Code schreiben oder später dann in einer Datenbank speichern.

    MfG biberiusmero


    Beitrag zuletzt geändert: 27.8.2015 22:45:46 von biberiusmero
  4. Hallo Dataserver,

    hier findest Du ein komlettes Beispiel für eine Login-Seite mit allem Drum und Dran:

    http://www.mywebsolution.de/workshops/2/show_PHP-Loginsystem.html

    :spammer:

    Gruss
    Dunkeltuten
  5. Allerdings auch recht veraltet. Die mysql_*-Funktionen werden eh bald aus PHP raus fliegen. Dafür gibt's seit Jahren PDO oder mysqli.

    Der Sinn mit den Ordnern ergibt sich mir auch nicht. Zumal diese wahrscheinlich offen innerhalb des Docroots liegen.
    Speichere die Daten entweder direkt in einer .php-Konfig, Datenbank oder benutze einen .htaccess-Schutz.
    Ohne konkrete Frage kann man da wenig zu sagen.
  6. Autor dieses Themas

    dataserver

    dataserver hat kostenlosen Webspace.

    OK, ihr habt mich über zeugt...
    Das ganze System muss nicht das sicherste sein.
    Ich leider gerade unterwegs und wenn ich wieder zuhause bin, werde ich mal den Code Posten, vielleicht findet irgendwer den Fehler...
    Ansonsten vielen Dank bisher!

    PS.: Weiß irgendwie, ob man hier bei Lima City den Benutzernamen andern kann?
  7. dataserver schrieb:
    PS.: Weiß irgendwie, ob man hier bei Lima City den Benutzernamen andern kann?

    Nein, geht nicht. Du kannst aber einfach einen anderen Benutzer registrieren.
  8. Autor dieses Themas

    dataserver

    dataserver hat kostenlosen Webspace.

    Das ist mein login.php (rufe ich immer mit include auf jeder Seite auf):
    <?php
    @$sessiontime = 600;
    if(isset($_COOKIE["user"])){
    	// -x-
    } else {
    	if(isset($_COOKIE["pass"])){ } else {
    		@setcookie("user",'00000000',time()+($sessiontime));
    		@setcookie("pass",'00000000000000000000000000000000',time()+($sessiontime));
    	}
    }
    
    @$cookieuser = $_COOKIE["user"];
    @$cookiepass = $_COOKIE["pass"];
    $realuser = 0;
    $filepass = 'FILE_NOT_FOUND';
    
    $myfile = @fopen("user/" .$cookieuser. "/pass.txt", "r");
    $filepass = @fread($myfile,filesize("user/" .$cookieuser. "/pass.txt"));
    @fclose($myfile);
    
    if (isset($cookieuser)) {
    	$realuser = $cookieuser;
    }
    
    if($cookiepass == $filepass){
    	// Login erfolgreich
    	@setcookie("user",$realuser,time()+($sessiontime));
    	@setcookie("pass",$filepass,time()+($sessiontime));
    } else {
    	include_once 'postlogin.php';
    	echo 'err<br>';
    }
    ?>
    login erfolgreich (cookie)


    Die Datei Postlogin.php wird mit include verbunden, wenn kein cookie mit den richtigen Zugangsdaten verfügbar ist (theoretisch, aber es funktioniert nicht):
    <?php
    @$sessiontime = 600;
    
    @$postuser = $_POST['user'];
    @$postpass = $_POST['pass'];
    
    $myfile = @fopen("user/" .$postuser. "/pass.txt", "r");
    $filepass = @fread($myfile,filesize("user/" .$postuser. "/pass.txt"));
    @fclose($myfile);
    $realuser = $postuser;
    
    if(isset($_POST['submit'])){
    	if($postpass != $filepass){
    		
    		?>
    		<title>Gesch&uuml;tzter Bereich</title>
    		<meta charset="UTF-8">
    		<link rel="stylesheet" href="css/style.css">
    		<script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
    		<script src="js/index.js"></script>
    		<div id="login"><div id="triangle"></div>
    		<form method="POST" action="">
    		<input type="text" name="user" placeholder="Benutzername"></input>
    		<input type="password" name="pass" placeholder="Passwort"></input>
    		<input type="submit" name="submit" value="Login"></input>
    		</form>
    		</div>
    		<?php
    		exit;
    
    	} else {
    		@setcookie("user",$realuser,time()+($sessiontime));
    		@setcookie("pass",md5($postpass),time()+($sessiontime));
    	}/* --- */
    }
    
    
    ?>
    <br>logged in-post<br>


    Ich weiß,dass ich so etwas wie session verwenden könnte, aber so gut kenne ich mich nicht aus....

    Vielen Dank im Vorraus!
    Max
  9. k**d

    Einfach am Anfang jeder Seiten abfragen ob eine Session gestartet wurde

    // if (! isset($_SESSION["session_started"]))
    // {
    // session_start();
    // $_SESSION["session_started"] = true;
    // }

    Ansonsten ist das ganze genau so wie variablen zu betrachten.
    zb : $variable ist das $_SESSION['variable'] allerdings müssen die dann auch gesetzt werden.

    // $_SESSION['variable'] = $variable;

  10. Was hast du denn genau vor? U.U. reicht dir hier auch einfach eine .htaccess-Lösung. Die ist fix gemacht und für einen Ordnerschutz auf jeden Fall ausreichend.

    Falls du doch PHP willst:
    Session ist hier auf jeden Fall die bessere und sicherere Lösung.

    Bei jeder geschützten Seite sowas wie.
    if (empty($_SESSION['username']))
    {
     header('Location: login.php');
     exit;
    }


    login.php
    $arrUsers = array();
    $arrUsers['bla'] = 'blub';
    if (isset($_POST['username']) && isset($_POST['password']))
    {
     if (isset($arrUsers[$_POST['username']]) && $arrUsers[$_POST['username']] == $_POST['password']))
     {
      $_SESSION['username'] = $_POST['username'];
    // OK
    else
    {
     // NOK
    }
     }
    }
    
    // HTML-Zeug
  11. Hallo,

    bin zwar nicht mehr ganz auf dem neusten Stand was php und sql angeht und muss mich da erstmal wieder neu informieren allerdings denke ich, dass es diese Lösung möglicherweise auch tun könnte:

    http://php-einfach.de/tuts_mysql_login.php

    Das hatte ich damals mit ein paar sicherheitstechnischen Änderungen in Verwendung gehabt. Falls ich hier etwas falsches empfehle bitte Bescheid geben!
  12. fridolino schrieb:
    Das hatte ich damals mit ein paar sicherheitstechnischen Änderungen in Verwendung gehabt. Falls ich hier etwas falsches empfehle bitte Bescheid geben!

    Absolut. mysql_* ist veraltet und fliegt bald.

    Davon abgesehen: FINGER WEG!
    Absolute Anfängerfehler drin. Sogar User-Parameter werden ungefiltert einfach übernommen.
    Das ist ein absolutes NoGo und wirklich die erste Sache, die man lernen sollte. Das reißt dir die größten Sicherheitslücken überhaupt rein.
  13. 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!