1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

PHP Multiple-Login für Kunden

Dieses Thema im Forum "PHP & Co." wurde erstellt von peter3333, 24.12.09.

  1. peter3333

    peter3333 Cripps Pink

    Dabei seit:
    21.10.08
    Beiträge:
    151
    Guten Tag!

    Derzeit arbeite ich an meiner Webseite und habe ganz einfach drei Formularobjekte eingebunden:
    Username-Box, Passwort-Box und ein Submit-Button.

    Im Internet habe ich bereits lange nach Lösungen gesucht für mein Login-Problem, jedoch keine einfache für den multiple-Login gefunden.

    Ich möchte mit diesen Formular-Objekten einfach verschiedene vorher eingetragene Kunden einloggen lassen.
    Jeder Kunde hat seine eigene Kundennummer (e-Mail) und sein eigenes Passwort. Bei erfolgreicher Eingabe soll er einfach auf seine persönliche Kundenseite weitergeleitet werden, die ich schon erstellt habe.

    Allerdings habe ich immer nur Scripts gefunden die verspielt, vollgepackt und auf einen Benutzer zugeschnitten sind. Ich brauche aber eines wo Benutzer auf ihre jeweils zugeteilte Seite weitergeleitet werden!

    Ich wünsche ein Frohes Fest und einen guten Rutsch ins neue Jahr!

    Grüße, Peter
     
  2. MasterofDistres

    MasterofDistres Kleiner Weinapfel

    Dabei seit:
    07.12.06
    Beiträge:
    1.139
    Also an sich, da die Seite, die ihm zugeteilt wurde, schon besteht, kannst du ja das vorhandene Skript nutzen, um die Logindaten zu prüfen (aber auch schauen, ob's gegen SQL-Injections und andere Sicherheitslöcher abgesichert ist) und dann anhand der Kundennummer einfach eine Weiterleitung auf die persönliche Seite schalten…die Nummer ist ja beim Loginvorgang noch gespeichert… (die Seite muss dann natürlich nochmal extra gesichert sein und die Authentizität / Richtigkeit der übermittelten Daten prüfen (also Kundennummer und Passwort) (jetzt in der Kurzform die Idee, hoffe, hab dich richtig verstanden ;) )
     
  3. peter3333

    peter3333 Cripps Pink

    Dabei seit:
    21.10.08
    Beiträge:
    151

    Guten Morgen!

    Danke schon mal für die Antwort!
    Mhh . . . leider habe ich ja gerade kein Script, daher kann ich kein vorhandenes Script nutzen ;)

    Ich verfüge auf jeden Fall über einen SQL und könnte demnach die Benutzerdaten einbinden. Ich habe nur bisher kein Script gefunden im Internet, dass ich mit meinen schwachen PHP-Kenntnissen umschreiben kann zu dem was ich brauche.

    Einfaches Login -> E-Mail und Passwort
    Und der jeweilige Benutzer wird an die ihm zugeteilte Webseite weitergeleitet ...


    Ich danke auf jeden Fall schon mal für die Antwort und wünsche Ihnen ein frohes Fest sowie einen guten Rutsch ins neue Jahr 2010 - ich hoffe Sie müssen Sich beim Unterschreiben nicht so lange an die 2010 gewöhnen wie ich immer ;)

    Beste Grüße,
    Peter
     
  4. drlecter

    drlecter Wöbers Rambur

    Dabei seit:
    04.11.06
    Beiträge:
    6.442
    Direkt der erste Treffer bei google: KLICK
    Du musst hier noch die Seite einbauen wo der Kunde hinsoll. Du kannst hierfür die eindeutige ID des Users benutzen oder du hinterlegst für jeden Benutzer in der Datenbank ein Feld wo die Seite steht. Dann einfach diesen Wert aus der DB auslesen und den Link aufbauen.
     
  5. MasterofDistres

    MasterofDistres Kleiner Weinapfel

    Dabei seit:
    07.12.06
    Beiträge:
    1.139
    Wo man da dazu sagen muss, dass keinerlei Prüfung der übergebenen Daten durchgeführt wird... also ich kann mal eins hochladen, dass ich vor längerer Zeit, z.T. anhand eines Tutorials erstellt habe - dort werden die Daten überprüft, aber trotzdem ohne Gewähr ;)

    Einmal das Login-Form:

    Code:
    <form action="process_login.php" method="post" accept-charset="utf-8">					
    	<p><span class="nlabel">E-Mail:</span> 	
    	<input type="text" id="mail" name="email" value="" /><br />
    	<span class="plabel">Passwort:</span>		
    	<input type="password" id="pw" name="password" value="" /><br /></p>
    	<p><input type="submit" id="submit" name="submit" value="Login!" /></p>
    </form>
    Ein bisschen Sicherheit:
    Code:
    function protect($string) {
    	$string = htmlspecialchars($string);
    	$string = mysql_real_escape_string($string);
    	$string = strip_tags($string);
    	$string = addslashes($string);
    
    	return $string;
    }
    Das Skript inkl. Überprüfung:
    Code:
    if ($_POST['submit']) {
    	session_start();
    	ob_start();
    	$email = protect($_POST['email']);
    	$passwort = protect($_POST['passwort']);
    
    	$errors = array();
    
    	if (empty($email)) {
    	    $errors [] = "<span class=\"error\">Fehler:</span> Bitte geben Sie Ihre Emailadresse ein!";
    	}
    	if ($email) {
               $checkemail = "/^[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+)*)+\\.[a-z]{2,}$/i";
    	   if(!preg_match($checkemail, $email)) {
    	      $errors [] = "<span class=\"error\">Fehler:</span> Keine gültige Emailadresse!";
    	   }
    	}
    
    	if(!$passwort){
    	    $errors[] = "<span class=\"error\">Fehler:</span> Bitte geben Sie Ihr Passwort ein!";
    	}
    
    
    	if(count($errors) > 0){
    	    echo "Folgende <span class=\"error\">Fehler</span> sind aufgetreten:<br>\n";
    	        foreach($errors AS $error){
    	            echo $error . "<br>\n";
    	        }
    	}
    	else {
    
    	    $query = "SELECT * FROM users WHERE email = '$email'";
    	    $res = mysql_query($query) or die(mysql_error());
    
    	    if(mysql_num_rows($res) == 0){
    	        echo "Die angegebene E-Mailadresse ist nicht in der Datenbank zu finden.";
    	    }
                else {
    	        $query2 = "SELECT * FROM users WHERE username='".$email."' AND `passwort`='".md5($passwort)."'";
    	        $res2 = mysql_query($query2) or die(mysql_error());
    
    	        if(mysql_num_rows($res2) == 0){
    	            echo "E-Mail- und Passwort-Kombination stimmt nicht!";
    	        } 
    			else {
    		            $row = mysql_fetch_assoc($res2);
    
    		            // we're going to set the user id
    
    		            // for cookies
    		            setcookie('id',$row['id'],0);
    
    		            // for sessions
    		            $_SESSION['id'] = $row['id'];
    			    $_SESSION['pw'] = $row['passwort'];
    
    		            echo ("<script type=\"text/javascript\">
    					var newurl = \"acc.php\";
    					setTimeout(\"window.location.href=newurl\",100);
    					</script>");
    		        }
    		    }
    
    		}
    
    		ob_end_flush();
    	}
    	else {
    	    // in this area the form has been incorrectly submitted
    	    echo "<span class=\"error\">Fehler:</span> Diese Seite wurde falsch aufgerufen!";
    	}
    ?>
    In der Kundenseite noch eine Überprüfung:
    Code:
    if (!empty($_SESSION['id']) && !empty($_SESSION['pw'])) {
           $pw = protect($_SESSION['pw']); $id = protect($_SESSION['id']);
           $query = "SELECT * FROM users WHERE id = '$id' AND passwort = '$pw'";
           $res = mysql_query($query) or die(mysql_error());
           if (mysql_num_rows($res) == 0) {echo "Session-Details stimmen nicht!";}
           else{ SEITE AUSGEBEN ...}
    }
    Da mögen noch (kleine) Fehler drin sein, hab das jetzt auch eben nur Quick'n'Dirty aus 2 versch. Skript zusammen geschrieben (war eigentlich eine Überprüfung anhand Benutzername und Passwort), aber ist jedenfalls besser als das verlinkte Skript von Google ;)
     
  6. peter3333

    peter3333 Cripps Pink

    Dabei seit:
    21.10.08
    Beiträge:
    151
    Ich danke Dir für Dein Script!
    Sehr nett, dass Du Dir kurz Zeit genommen hast...

    Das Google-Script war in der Tat nicht wirklich gut!
    Habe in der Zwischenzeit mal weiter gegoogelt und habe in der Zwischenzeit ein weiteres Script gefunden (Anhang), das eigentlich garnicht soo schlecht ist. Allerdings ist auch dieses Script wie alle nur an eine explizite Seite verlinkt bei Login. Ich habe dann zwar auch in der SQL die User stehen, aber nicht die Option diese an eine bestimmte Seite weiterzuschicken :(

    Ich sehe mir mal gerade Dein Script an...
    Danke schonmal!
     

    Anhänge:

  7. drlecter

    drlecter Wöbers Rambur

    Dabei seit:
    04.11.06
    Beiträge:
    6.442
    Das Script bei mir war nur ein Bespiel. Sowas ist halt ausbaufähig.
    Wie du die Weiterleitung machen kannst, sagte ich ja auch schon. Du musst halt irgendwo die Seite oder so speichern, wo der User hin soll. Dieses musst du dann halt mit überprüfen. Das kannst du dann mit inder Überprüfung der Kundenseite einbauen.
     
  8. peter3333

    peter3333 Cripps Pink

    Dabei seit:
    21.10.08
    Beiträge:
    151
    Servus!

    Ich danke Euch für Eure Hilfe soweit . . .

    Ich habe genau das richtige Script gefunden - man muss nur die richtigen Wörter zur Suche verwenden.
    Ich habe bei Google dann nach 'Login Redirect' gesucht...

    Hier das erste Ergebnis ...
    Viola!

    Alles gute fürs neue Jahr!
    Peter
     

Diese Seite empfehlen