Neuigkeiten:

still alive...

Hauptmenü

Neuanmeldung mit newslettereintrag

Begonnen von taktgeber, 10. Oktober 2004, 18:07:47

Vorheriges Thema - Nächstes Thema

taktgeber

Ich versuche gerade bei der neuanmeldung eine checkbox einzubauen, mit der man dann wählen kann ob man in den newsletterverteiler aufgenommen wird oder nicht.
Ich bin dann auf den Entschluss gekommen das ich  absolut keine Ahning habe wie ich das umsetzen soll.
Kann mir jemand helfen?

taktgeber

Ich habe mal versucht zsammen zu basteln, ist aber bis jetzt ohne erfolg


 \">EMail:
 \">\">
 
\";
  }
}
 
//Anmeldung:
if ($_POST[\'email\'] != \"\" || $_POST[\'action\'] == \"Anmelden\") {
//Email ungültig
if ( isemail($_POST[\'email\']) == 0 ) {
 msgBox(\"Email Adresse ungültig\");
}
//Email gültig
else {
  //IID generieren
  srand((double)microtime()*1000000);
  $iid = md5(uniqid(rand()));
  $jetzt=time();
  $counter = mysql_query(\"Select Count(*) as total From $tab_email Where email = \'\".$_POST[\'email\'].\"\'\");
  $eintraege = mysql_fetch_array($counter);
  if ( $eintraege[\'total\'] == 0 ) {
     //Neue speichern
  $sqlbefehl  =  \"Insert Into $tab_email
                 (email,iid,joined)
                 VALUES (\'\".$_POST[\'email\'].\"\',\'$iid\',\'$jetzt\')\";
  if (!$ergebnis  = mysql_query($sqlbefehl, $serverid)) echo mysql_error($serverid);
mail($_POST[\'email\'],\"$pnltitel Anmeldung\",\"
Vielen Dank für die Anmeldung für den $pnltitel!
Um diese Anmeldung zu aktivieren gehe im Browser einmal zu dieser Seite:
$pnlurl/index.php?iid=$iid
\",
\"From: $pnltitel
Content-Type:text/plain\");
  msgBox(\"Vielen Dank für die Anmeldung. Bitte aktiviere diese über die erhaltene Email.
          Wird die Anmeldung nicht bestätigt, so wird nach 24 Stunden die Email Adresse
          wieder aus der Datenbank gelöscht.\");
  echo \"\";
 }
 else {
  msgBox(\"Die Email Adresse ist bereits für den Newsletter angemeldet\");
  echo \"\";
 }
}
}
?>
      \">Newsletter:
      \"> Ich möchte den Newsletter haben.
 

taktgeber


taktgeber

Ich bin mal wieder wieter gekommen,
es sieht es jetzt aus.
 


\">Newsletter:
\">
Ich möchte den Newsletter haben.
 

\" colspan=\"2\" align=\"center\">
Vielen Dank für die Anmeldung am Newsletter.\";
  echo $d_fuss; require(\"fuss.php\");
exit;
 }
 else{
 echo $d_kopf;
  require(\"kopf.php\");
  echo \"Die Email Adresse ist bereits für den Newsletter angemeldet.\";
echo $d_fuss; require(\"fuss.php\");
exit;
}
}
 
// Abmeldung:
if ($_POST[\'email\'] != \"\" || $_POST[\'mailnl\'] == \"1\") {
  $sqlbefehl  =  \"delete from $tab_email
                  Where email = \'\".$_POST[\'email\'].\"\'\";
  if (!$ergebnis  = mysql_query($sqlbefehl, $serverid)) echo mysql_error($serverid);
  if (mysql_affected_rows() > 0) {
  echo $d_kopf;
  require(\"kopf.php\");
      echo \"Email Adresse \".$_POST[\'removeemail\'].\" wurde entfernt!\";
      echo $d_fuss; require(\"fuss.php\");
exit;
  }
}

 
 
Die emailadresse wird somit auch in den Newsletter eingetragen. Ich bekomme aber die checkbox nicht hin, momentan wird die email jedesmal eingetragen.
Ich muß  noch eine tabelle in der datenbank für den status der checkbox erstellen. habe aber ein problem damit, wie das jetzt im obersten code aussehen muß. damit der hacken wenn er eauskommt auch drausen bleibt und die email, wenn vorhanden, nicht nocheinmal eingetragen wird.

taktgeber

Kann mir keiner weiterhelfen,
es würde mir schon reichen, wenn mir einer erklärt, wie ich das mit der checkbox machen soll.
Das eintragen habe ich ja schon, ich brauch dann nur noch die Funktion:
Wenn der hacken nicht gesetz, dann lösche email aus newsletter.
Momentan tragt er mir alles ein ob hacken gesetzt oder nicht.
Daran verzweifel ich noch.

thadon



if ($_POST[\'namedercheckbox\'])
{
   echo\"Checkbox ist gesetzt\";
}
else
{
 echo\"Checkbox ist nicht gesetzt\";
}




taktgeber

irgendwie macht er nicht das was ich möchte, momentan wird
einmal der newsletter eingetragen und das nächste mal sagt er, er ist bereits eingetragen, egal ob der hacken gesetzt oder nicht.
So sieht der code jetzt aus. was ist da falsch?
 
checkbox:

 if ($_POST[\'mailnl\']) {
echo \"\";
echo \"Newsletter:\";
echo \"\";
echo \" Ich möchte den Newsletter haben.\";
echo \"\";
}
else {
echo \"\";
echo \"Newsletter:\";
echo \"\";
echo \" Ich möchte den Newsletter haben.\";
echo \"\";
}

 
Eintragung Datenbank:
 

 //Anmeldung:
if ($_POST[\'email\'] != \"\" || $_POST[\'mailnl\'] == \"checked\") {
  $counter = mysql_query(\"Select Count(*) as total From $tab_email Where email = \'\".$_POST[\'email\'].\"\'\");
  $eintraege = mysql_fetch_array($counter);
  if ( $eintraege[\'total\'] == 0 ) {
  $sqlbefehl  =  \"Insert Into $tab_email
                 (email,joined,mailnl)
                 VALUES (\'\".$_POST[\'email\'].\"\',\'$jetzt\',\'$mailnl\')\";
  if (!$ergebnis  = mysql_query($sqlbefehl, $serverid)) echo mysql_error($serverid);
  echo $d_kopf;
  require(\"kopf.php\");
   echo \"Vielen Dank für die Anmeldung am Newsletter.\";
  echo $d_fuss; require(\"fuss.php\");
exit;
 }
 else{  
   echo $d_kopf;
  require(\"kopf.php\");
   echo \"Newsletter bereits eingetragen.\";
  echo $d_fuss; require(\"fuss.php\");
exit;
 }
}
// Abmeldung:
 if ($_POST[\'email\'] != \"\" || $_POST[\'mailnl\'] == \"unchecked\") {
  $sqlbefehl  =  \"delete from $tab_email
                  Where email = \'\".$_POST[\'email\'].\"\'\";
  if (!$ergebnis  = mysql_query($sqlbefehl, $serverid)) echo mysql_error($serverid);
  if (mysql_affected_rows() > 0) {
  echo $d_kopf;
  require(\"kopf.php\");
      echo \"Email Adresse \".$_POST[\'removeemail\'].\" wurde entfernt!\";
      echo $d_fuss; require(\"fuss.php\");
exit;
  }
}

 
  - Editiert von Taktgeber am 25.11.2004, 12:25 -

thadon

nicht aktivierte checkbox hat keine eigene eigenschaft, also das \"unchecked\" gibt es nicht
außerdem hättest du deinen code etwas kürzer schreiben können mit der selben funktion, hier mal überarbeitete version :
 


echo \"\";
echo \"Newsletter:\";
echo \"\";
echo \" Ich möchte den Newsletter haben.\";
echo \"\";

 
 
in deiner DAtenbankeintragung sind auch Fehler drin
das hier geht nicht :


if ($_POST[\'mailnl\'] == \"checked\")

 
 
richtig lautet es so :


if ($_POST[\'mailnl\'])
// oder
if ($_POST[\'mailnl\'] == true)
// oder
if ($_POST[\'mailnl\'] == 1)

 
 
das selbe mit \"unchecked\" wobei du das grad negieren musst, also anstatt true nimmste false, anstatt 1 nimmste 0
 

taktgeber

Ja, das war es, endlich weis ich wie eine checkbox funktioniert!
ich danke Dir /uploads/emoticons/icon_e_surprised.gif.a8707b3f35a569cb4cfe563fc72ef78d.gif\" alt=\":-o\" />

taktgeber

Jetzt muß ich doch nocheinmal stören,
es funktioniert jetzt zwar alles, ich wollte aber deen hacken, wenn eingetragen gesetzt haben und bei keinem eintag nicht gesetzt.
dachte ich kann das so lösen:
$counter = mysql_query(\"Select Count(*) as total From $tab_email Where email = \'\".$_POST[\'email\'].\"\'\");
   $eintraege = mysql_fetch_array($counter);
   
   if ($eintraege[\'total\'] == 0 ) {
   
echo \" Ich möchte den Newsletter haben.\";
echo \"\";
}
else {
echo \" Ich möchte den Newsletter haben.\";
echo \"\";
}
habe aber falsch gedacht.

thadon

sollte so funzen :
 


= 1 ) echo \"checked \";
echo\"> Ich möchte den Newsletter haben.\";
echo \"\";
}
?>

taktgeber

scheinbar geht das bei mir nicht mit dem
echo \"checked \";
nur wenn ich in die Zeile
 
echo \"
echo \"
schreibe ist der hacken gesetzt und dann immer, ansonsten bleibt er immer leer.

thadon

muss eigentlich, glaub es lag an einer vergessenen leerstelle,
versuchs mal so :
 


= 1 ) echo \" checked \";
echo\"> Ich möchte den Newsletter haben.\";
echo \"\";
}
?>

taktgeber

scheinbar liegt es daran, daß wird falsch ausgewertet,  wenn ich es ausklammere ist der hacken gesetzt.
if ($eintraege[\'email\'] >= 1 )

taktgeber

Ich hab es, jetzt geht es.
Es lag an
email = \'\".$_POST[\'email\'].\"\'.
Hab dort jetzt
email = \'\".$useredit[\'email\'].\"\'
stehen und es geht, ich danke Dir nochmal für die Unterstützung.

all your base are belong to us / Discord