Loginformular

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.

Wie schreib ich das denn um, dass das Script keine Mailaktivierung braucht?

Du meinst es wird folgendes Ausgegeben?

Dass das ausgegeben wird wundert ja auch nicht. Schließlich handelt es sich dabei um ein einfaches echo nach dem mail() Befehl.
Die Ausgabe erfolgt, unabhängig davon, ob mail() erfolgreich war oder nicht.
Eine bessere Methode wäre etwas in der Art:

$res = mail(.....); if($res) { echo "Du hast dich erfolgreich registriert! Vor wenigen Sekunden wurde eine Mail mit Aktivierungslink an deine E-Mail Adresse gesendet!"; } else { echo "Es ist ein Fehler beim versenden aufgetreten."; }

Ok, aber sag mal , warum bekomm ich den überhaupt gar keine email? liegt das an bplaced oder an dem script ?