Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

Username+Passwort = weiterleitung zu bestimmter Seite (4 verschiedene User / 4verschiedene Seiten)





Frage

Hallo php´ler, der Titel sagt eigentlich schon alles. Ich möchte gerne eine Username und Passwortabfrage auf einer Seite einrichten. Das Besondere dabei ist, es soll nur 4 User geben und je nach Usernamen wird an eine bestimmte Seite weitergeleitet. Da ich ein Neuling in Sachen PHP bin, hoffe ich auf diesem Weg eventuell einen Link zu einem passenden Script zu bekommen??!! Mein bisherige Suche führte leider nicht zum Erfolg. Wenn möglich sollte es ein Script ohne SQL Datenbank Notwendigkeit sein (falls das überhaupt realisierbar ist). Wäre super nett! Vielen Dank im Voraus. Christoph

Antwort 1 von Tuffyfant

hi,

auf die simpelste lösung komst du eigentlich auch alleine. Das einfachste ist doch einfach mehrere IF abfragen zu machen.

If (usereingabe==user1 && passwordeingabe==password1) {
weiterleitung zu seite1}
elseif (usereingabe==user2 && .... ) { ... }
else {echo ´Sie sind kein berechtigter User}

darauf kommst du doch sicherlich auch.
Dann könntest du mal überlegen, wie du das besser machen kannst.
Ich zum Beispiel bin aus C++ klassen gewohnt (ich hab sowas in php noch nicht gemacht aberrrrr : ) . Also fällt mir im moment ein:
Ich würde einen User als klasse darstellen, mit passwort und seite zu der weitergeleitet werden soll als member der klasse.. eine funktionen die passwordeingabe überprüft und eine die an die entsprechende seite weiterleitet. (naja, DIE funktion würde ich global definieren und an sie die Seite an die weitergeleitet werden soll als parameter übergeben - wow, was für ein satz)
Alle User in ein Array packen und für jeden password eingabe prüfen (per while schleife und entsprechender abbruchbedingung)
Ich behaupte ma: das ist sicherlich nicht die beste, schnellste oder geläufigste lösung .. zumindest nicht das ich wüsste.. denn normalerweise würde man mySQL benutzten ^^.
das ganze script mit den klassen/usern würde ich übrigens am ende in ne andere datei auslagern (.php ! ) und includieren...

im übrigen: ich werde jetz keinen Code hier erstellen oder privatunterricht geben ^^ Ich denke mal du willst es ja selbst lernen und dieser post soll nur eine kleine Idee sein.

schönen Gruß
_Tuffy

Antwort 2 von Nessus

Hi,

wie tuffyfant geschrieben hat, einfach mit einer IF-Abfrage den User auslesen, der über die .htaccess sich eingeloggt hat. Die Variable zum Abfragen ist: $PHP_AUTH_USER

HTH

Nessus

Antwort 3 von Christoph R

Danke für die Ansätze!

Habe nun folgendes Script und leider noch ein kleines Problem:


<?php 
$name = $_POST["name"]; 
$pw = $_POST["pw"]; 

$user1_name = "Peter"; 
$user1_pass = "hallo"; 

$user2_name = "Franz"; 
$user2_pass = "dada"; 

$user3_name = "Ulli"; 
$user3_pass = "rtas"; 

$user4_name = "Paul"; 
$user4_pass = "fas"; 

if ($user1_name == "$name" AND $user1_pass == "$pw") 
{ 
header ("Location: datei1.php"); 
} 

if ($user2_name == "$name" AND $user2_pass == "$pw") 
{ 
header ("Location: datei2.php"); 
} 

//das noch mit den beiden anderen 

else { echo "Passwort oder Benutzereingabe falsch"; } 
?> 


Ich möchte jetzt noch zur Sicherheit, daß man nicht aus den temporären Internetfiles den Pfad des Ziels auslesen und das nächste mal direkt aufrufen kann, folgendes einbauen:

this.loadVariables("read.php?zufall="+random(9999),"POST"); 


(Mit dieser Zeile ist es im Falles des Gästebuches so, daß die Datei "gästebuch.php" nicht in den temps auftaucht, sondern eine Datei Namens "zufall..."
So hätte ich das gerne...damit die Passworteingabe nicht übergangen werden kann...)

Dies habe ich bei einem Gästebuch, daß ich aus Flash so aufrufe.

Wenn ich dieses Ziel aber in das Script einbauen möchte, bekomme ich bei all meinen ca. 47 Versuchen Fehlermeldungen bezüglich dieser Zeile.

Kann mir hierzu vielleicht jemand behilflich sein?

Antwort 4 von Tuffyfant

this.loadVariables
?? .. das sieht ja mal extremst nach Flash aus. oh es ist flash !
Aber das Actionscript, was du da schreibst, hat nichts mit der Problematik zu tun, die du hier ansprichst !
Der Code wird nur geschrieben, um zu verhindern, dass die Seite aus dem Browser-Cache gelesen wird! deswegen die Übergabe von "zufall" ....
dass die datei namens "<zufall>.php" heißt, hat nun nichts, aber rein gar nichts mit dem aufruf aus flash zu tun, sondern muss ein php-internes erweitertes script sein.
Aber deine Problematik hier wird in einem anderem Thread angesprochen und es gibt einen entsprechenden link dazu:

http://www.php-faq.de/q/q-datei-download.html

schau dir das mal an. brauchst nur n paar kleine änderungen machen, sofern ich mich net irre.

schönen Gruß
_Tuffy

Antwort 5 von Tuffyfant

achja .. ganz ganz wichtig für dich als flasher :

gewöhn dir mal anstatt
loadVariables bzw. loadVariablesNum mal lieber
LoadVars zu schreiben an (!!!!!!!!!!!!!)

beispiel:


                var myLV = new LoadVars();
myLV.load("read.php?random"+random(9999), "POST");
myLV.onLoad = function() {
                 // nur ein beispiel, dass dann sowas auch geht
};


gruß
_Tuffy

Antwort 6 von Christoph R

@Tuffy

Danke für den Hinweis ;)

Die PHP die mit der Zufallsache aufgerufen wird, hat folgenden Inhalt:


<?
$datei = implode("",(@file("dateiname.html")));
echo "&content=$datei";
?>
 


Was ich nur wissen möchte ist, wie ich das in mein bisher funktionierendes Anmeldescript einbinde...

Da ich auch im AS noch nicht wirklich gut bin, werde ich mir Deinen Hinweis zu Herzen nehmen, falls Du mir mal erläuterst, warum Du das für Sinnvoller hälst.

Danke im Voraus...

Antwort 7 von Tuffyfant

zum AS

loadVariables und loadVariablesNum sind inzwischen deprecated. d.h. veraltet und durch loadVars ersetzt.
nebenbei: loadVariables und loadVariablesNum sind asynchrone vorgänge! was es nicht möglich macht beide auf einmal zu benutzten (gibt ärger) und wie du siehst muss das loadvariables an etwas gebunden sein ( this. ) während du mit loadVars ein vollkommen neues Objekt erstellst, das auch Events besitzt wie onLoad... (jaja, ein ContainerMC kann das auch.. aber was, wenn das onLoad des MCs eintritt, bevor die variablen durch loadVariables/Num geladen werden ?!.. )

falls du mal hilfe in flash/AS brauchst empfehle ich dir mal ein anderes Forum:
Flash Forum
was flash angeht: dort trifft sich,was in deutschland namen hat

zu deinem PHP

leider habe ich DAS, noch nie gemacht. Ist das das ganze Script?
Ich rate jetzt ganz wild in die gegend (du kannst es ja versuchen):
du solltest bei

$datei = implode("",(@file("dateiname.html")));

das "dateiname.html" mal per POST übergeben je nach user. Probiers mal aus...*achselzuck*

schönen Gruß
_Tuffy

Antwort 8 von |-|Andi|-|

<?php
session_start();
#################
# in einer File ablegen und includieren!
$user1 = "Peter";
$pwd1 = "hallo";
$datei1= "peter.php";
$user2 = "Franz";
$pwd2 = "dada";
$datei2= "franz.php";
$user3 = "Ulli";
$pwd3 = "rtas";
$datei3= "ulli.php";
$user4 = "Paul";
$pwd4 = "fas";
$datei4= "paul.php";
####################
$index=0;
if($ac="")
{?>
<form action="datei.php?ac=login" method="post">
<table border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td> Loginname:<br>
<input name="uid" type="text">
<br>
<br>
Passwort: <br>
<input name="pass" type="text"><br><br>
<input name="" type="submit" value="Abschicken"></td>
</tr>
</table>
</form>
<?
}
else
{
if(empty($uid) or empty($pass))
{
echo"Alles ausfüllen";
$login="notok";
}
else
{
$i=1;
while($i<5)
{
if($uid=="$user$i" && $pass=="$pwd$i"){$login="ok"; $index=$i;}else{$login="not"; echo"Logindaten sind falsch!";}
$i++;
}
}
}
if($login=="ok")
{
session_register(´uid´);
echo "<meta http-equiv="refresh" content="0;URL=$uid$index.php">
Sie werden sofort weitereleitet.....";
}
?>

jetzt noch in jede Userdatei:

session_start(´uid´);
if(!session_is_registered(uid))
{
die(" Sie müssen sich einloggen. Link zur Loginseite");
}

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: