Hallo!
Habe mir soeben ein Registrierungsformular erstellt.
Diese Daten werden per "POST" an die Datei registrierung.php geleitet.
Dort werden die Daten dann verarbeitet und in eine MySQL-DB geschrieben.
Nun möchte ich jedoch ein Aktivierungsscript einbauen, wie nun ersichtlich:
Dadurch wird mir schonmal eine eMail mit einem Aktivierungslink zugeschickt.
Nun soll nach dem Klicken des Linkes, der Prozess in der Datei reg-
aktivieren.php weiter bearbeitet werden. Diese Datei sieht wie folgt aus:
Nun erstelt sich zwar in der DB der Eintrag mit den normalen Benutzerdaten,
es wird aber kein Aktivierungscode o.ä. ergänzt. Ein Klick auf den
Aktivierungslink und es erscheint eine weiße Seite, ohne Fehlermeldung.
Meine Vermutung ist nun diese, dass das Aktivierungsscript keinen Bezug
auf den Datensatz des erstellten Users hat. Hier finde ich aber auch
keine Möglichkeit, wie ich diesen Bezug herstellen kann.
Vielleicht kann mir einer einen Tipp geben, wo sich der Fehler befindet?
Grüße, Dsimon24
Habe mir soeben ein Registrierungsformular erstellt.
Diese Daten werden per "POST" an die Datei registrierung.php geleitet.
Dort werden die Daten dann verarbeitet und in eine MySQL-DB geschrieben.
Nun möchte ich jedoch ein Aktivierungsscript einbauen, wie nun ersichtlich:
PHP-Code:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Registrierung</title>
<link rel="stylesheet" type="text/css" href="/finanzmanagementplus/css/ss.css" />
</head>
<body>
<?php
$verbindung = mysql_connect("localhost", "ZENSIERT", "ZENSIERT")
or die ("Fehler im System");
mysql_select_db ("admin_vermanag")
or die ("Verbindungserror");
$vorname = $_POST["vorname"];
$nachname = $_POST["nachname"];
$emailadr = $_POST["emailadr"];
$username = $_POST["username"];
$passwort = $_POST["passwort"];
$passwort_wdh = $_POST["passwort_wdh"];
if ($passwort == $passwort_wdh)
{
if ($vorname == "" or $nachname == "" or $emailadr == "" or $username == "" or $passwort == "")
{
echo "Es wurden nicht alle Felder vollstaendig ausgefuellt...";
}
else
{
$data_add = "INSERT INTO benutzer
(Vorname, Nachname, eMailAdresse, Username, Passwort)
VALUES
(
'$vorname',
'$nachname',
'$emailadr',
'$username',
'$passwort'
)";
$eintragen = mysql_query($data_add);
echo "Speicherung erfolgt";
}
}
else
{
echo "Die angegebenen Passwörter stimmen nicht überein...";
}
mysql_close($verbindung);
?>
<a href="add_betankung.php">
<div align="center">
<img src="/finanzmanagementplus/images/done_button.jpg"
width="100"
height="90"
alt="Weitere Barausgaben erfassen"
title="weitere Barausgaben" />
</a> </div> <br> <hr />
<!--Bestätigungsmailscript-->
<?php
$DatabaseHost = "localhost";
$DatabaseUser = "ZENSIERT";
$DatabasePassword = "ZENSIERT";
$Database = "admin_vermanag";
$TableAktivierung = "benutzer";
$Absender = "david.simon@email-simon.de";
if($_REQUEST['Send'])
{
$DatabasePointer = mysql_connect
(
$DatabaseHost,
$DatabaseUser,
$DatabasePassword
);
mysql_select_db
(
$Database,
$DatabasePointer
);
$_REQUEST['emailadr'] = mysql_real_escape_string($_REQUEST['emailadr']);
$Aktivierungscode = rand(1, 99999999);
mysql_query("INSERT INTO $benutzer
(Aktivierungscode, eMailAdresse, Aktiviert)
VALUES ('$Aktivierungscode', '".$_REQUEST['emailadr']."', 'Nein')", $DatabasePointer);
$ID = mysql_insert_id();
mail($_REQUEST['emailadr'], "Registrierung abschließen",
"Hallo,\n\num die Registrierung abzuschließen, klicken Sie bitte auf den folgenden Link:
\n\nhttp://www.finanzmanagement-plus.de/fahrzeugmanagement/verbrauchsmanager/reg-aktivieren.php?ID=$ID&Aktivierungscode=$Aktivierungscode",
"FROM: $Absender");
echo"Um die Registrierung abzuschließen,
rufen Sie Ihr E-Mail-Postfach ab und klicken Sie auf den
Aktivierungslink in der soeben an Sie versandten E-Mail.";
}
else
{
?>
<form action="" method="post">
eMail: <input maxlength="255" name="emailadr" type="text">
<br><input name="Send" type="submit" value="Absenden">
</form>
<?php
}
?>
<!--Bestätigungsmailscript-->
</body>
</html>
Nun soll nach dem Klicken des Linkes, der Prozess in der Datei reg-
aktivieren.php weiter bearbeitet werden. Diese Datei sieht wie folgt aus:
PHP-Code:
<?php
$DatabaseHost = "localhost";
$DatabaseUser = "ZENSIERT";
$DatabasePassword = "ZENSIERT";
$Database = "admin_vermanag";
$TableAktivierung = "benutzer";
if($_REQUEST['ID'] && $_REQUEST['Aktivierungscode'])
{
$DatabasePointer = mysql_connect($DatabaseHost,
$DatabaseUser, $DatabasePassword);
mysql_select_db($Database, $DatabasePointer);
$_REQUEST['ID'] = mysql_real_escape_string($_REQUEST['ID']);
$_REQUEST['Aktivierungscode'] = mysql_real_escape_string($_REQUEST['Aktivierungscode']);
$ResultPointer = mysql_query("SELECT ID FROM $Aktivierung_done
WHERE ID = '".$_REQUEST['ID']."' AND Aktivierungscode
= '".$_REQUEST['Aktivierungscode']."'", $DatabasePointer);
if(mysql_num_rows($ResultPointer) > 0)
{
@mysql_query("UPDATE $Aktivierung_done SET Aktiviert = 'Ja'
WHERE ID = '".$_REQUEST['ID']."'", $DatabasePointer);
echo"Vielen Dank für Ihre Registrierung.
Der Aktivierungsprozess ist nun abgeschlossen.";
}
}
?>
es wird aber kein Aktivierungscode o.ä. ergänzt. Ein Klick auf den
Aktivierungslink und es erscheint eine weiße Seite, ohne Fehlermeldung.
Meine Vermutung ist nun diese, dass das Aktivierungsscript keinen Bezug
auf den Datensatz des erstellten Users hat. Hier finde ich aber auch
keine Möglichkeit, wie ich diesen Bezug herstellen kann.
Vielleicht kann mir einer einen Tipp geben, wo sich der Fehler befindet?
Grüße, Dsimon24
Kommentar