PHP zählen!

Die Scriptsprache PHP für die Gestaltung von dynamischen Websites.

PHP zählen!

Beitragvon n-i-c » Mo 22 Nov, 2004 23:25

Hy Leute hab da mal ein Problem!

Ich hab eine MySql Datenbank im Hintergrund laufen und habe ein Feld in dem der User seine E-mail Adr. für den Newsletter reinschreiben kann! Das funktioniert ja auch schon super... jedoch ... hab ich jetzt das Problem, dass jedesmal wenn der User auf Aktualisieren oder auf eine andere Unterseite meiner WebSite geht, dann schreibt er das leere feld wieder in die Datenbak obwohl der User seine Sache schon erledigt hat... was könnte ich da dagegen tun???? Habt Ihr Vorschläge????

So sieht mein Java Code aus!
Code: Alles auswählen
function ani(i){
   
   if (i < top.length){
      document.top.src = top[i];
      i++;      
      setTimeout("ani(" + i + ")", 7000);
   }
}

function testEmail(){   
   if(document.form2.email.value.indexOf('@') == -1 || document.form2.email.value == "" || document.form2.email.value.indexOf('.') == -1) {
      alert("E-Mail-Adresse ungültig!");
      document.form2.email.focus();
      return false;
  }
}


Im Html hab ich dann noch ein Formular, dass aktiviert wird wenn er ok klickt! Jedoch schickt er die daten auch beim aktualisieren!

HILFE

:oops:
Mit freundlichen Grüßen

Nicole
n-i-c
Junior Board-Mitglied
Junior Board-Mitglied
 
Beiträge: 53
Registriert: Do 06 Nov, 2003 10:59
Wohnort: Micheldorf

Beitragvon burnie51 » Di 23 Nov, 2004 16:34

Weil der Browser beim Aktualisieren den Request neu absetzt (inklusive den POST-Daten vom Formular).
Du könntest das Problem lösen, indem du nach dem Insert in der DB per PHP-Skript den Browser umleitest ZB
[php]...
header("Location: seite.php");
exit();
[/php]

greetz,
burnie
burnie51
Junior Board-Mitglied
Junior Board-Mitglied
 
Beiträge: 47
Registriert: Di 15 Jul, 2003 17:49

Beitragvon mnc » Do 25 Nov, 2004 13:56

wozu js?
mnc
Board-Mitglied
Board-Mitglied
 
Beiträge: 223
Registriert: Mi 19 Mai, 2004 18:27

Beitragvon ReneW » Fr 26 Nov, 2004 00:08

Es wär vielleicht auch gescheit wennst gleich die IP mitschreibst und diese vergleichst beim eintragen mit der letzten IP.
Dann hast des Problem auch net mehr und keiner kann mehrere emails eintragen.

ODer das gleiche mit der zuletzt eingetragenen email Adresse
ReneW
Board-User Level 2
Board-User Level 2
 
Beiträge: 779
Registriert: Di 20 Apr, 2004 10:01

Beitragvon The_Invisible » Di 28 Dez, 2004 08:52

burnie51 hat geschrieben:Weil der Browser beim Aktualisieren den Request neu absetzt (inklusive den POST-Daten vom Formular).
Du könntest das Problem lösen, indem du nach dem Insert in der DB per PHP-Skript den Browser umleitest ZB
[php]...
header("Location: seite.php");
exit();
[/php]

greetz,
burnie


ja, das mit dem aktualisieren ist ein Problem, aber normalerweise müssten da trotzdem die gleichen Daten nochmal geschickt werden und keine leeren

aber was hat dein Javascript Code damit zu tun, der schickt ja kein Formular ab

am einfachsten ist es wenn du einfach checkst ob der Button gedrückt wurde und nur dann die Daten reinschreibst also:
[php]
// zb das ist dein Button
// <input type="submit" name="newsletter_eintrag" value="Absenden">

// dann prüfst im PHP Source dagegen mit

if($_REQUEST['newsletter_eintrag']=="Absenden") {
// Eintrag Datenbank
}

// und wird somit nur in die Datenbank geschrieben wenn der Button gedrückt wurde
[/php]

beim Aktualisieren werden natürlich immer noch Post Daten geschickt und somit auch das Absenden des Buttons. Mittels eines Aktualisieren mit $_SERVER['PHP_SELF'] ist aber auch das Problem beseitigt

mfg
Rene
The_Invisible
Administrator
Administrator
 
Beiträge: 83
Registriert: Mo 23 Jun, 2003 14:58


Zurück zu PHP

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 15 Gäste