Pflichtfelder

Fragen und Tipps & Tricks zur Newsletter Software SuperMailer oder zum BirthdayMailer

Moderatoren: mirko, Wolfi

Antworten
Corinne
Beiträge: 39
Registriert: 21.04.2006, 10:51

Beitrag von Corinne »

Super... jetzt funktionierts! :)

Vielen Dank!

Gruss
Corinne
Benutzeravatar
mirko
Beiträge: 23082
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Beitrag von mirko »

über den logischen Sinn oder Unsinn der if-Abfragen habe ich natürlich nicht nachgedacht, bin ja nicht der Programmierer. :)

nach dem if-Block
if ( (!isset($EMail)) || ($EMail == \"\") || ( !CheckEMail($EMail) ) ) {


muss man nur einfügen

Code: Alles auswählen

 

if ($Action == "subscribe") {
   if ( (!isset($surname)) || ($surname == "")  ) {
     if ($ErrorPage != "")
        header("Location: $ErrorPage");
     else
      print "<b>Es wurde kein Nachname angegeben!</b>";
     exit;
   }


   if ( (!isset($firstname)) || ($firstname == "")  ) {
     if ($ErrorPage != "")
        header("Location: $ErrorPage");
     else
      print "<b>Es wurde kein Vorname angegeben!</b>";
     exit;
   }
}

Corinne
Beiträge: 39
Registriert: 21.04.2006, 10:51

Beitrag von Corinne »

@ Mirko

Danke für das Script. Ich habe das mal so eingefügt.

@ Wolfi

Hmm... bin nicht so der Hirsch in PHP-Programmierung und habe das Script so in einem früheren Forum-Beitrag gefunden und eifach auf meine Feldnamen angepasst ?(

Wie löse ich das mit den zwei zusätzlichen Pflichtfeldern denn am einfachsten?

Hast du eventuell ein Script, das funktioniert und ich einbauen und auf meine Feldnamen anpassen könnte?


Greez
Corinne
Wolfi
Beiträge: 1444
Registriert: 29.08.2002, 01:20

Beitrag von Wolfi »

Unabhängig v. Mirkos PHP-Internas funktioniert das, meiner Meinung nach, so nicht. Du prüftst die E-Mail-Adr., wenn nicht vorhanden, kommt die Fehlerseite. Wenn vorhanden, wird Vorname etc. geprüft. Jeweils mit dem Aufruf der Fehlerseite u. Beendigung mit Exit. Zum \"else\", dass nur die E-Mail-Adr. als Eingabe akzeptiert wird, kommst Du doch eigentlich garnicht.
Benutzeravatar
mirko
Beiträge: 23082
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Beitrag von mirko »

Es kommt drauf an ob register_globals on oder off ist. Ist es off, dann muss du zuerst Mal die Variablen $surname und $firstname zuweisen, ansonsten sind diese immer leer.

Siehe im Script die Angabe

# FALLS register_globals off
if (ini_get(\'register_globals\') == 0) {

if ( isset($_GET[\'Action\']) )
$Action=$_GET[\'Action\'];

if ( isset($_GET[\'EMail\']) )
$EMail=$_GET[\'EMail\'];

if ( isset($_POST[\'EMail\']) )
$EMail=$_POST[\'EMail\'];

if ( isset($_POST[\'Action\']) )
$Action=$_POST[\'Action\'];

if ( isset($_GET[\'Format\']) )
$Format=$_GET[\'Format\'];

if ( isset($_POST[\'Format\']) )
$Format=$_POST[\'Format\'];

if ( (!isset($REMOTE_ADDR)) || ($REMOTE_ADDR == \"\") )
$REMOTE_ADDR = $_SERVER[\'REMOTE_ADDR\'];
}


du müsstest mit hinzufügen

Code: Alles auswählen


  if ( isset($_GET[\'surname\']) )
     $surname=$_GET[\'surname\'];

  if ( isset($_POST[\'surname\']) )
     $surname=$_POST[\'surname\'];


  if ( isset($_GET[\'firstname\']) )
     $firstname=$_GET[\'firstname\'];

  if ( isset($_POST[\'firstname\']) )
     $firstname=$_POST[\'firstname\'];
Corinne
Beiträge: 39
Registriert: 21.04.2006, 10:51

Beitrag von Corinne »

Hallo zusammen

Ich möchte gerne bei der Newsletteranmeldung noch zwei zusätzliche Pflichtfelder einfügen (first- und surname).

Das habe ich jetzt so im Script eingebaut:

________________________________________________

# nur bei Anmeldung bzw. Klick auf Bestaetigungslink pruefen
if (($Action == \"subscribe\") || ($Action == \"confirmation\")) {


if ( (!isset($EMail)) || ($EMail == \"\") || ( !CheckEMail($EMail) ) ) {
if ($ErrorPage != \"\")
header(\"Location: $ErrorPage\");
else
print \"<b>Es wurde keine E-Mail-Adresse angegeben oder die E-Mail-Adresse liegt nicht im korrekten Format vor!</b>\";
exit;
}

if ( (!isset($firstname)) || ($firstname == \"\") ) {
if ($ErrorPage != \"\")
header(\"Location: $ErrorPage\");
else
print \"<b>Es wurde kein Vorname angegeben!</b>\";
exit;
}

if ( (!isset($surname)) || ($surname == \"\") ) {
if ($ErrorPage != \"\")
header(\"Location: $ErrorPage\");
else
print \"<b>Es wurde kein Name angegeben!</b>\";
exit;
}

}
else
# ansonsten checke nur ob email adresse uebergeben ist
if ( (!isset($EMail)) || ($EMail == \"\") || ( !CheckEMail($EMail) ) ) {
if ($ErrorPage != \"\")
header(\"Location: $ErrorPage\");
else
print \"<b>Es wurde keine E-Mail-Adresse angegeben oder die E-Mail-Adresse liegt nicht im korrekten Format vor!</b>\";
exit;
}
________________________________________________

Leider funktioniert es so nicht. Die Feldnamen stimmen überein mit jenen im Formular. Wenn ich im Formular alle Felder ausfülle kommt aber trotzdem die Error-Seite.

Kann mir jemand sagen was ich falsch mache?

Vielen Dank für eure Hilfe!

Greez
Corinne
Antworten