• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

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
 

MasterofDistres

Kleiner Weinapfel
Registriert
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 ;) )
 

peter3333

Stechapfel
Registriert
21.10.08
Beiträge
157
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
 

drlecter

Wöbers Rambur
Registriert
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.
 

MasterofDistres

Kleiner Weinapfel
Registriert
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 ;)
 

peter3333

Stechapfel
Registriert
21.10.08
Beiträge
157
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

  • SimpleMember.zip
    13 KB · Aufrufe: 71

drlecter

Wöbers Rambur
Registriert
04.11.06
Beiträge
6.442
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.
 

peter3333

Stechapfel
Registriert
21.10.08
Beiträge
157
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