account nach klick in mail auf confirm-link freischalten

M@rk

Mitglied
Hallo Leute,

ich bin gerade dabei einen Newsletter zu scripten, geht auch alles soweit. Was mir jetzt noch fehlt ist Folgendes. Ein Benutzer meldet sich bei meinem Newsletter an und bekommt eine mail mit einem Bestätigungslink. Wenn er den anklickt soll folgendes script den freischaltcode in meiner MySQL-Datenbank suchen und falls er vorhanden ist den Benutzer für den Newsletter freischalten. Nur leider ist es montan noch so, das die Auswertung nicht funtioniert und ich komm nicht drauf warum. Die Daten aus der mail werden richtig übergeben...
Hier mein script:


PHP:
<?php 
include('config.php'); 
$_GET['email'] = $email; 
$_GET['confirm_code'] = $confirm_code; 
//echo $email; 
echo $confirm_code; 

$abfrage="SELECT count(confirm_code) as valid FROM $db_table WHERE  name = '".$confirm_code."'"; 
$result = mysql_query($abfrage, $db); 
$liste = mysql_fetch_array($result); 
$count = $liste['valid']; 
echo $liste; 
echo $count; 
if ( $count == 0 ) 
    echo 'Nope'; 
else 
    echo 'Yep'; 
?>
 
a) wo kommt die Variable "$db_table" her? (ich denke config.php?)
b) warum count - du kannst auch via mysql_num_rows die gefunden Datensätze zählen (wobei es nie mehr als einer sein dürfte)
c) echo $liste bringt nix - außer halt "Array"
d) fehlen dir beim IF die {}
 
Sebastianus, die IF-Klammern sind nicht zwingend erforderlich wenn die Anweisung nicht weiter als eine Zeile unter dem If (...) geht. Ansonsten muss halt wie gewöhnlich ein block mit den Klammern definiert werden. Also daran kann es nicht liegen.

Bommi
 
Jetzt wo du es sagt, glaube ich sowas auch schonmal gehört zu haben ;) - aber man gewöhnt sich halt an alles und schreibt die Dinger sonst immer!
 
Hi Ihr,

a) Die $db_table kommt aus der config.php
b) mit count will ich auswerten "0" der "1"
c) Das mit dem echo habe ich nur zum Anschauen was in den Varablen steht.

Ich muß dazusagen, dass ich erst in der Lernphase bin und mit php erst begonnen habe...


Gruß M@rk
 
Ja ich schreib auch schon immer bei einzeiligen If-Anweisungen die klammern mit ala If(isset($var)) {anweisung...}

@ M@rk Gibt es eine Fehlermeldung? Könntest du uns mal die config.php zeigen?

Bommi
 
aus der config.php wird die tabelle und die zugangsdaten zur MySQL includet. Die ist richt, denn ich verwende sie schon mehrmals in meinem newsletter.

Wenn ich den link anklicke kommt auch keine fehlermeldung nur egal was ich ich übergebe sagt, bekomme ich immer als echo nope...

Hier was ich momentan noch anzeige:

f9e01c4b95bbc28a56708af250a986b7Array0Nope


Also egal ob der hash-Wert, den ich als code übergegbe in meiner Tabelle existiert oder nicht, es kommt immer nope...


Gruß M@rk
 
Hi Ihr,

der fehler war, daß ich meiner Tabelle nach name und nicht nach dem freichschaltcode gesucht habe... wenn man halt davor sitzt sieht man manchmal vor lauter bäume den wald nicht mehr. Habe es jetzt geändert und ich bekomme das richtige Ergebnis! Danke an alle...


Gruß M@rk
 
Zurück