01. februar 2008 - 21:38Der er
10 kommentarer og 1 løsning
Flush eller redirect $POST?
Hej Eksperten.
Jeg har et forholdsvis simpelt problem (I guess)..
Jeg er ved at lave en side hvor man kan indtaste sin email og på den melde sig på en emailliste. Hvis den indtastede email allerede eksisterer i databasen, skal siden udskrive dette og gøre noget andet bagefter..
Jeg kunne godt tænke mig, hvis jeg kunne sætte en $error = "<tekst>" og refreshe siden og udskrive denne. Jeg har prøvet med: echo "<meta http-equiv=\"Refresh\" content=\"0;url=".$HTTP_SERVER_VARS[PHP_SELF]."\">"; men den "nulstiller" hele siden hver gang der bliver trykket submit. Jeg har også prøvet unset($POST['email']). Problemet er, at hvis man én gang har indtastet f.eks. en ugyldig email, huskes denne hver gang siden bliver refreshed.
og her er hele scriptet: <?php require_once ('includes/config.php');
echo "Her kan du tilmelde/afmelde min nyhedsmail. Jeg vil forsøge at sende nyhedsmail ud en 6-8 gange i løbet af et år. <br/> Du vil være en af de første der får at vide om nye tiltag. Liste over hvornår jeg afholder kurser, se hvor jeg udstiller, eller hvis der sker noget nyt på hjemmesiden<p/>";
kakster: tak for eksemplet med det løser dog ikke mit problem. Problemet er kort og godt hvordan jeg refresher siden og nulstiller alle variabler undtagen $error variablen...
//hvis der er indtastet en email.. if (isset($_POST['email'])) { $ny_email = $_POST['email'];
unset($_POST['email']); //(virker dog ikke efter hensigten)
if( ereg("[-0-9a-zA-Z!#$%&*+/=?^_�{|}~.]+@[-0-9a-zA-Z!#$%&*+/=?^_�{|}~.]+", $ny_email)) { //hvis email er ok
//tjek om bruger allerede er i databasen $tjek_email = mysql_query("SELECT email FROM emails WHERE email = '".$ny_email."'"); $num = mysql_numrows($tjek_email);
if(0 != $num){ //hvis den email er der i forvejen
print "Emailen findes allerede på listen\n"; print "Vil du afmelde nyhedsbrevet?\n"; //problemet er ikke her, da der kommer ny submit..
//opret email mysql_query("INSERT INTO emails (`email`,`dato`) VALUES ('".$ny_email."', NOW())"); mysql_close($link);
print "Emailen: ".$ny_email." er nu tilføjet til listen\n";
}
} else {
print "Det indtastede er ikke en gyldig emailadresse\n";
//********PROBLEM HER! (ved ikke om nedestående kode virker optimalt, det var noget jeg fandt) men jeg vil // i hvertfald gerne have en $error variabel med f.eks. //$error = "Det indtastede er ikke en gyldig emailadresse\n"; //som jeg kan tjekke på i toppen og udskrive hvis (!empty($error))
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.