PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Account Aktivierung funktioniert nicht



Jürgen
28.11.2014, 14:48
Hallo,
Ich habe mein vms auf ne sudomain geschubst und "fast" alle Tabellen in der DB für ein Neustart geleert.
Nun ist es so dass
die Anmeldung funktioniert (Daten werden in die DB geschrieben)
Die email kommt an
http://casino.cockie.de/?content=/intern/aktivieren&ak=e3d9780f60fab89c10951f88dafe8640
Die Aktivierung steht auch in der Tabelle vms_aktivierung e3d9780f60fab89c10951f88dafe8640 (http://casino.cockie.de/?content=/intern/aktivieren&ak=e3d9780f60fab89c10951f88dafe8640)
Nach klick auf den Link kommt auch
Die Aktivierung Deines Accounts bei Milliardenzocker war erfolgreich, Du kannst Dich nun einloggen.

Und hier hängst, der User/Account wird nicht aktiviert (bleibt im Admin auf gelb, in der DB auf 0)
php Teil aus der anmelden.php

<?
// Variabel vordefinieren!
if (!isset($_POST['anmelden'])) $_POST['anmelden'] = "";
if (!isset($_POST['nickname'])) $_POST['nickname'] = "";
if (!isset($_POST['nachname'])) $_POST['nachname'] = "";
if (!isset($_POST['vorname'])) $_POST['vorname'] = "";
if (!isset($_POST['emailadresse'])) $_POST['emailadresse'] = "";
if (!isset($_POST['passwort_1'])) $_POST['passwort_1'] = "";
if (!isset($_POST['passwort_2'])) $_POST['passwort_2'] = "";
if (!isset($_POST['uid_passwort'])) $_POST['uid_passwort'] = "";
if (!isset($_POST['uid'])) $_POST['uid'] = "";
if (!isset($_POST['agb'])) $_POST['agb'] = "";
if (!isset($_POST['newsletter'])) $_POST['newsletter'] = "0";
if (!isset($_POST['paidmails'])) $_POST['paidmails'] = "0";
if (!isset($error)) $error = "";
if (!isset($anmeldeok)) $anmeldeok = "";
if (!isset($ak)) $ak = "";

// Variabeln vallidieren
$_POST['anmelden'] = filter_var($_POST['anmelden'], FILTER_SANITIZE_EMAIL);
$_POST['nickname'] = filter_var($_POST['nickname'], FILTER_SANITIZE_EMAIL);
$_POST['vorname'] = filter_var($_POST['vorname'], FILTER_SANITIZE_EMAIL);
$_POST['nachname'] = filter_var($_POST['nachname'], FILTER_SANITIZE_EMAIL);
$_POST['emailadresse'] = filter_var($_POST['emailadresse'], FILTER_SANITIZE_EMAIL);
$_POST['passwort_1'] = filter_var($_POST['passwort_1'], FILTER_SANITIZE_EMAIL);
$_POST['passwort_2'] = filter_var($_POST['passwort_2'], FILTER_SANITIZE_EMAIL);
$_POST['uid_passwort'] = filter_var($_POST['uid_passwort'], FILTER_SANITIZE_EMAIL);
$_POST['uid'] = filter_var($_POST['uid'], FILTER_SANITIZE_NUMBER_INT);
$_POST['agb'] = filter_var($_POST['agb'], FILTER_SANITIZE_EMAIL);
$_POST['newsletter'] = filter_var($_POST['newsletter'], FILTER_SANITIZE_NUMBER_INT);
$_POST['paidmails'] = filter_var($_POST['paidmails'], FILTER_SANITIZE_EMAIL);

if ($_POST['anmelden'] == "Anmelden") {

// SecVMS change begin
$_GET['nachname'] = addslashes ($_GET['nachname']);
$_GET['vorname'] = addslashes ($_GET['vorname']);
$_POST['nickname'] = htmlspecialchars ($_POST['nickname']);
// SecVMS change end


$schnittstelle = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_schnittstelle LIMIT 1")) or die("Userinfo");
$tag = strtotime("".date("m")."/".date("d")."/".date("Y")." 0 hours 0 minutes 0 seconds");
$s_verbrauch = mysql_num_rows(db_query("SELECT * FROM ".$db_prefix."_schnittstelle_anfragen WHERE zeit='".$tag."' and uid='0'"));
// Auf Eingabefehler prüfen
if(!$_POST['nachname'] || !$_POST['vorname'] || !$_POST['emailadresse'] || !$_POST['passwort_1'] || !$_POST['passwort_2'] || !$_POST['nickname']) $error .= 'Bitte fülle alle benötigten Felder aus!<br>';

// Pruefen, ob man sich mit der eMail-Domain anmelden darf
$denied = explode(';', $pageconfig['denied_domains']);
foreach ($denied AS $nr => $emaildomain) if (($nr < (count ($denied)-2) || strlen ($emaildomain) >= 5) && strpos ($_POST['emailadresse'], $emaildomain) !== FALSE) $error .= 'E-Mail-Adressen mit der Domain "<i>'.$emaildomain.'</i>" sind bei uns nicht erlaubt!<br>';

if(!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,4}$",$_POST['emailadresse'])) $error .= 'Der Emailsyntax ist falsch!<br>';
if ($_POST['passwort_1'] != $_POST['passwort_2']) $error .= 'Passwörter stimmen nicht überein!<br>';
if (strlen($_POST['passwort_1']) < 8) $error .= 'Passwortlänge muss min. 8 Zeichen haben<br>';
if (ereg("[^0-9]", $_POST['uid'])) $error .= 'Bei der Klamm Id nur Zahlen!<br>';
if ($_POST['agb'] != "ja") $error .= 'Du musst die AGBs bestädigen!<br>';
if ($schnittstelle['anfragen_tag'] != 0 and $schnittstelle['anfragen_tag'] <= $s_verbrauch) $error = 'Die Schnittstellenanfragen sind für heute verbraucht!!!<br>';

// User mit der Datenbank abgleichen
if (!$error) {
$nickname = ucfirst($_POST['nickname']);
$nickname_check =db_query ("SELECT `nickname` FROM ".$db_prefix."_userdaten WHERE nickname='".$nickname."'");
$user_check = db_query ("SELECT `uid` FROM ".$db_prefix."_kontodaten WHERE uid='".$_POST['uid']."'");
$mail_check = db_query ("SELECT `emailadresse` FROM ".$db_prefix."_emaildaten WHERE emailadresse='".$_POST['emailadresse']."'");
$black_check= db_query ("SELECT * FROM ".$db_prefix."_userblacklist WHERE uid='".$_POST['uid']."' and zeit >='".time()."'");
$sperre = mysql_fetch_array($black_check);
if ($sperre['zeit'] != 99999999999) {
$sperrtext = 'Du bist für eine Neuanmeldung noch bis <b>'.date("d.m.Y - H:i:s",$sperre['zeit']).'</b> gesperrt!<br>';
} else {
$sperrtext = '<b><i>Du bist für diese Webseite komplett gesperrt!</i></b>';
}
if (mysql_num_rows($user_check)) $error .= 'Du bist bereits bei uns angemeldet!<br>';
if (mysql_num_rows($mail_check)) $error .= 'Diese Emailadresse ist schon im System!<br>';
if (mysql_num_rows($black_check)) $error = $sperrtext;
if (mysql_num_rows($nickname_check)) $error .='Der Nickname ist schon vergeben!<br>';
}


// User eintragen
if (!$error) {
if ($_POST['newsletter'] == 0 and $_POST['paidmails'] == 0) $mailstatus = 0;
if ($_POST['newsletter'] == 1 and $_POST['paidmails'] == 0) $mailstatus = 1;
if ($_POST['newsletter'] == 0 and $_POST['paidmails'] == 1) $mailstatus = 2;
if ($_POST['newsletter'] == 1 and $_POST['paidmails'] == 1) $mailstatus = 3;
//Passwort umstellen auf sha512
$pw = hash("sha512", $_POST['passwort_1']);
db_query("INSERT INTO ".$db_prefix."_kontodaten (uid,passwort,status,hinweis,kontostand) VALUES ('','".$pw."','0','','0')");
db_query("INSERT INTO ".$db_prefix."_emaildaten (uid,emailadresse,freigabe_fuer) VALUES ('','".$_POST['emailadresse']."','".$mailstatus."')");
db_query("INSERT INTO ".$db_prefix."_userdaten (uid,nickname,vorname,nachname,angemeldet_seit) VALUES ('','".$nickname."','".$_POST['vorname']."','".$_POST['nachname']."','".time()."')");
$ws = db_query("SELECT * FROM ".$db_prefix."_werberdaten WHERE uid='".$_POST['uid']."'");
db_query("INSERT INTO ".$db_prefix."_werberdaten (uid,werber,umsatz,zuordnungszeit) VALUES ('','".$_SESSION['werber']."','0','".time()."')");
$ak = md5($_POST['uid'].''.time());
$auslesen_userdaten = mysql_fetch_array(db_query("SELECT uid FROM ".$db_prefix."_userdaten WHERE nickname='".$nickname."'"));
db_query("INSERT INTO ".$db_prefix."_aktivierungen (uid,ak) VALUES ('".htmlspecialchars($auslesen_userdaten['uid'])."','".$ak."')");
$email_message = 'Hallo, '.$_POST['nickname'].'
Du hast Dich soeben erfolgreich bei '.$seitenname.' angemeldet.

Bitte aktiviere jetzt Deinen Account, klicke dazu bitte auf den
Aktivierungslink: '.$domain.'/?content=/intern/aktivieren&ak='.$ak.'

----------------------------------------------------------
Nickname: '.$_POST['nickname'].'
Passwort: '.$_POST['passwort_1'].'
----------------------------------------------------------

Nach der Aktivierung kannst Du dich sofort einloggen und bei
uns teilnehmen.

Mit freundlichen Grüßen
Das '.$seitenname.' Team
';
@mail($_POST['emailadresse'], "$seitenname Accountaktivierung", $email_message, "FROM: $seitenname <$betreibermail>");
$anmeldeok = "true";
}

}

if ($error){
head("Anmeldefehler");
echo '<font color="#cc0000">'.$error.'</font>';
foot();
}
?>

aktivieren.php

<?
if (!isset($_GET['ak'])) $_GET['ak'] = "";
$_GET['ak'] = addslashes ($_GET['ak']);

$aktivierung = db_query('SELECT * FROM '.$db_prefix.'_aktivierungen WHERE ak = "'.$_GET['ak'].'" LIMIT 1');

if (mysql_num_rows($aktivierung)) {
$aktivieren = mysql_fetch_array($aktivierung);
db_query("UPDATE ".$db_prefix."_kontodaten SET status = '1' WHERE uid = '".$aktivieren['uid']."' AND status = '0' LIMIT 1");
db_query("DELETE FROM ".$db_prefix."_aktivierungen WHERE ak = '".$_GET['ak']."' LIMIT 1");
?>

<?head("$seitenname - Accountaktivierung!");?>
Die Aktivierung Deines Accounts bei <?=$seitenname;?> war erfolgreich,
Du kannst Dich nun einloggen.<br>
<br>
Solltest Du Fehler finden dann sende mir bitte eine Email
an <a href="mailto:<?=$betreibermail;?>" target="_blank"><?=$betreibermail;?></a><br>
<br>
Ich wünsche Dir nun viel Spaß und viel Glück!<br>
<br>
Mit freundlichen Grüßen<br>
Das <?=$seitenname;?> Team<br>
<?foot();?>

<?
} else {
?>

<?head("$seitenname - Accountaktivierung [Code falsch]!");?>
Die Aktivierung Deines Accounts bei <?=$seitenname;?> ist fehlgeschlagen,
bitte prüfe nochmals den Aktivierungslink oder fordere den Link neu an.<br>
<br>
Solltest Du Fehler auf unserer Webseite finden dann sende uns bitte eine Email
an <a href="mailto:<?=$betreibermail;?>" target="_blank"><?=$betreibermail;?></a><br>
<br>
Mit freundlichen Grüßen<br>
Das <?=$seitenname;?> Team<br>
<?foot();?>

<?
}
?>



Einzigster Fehler den ich bekomme ist nach dem absenden von dem Anmeldeformular
Deprecated: Function eregi() is deprecated in /var/www/web280/html/milliardenzocker/content/intern/anmelden.php on line 52

Deprecated: Function ereg() is deprecated in /var/www/web280/html/milliardenzocker/content/intern/anmelden.php on line 55

Kraemer84
28.11.2014, 16:27
Die Funktion eregi ist eine veraltete Php Funktion. Die neue Funktion heißt jetzt preg_match.

Hier auch nachzulesen klick (http://takien.com/blog/2009/10/21/how-to-fix-function-eregi-is-deprecated-in-php-5-3-0/)

Jürgen
28.11.2014, 17:26
Das habe ich schon nachgeholt, danke.

Lösung zu meinem Problem, es wurden unterschiedliche ID´s vergeben, ein nochmaliges leeren der Tabellen hats dann gebracht.