5 Stimmen

Probleme bei der PHP-Kontoaktivierung

Ich habe ein Anmeldesystem für meine Website geschrieben. Wenn der Benutzer sich anmeldet, sendet das System einen Aktivierungslink per E-Mail an die vom Benutzer angegebene E-Mail-Adresse. Der Link enthält zwei Parameter, E-Mail und Schlüssel. Der E-Mail-Parameter enthält die E-Mail-Adresse des Benutzers, und der Schlüssel-Parameter enthält den Registrierungscode, damit die Registrierung überprüft und von "ausstehend" in "bestätigt" geändert werden kann. Die Aktivierungsseite soll die Spalte "Status" aus der Zeile abrufen, in der der Parameter "E-Mail" in der Spalte "E-Mail" festgelegt ist. Aus irgendeinem Grund entscheidet das Skript, dass jeder Link gültig ist, und versucht, den Status des Kontos zu aktualisieren, unabhängig davon, ob er existiert oder nicht.

Hier ist mein Code:

<?php

$email = $_GET['email'];
if($email == "") {
  header("Location: http://www.zbrowntechnology.info/yard/register.php?message=Invalid Activation Link!");
  exit;
}
$key = $_GET['key'];
if($key == "") {
  header("Location: http://www.zbrowntechnology.info/yard/register.php?message=Invalid Activation Link!");
  exit;
}

$con = mysql_connect("HOST", "USER", "PASS") or die(mysql_error());
mysql_select_db("zach_yardad", $con) or die(mysql_error());
$query1 = "SELECT `Status` FROM Accounts WHERE `Email`='".mysql_real_escape_string($email)."' AND `Status`='".mysql_real_escape_string($key)."'";
$result1 = mysql_query($query1) or die(mysql_error());
if(mysql_num_rows($result1) <= 0) {
  header("Location: http://www.zbrowntechnology.info/yard/register.php?message=Invalid Activation Link!");
 exit;
} else {
  $query = "UPDATE Accounts SET `Status`='Confirmed' WHERE `Email`='$email'";
  mysql_query($query) or die(mysql_error());
  header("Location: http://www.zbrowntechnology.info/yard/login.php?message=Registration Complete!");
  exit;
}

?>

Hier ist ein gültiger Aktivierungslink:

http://www.zbrowntechnology.info/yard/activate.php?email=zach@zbrowntechnology.com&key=2772190956485245

Es aktiviert dieses Konto, indem es dem Link folgt, leitet aber nach der Aktivierung zur Anmeldeseite weiter, wenn der Link nicht gültig ist.


EDIT。

Hier ist das Ergebnis der Abfrage DESCRIBE `Accounts` :

First Name  varchar(65) NO      NULL     
Last Name   varchar(65) NO      NULL     
Email   varchar(100)    NO      NULL     
Username    varchar(65) NO      NULL     
Password    varchar(65) NO      NULL     
Status  varchar(65) NO      NULL

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X