Ik ben bezig met een script om je aan te melden voor een nieuwsbrief. Je voert je emailaders in, je krijgt een pop-up dat het emailadres is geregistreed. Het emailaders zet hij in een database en vervolgens genereert hij een mail die naar mij word verstuurd, hierna moet hij je terug sturen naar een pagina, het script werkt tot de email versturen, maar stuurt de gebruiker niet terug naar de pagina blog

<?php
include("connect.php");

$email = $_POST['email'];
$emailadres = "[email protected]";


$myQuery = "insert into mail (mail) values('".$email."')";

if ($myQuery)
{
$tekst = "<script>if(confirm('Je emailadres is geregistreerd'));</script>";
echo $tekst;

if ($tekst)
{
$to = $emailadres;
$subject = "Aanmelding nieuwsbrief";
$txt = "$email heeft zich aangemeld voor de nieuwsbrief.";
$headers = "From: [email protected]";

$mail = mail($to,$subject,$txt,$headers);

if ($mail)
{
header("Location:../blog.php");
exit;
}
}
}
else
{
$tekst = "<script>if(confirm('Er is iets fout gegaan')) {
window.location.href = '../blog.php'};</script>";
echo $tekst;
}
?>
Heb je al dit bovenaan staan?

<?php
error_reporting(E_ALL);
ini_set('display_errors',1);
?>


Dan zal je zien dat je een header-error krijgt vanwege dit:
echo $tekst;

Er mag voor een header() geen output (zoals tekst en witregels) staan.

nee dat had ik nog niet, ik krijg nu inderdaad een foutmelding
Verder zie ik een groot gevaar voor hacking m.b.t. SQL-injection in je query.
Anyway, eigenlijk valt dat wel mee, want je voert je query nergens uit :P
maar het is dus niet mogelijk om eerst een javascript pop up te laten zien en vervolgens een header location uit te voeren
Nee, want PHP is serverside en zal eerst worden uitgevoerd dan de JS.
Je zult dan moeten redirecten met javascript.
oke heel erg bedankt voor de hulp, ik ga een andere oplossing zoeken ;-)

Reageren