• Das kreative Thema des Monats Oktober wird vor allem diejenigen unter Euch besonders ansprechen, denen Do-it-yourself quasi im Blut liegt. Zeigt uns Eure Improvisationskünste oder fotografiert, was andere Leute sich so im Alltag zusammengestrickt haben. --> Zum Mitmachen bitte hier klicken

PHP Multiple-Login für Kunden

peter3333

Stechapfel
Registriert
21.10.08
Beiträge
157
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
 
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 ;) )
 
Also an sich, da die Seite, die ihm zugeteilt wurde, schon besteht, kannst du ja das vorhandene Skript nutzen ...


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
 
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.
 
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 ;)
 
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

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