Loginformular

Hallo, Leute

Habe folgendes Problem:

Ich habe ein Loginscript wo in der login.php die variable $username steht.
Wenn ich jetzt eine neue unabhängige datei erstellen möchte in der ein Banner angezeigt wird mit dem Link www.123.de/ref=$username aus login.php, wie kann ich die $username aus der login.php auf allen anderen Seite einbinden? Ich will ja nicht meine ganze Seite in die Login.php einbauen.

Weiß einer, wie man das hinkriegt? Also dass die ‘.$username.’ aus login auf allen anderen seiten funktioniert? Momentan ist es so, dass wenn ich z.B Hallo ‘$.username.’ in login schreibe, wird Hallo “Peter” ausgegeben. Aber in neueseite.php steht dann nur Hallo ‘$.username.’.

Ich hab schon bei google gesucht aber irgendwie nichts gefunden.

Wäre sehr nett, wenn mir einer helfen könnte.

Gruß

Steven

Suchst du vielleicht include/require?

Ich habs mit include versucht, aber dann wird das gesamte login.php mit den formularelementen ausgegeben.

ich bräuchte sowas wie ne settings.php zum includieren, aber ich hab keine ahnung, wie ich das anstellen soll. ich poste mal die dateien.

Bitte nicht meckern wegen formatierung usw.Ist alles nur ein versuch

[code] <?php

$username = $_POST[“username”];
$passwort = $_POST[“password”];
$passwort = md5($passwort);
$log=0;

$userdatei = fopen (“user.txt”,“r”);
while (!feof($userdatei))
{
$zeile = fgets($userdatei,500);
$userdata = explode("|", $zeile);
$gettemplate = ’

Workshop Webtemplates selbst erstellen

Platz für ein Banner oder Logo

Hallo ‘.$username.’ Heute schon Geld gesammelt ? :wink: <!------------------ LINKS ODER HINWEISE ---------------------->

Startseite
Anmeldung
Einloggen
0.40€ Aktionen
0.50€ Aktionen
0.20€ Aktionen
Impressum
Kontakt
 
 

 

Platz für News

Platz für Ihr Copyright

'; if ($userdata[0]==$username and $passwort==trim($userdata[1])) { echo 'wer-kennt-wen'; echo $gettemplate; $log = 1; }

}

fclose($userdatei);

if ($log==0)
{
echo “Zugriff verweigert <a href=“login.html”>Zurück”;
}

?>[/code]

Wenn ich in der Login.php alles über echo $gettemplate ausgebe, dann wird die id übergeben.

Hab ich aber eine neue seite wird sie nicht übergeben. Problem ist ich kanns nicht includieren
Ich kriegs nich auf die reihe.

Und ich habe keine Ahnung, was für ein konkretes Problem du beim Erstellen und Einbinden einer solchen hast.

Ich kriegs nicht hin. die variablen da rauszusuchen und mir ne settings.php zu erstellen.
und per include funktioniert das irgendwie nicht.

Kannst du mir hier vllt schreiben, wie du das machen würdest anhand meines code beispiels?

Ich hab dir mal nen account erstellt.

User: Chris
passwort:123456

stewn.de/commi/login.html
dann wird login.php ausgegeben mit inhalt. und der banner hat subid=Chris.

rufst du nun aber stewn.de/commi/start.php auf, steht oben ‘.$username.’ und nicht chris.

Ich beziehe mich auf deine 1.Anfrage und vermute, du suchtst Sessions.

ich habe ebenfalls ein Login mit sessions.
aber dort wird auch die $username nicht an alle anderen pages weitergegeben.

ich weiß nicht, was oder wie ich es noch versuchen soll.

Schonmal dieses Tutorial durchgearbeitet? Dort wird auch explizit erklärt, wie man ein Loginsystem erstellt.

Wird dort auch erklärt wie man seine Dateien schützt?
stewn.de/commi/user.txt

Das mit der user.txt ist nur halb so wild ^^ ist eh nur für ein test :smiley:

Das einer von euch das findet und hier erzählt war mir klar :smiley:

Wieso? Ist doch alles MD5-gehashed :ps: duckundrenn

In dem Tutorial werden die Nutzerdaten in einer Datenbank gespeichert, damit ist es nicht mehr sooo einfach an die Daten zu kommen.

Und @Stewn: Schau dir auch mal an was man mit .htaccess-Dateien alles machen kann (Google).

Danke für eure mühe, jedoch ist das alles nicht das was ich brauche.
ich brauch ne art Mitgliederbereich, das die id des users an einen reflink hängt. für ein Paid4 Portal.
Und ich kriegs einfach nicht auf die Reihe >.<

Naja, es gibt ne reihe Dinge, die dort anzuprangern sind. z.B. das ganze Script.
Aber da es ja nur ein „Test“ ist, werde ich da nicht weiter drauf eingehen.

Was dir zu fehlen scheint sind ein paar Kenntnisse der Eigenschaften von HTTP, welche sich auf die Möglichkeiten von PHP niederschlägt.
So ist es Fakt, dass jeder Request, sprich, dass jeder Klick auf einem Link auf einer Seite von jedem vorhergehendem und nachfolgendem Request unabhängig ist. Dies nennt man Zustandslosigkeit.
Das führt dazu, dass Variablen, die in einem PHP Script gesetzt wurden, nach dem aufrufen eines neuen Links (auch wenn der Link zum selben PHP Script führt) wieder zurückgesetzt sind.
Zu wissen wie HTTP funktioniert ist also eine enorme Hilfestellung um mit PHP richtig klar zu kommen.

Um diese Zustandslosigkeit zu umgehen hat man sich etwas ausgedacht.
Die übliche Methode, um Daten über mehrere Seiten verfügbar zu machen ist mit hilfe von „Sessions“.
Die Methodik ist fast immer die selbe. Der Server sendet einen oder mehrere Cookies an den Browser, die in der Regel nur eine (vielleicht zufällig generierte) Session-ID enthält.
Der Browser sendet diesen Cookie dann immer mit beim Besuch der Seiten, und der Server ist somit in der Lage jeden Request einem Satz an Daten, die Serverseitig liegen, anhand der Session-ID eindeutig zuzuordnen.

Das klingt alles ein bisschen kompliziert, aber dafür gibt es von PHP hauseigene Funktionen, die diese Technik für dich übernehmen, die du in dem Link zum Tutorial von zvn findest

Ich hab jetzt mal was versucht.
klappt soweit auch, nur ich bekomme keine aktivierungsmail, woran kann das liegen?

[code]<?
include (“config.inc.php”);
//include die config datei
?>

Registrieren
Username:
Passwort:
Passwort wdh:
E-Mail Adresse:
 
<? if (isset($_POST["submit"])){ //wenn submit gedrückt $username=$_POST["username"]; //speichere das feld username in variable $passwort=md5($_POST["passwort"]); //speichere passwort und verschlüssel es $passwort_wdh=md5($_POST["passwort_wdh"]); //das gleiche mit der Wiederholung nochmal $email=$_POST["email"]; //email -||- ^^ $register_code = md5(time()); //erstelle registrierungscode für den aktivierungslink (timestamp it md5 verschlüsselt)

if ($username == “” or $passwort == “d41d8cd98f00b204e9800998ecf8427e” or $email == “”){
echo “Du hast nicht alle Felder ausgefüllt!”;
//wenn username, passwort oder email leer gib error aus
}
elseif ($passwort != $passwort_wdh){
echo “Das eingegebene Passwort stimmt nicht mit der Wiederholung überein!”;
//wenn Passwort nicht gleich Wiederholung gib error aus
}
else {
//sonst…
mysql_query(“INSERT INTO benutzerdaten (username, passwort, email, register_code) VALUES (’$username’, ‘$passwort’, ‘$email’, ‘$register_code’)”);
//speichere die daten in der Datenbank

mail("$email",“Deine Anmeldung bei xxx”,“Hallo $username! \n\n Vielen Dank, dass du dich in der Community von xx regsitriert hast. Um deine Anmeldung abzuschließen klicke bitte auf folgenden Aktivierungslink: \n\n http://stewn.de/test/aktivieren.php?user=".$username."&code=".$register_code."","From: Mail.Steven_Sonntag@freenet.de automail@deineseite.de”);
//und sende eine mail mit dem bestätigungslink

echo “Du hast dich erfolgreich registriert! Vor wenigen Sekunden wurde eine Mail mit Aktivierungslink an deine E-Mail Adresse gesendet!”;
//und zu guter letzt gib eine meldung aus, dass die registrierung erfolgreich war
}
}
?>

[/code]

Die E-Mail brauchst du doch sowieso nicht.
Bei dem schwachen Aktivierungslink braucht es nicht mehr als ein paar versuche um sein Konto ohne öffnen der Mail zu aktivieren.
Außerdem sehe ich keinerlei maßnahmen um gegen SQL-Injections und ähnliches vorzugehen…

Sonst irgendwelche Fehlermeldungen?
error_reporting() aktiviert?
evt mal mail() rückgabewert erfragen.
de.php.net/manual/de/function.mail.php

[quote]Gibt TRUE zurück, wenn die E-Mail erfolgreich für den Versand akzeptiert wurde, sonst FALSE.
Dass eine E-Mail für den Versand akzeptiert wurde, bedeutet nicht, dass sie auch wirklich den gewünschten Empfänger erreichen wird.[/quote]

mfg Balmung

Das hasse ich ja an diesem Forum: Man Fragt woran das liegt, aber man bekommt nur andere Sachen zu hören. Ich wollte nur wissen, woran es liegt und nichts anderes.

Hat also jemand eine Idee?

Ich habe meinen Beitrag editiert. So spontan erkenne ich im Script keinen Fehler.

Siehst du, das „hasse“ ich an Foren, nicht nur diesem, sondern allgemein.

Ne, da steht erfolgreich blah blah. e-mail wurde versendet.