Page 1 of 1

[OPGELOST] PHP Issue

Posted: Fri Feb 18, 2011 2:27 pm
by brentnl
Hoi, ik heb even simpele basis kennis van PHP nodig. ik heb het volgende script, waarbij een emailadres in een database voor moet komen als een soort beveiliging.. zoja; dan wordt je doorverwezen naar een pagina, en anders moet je op dezelfde pagina blijven en enkel een alert box krijgen.

Code: Select all

<?php
include "connect.php"; 
$email = $_GET['email']; 
$query = "SELECT subscriberid
FROM email_list_subscribers
WHERE emailaddress = '$email'
And confirmed = '1' ";
$res = mysql_query($query);
if(mysql_num_rows($res) > 0) {
header("Location: http://www.domein.nl/gallery");
} 
else {
print '<__script__ type="text/javascript">';
print 'alert("'. $_GET['email'].' staat nog niet geregistreerd. Meld je snel aan op de website!")';
print '</__script>';
}
de alertbox werkt, alleen het terugkeren naar de pagina lukt me niet. "header("location... toevoegen geeft de welbekende 'headers already sent' error.

Re: PHP Issue

Posted: Fri Feb 18, 2011 4:18 pm
by Jos
De code die je nu laat zien zou naar mijn idee moeten werken. Of heb je er nog iets voor staan?

De foutmelding "headers already sent" komt meestal doordat er al content gestuurd is, dus een echo of print.

Heb je deze code in een UDT staan? Dat zou ook goed moeten gaan namelijk.

Re: PHP Issue

Posted: Fri Feb 18, 2011 4:33 pm
by brentnl
De code werkt ook wel, alleen als het emailadres niet in de database staat krijg je een 'alert' alleen die opent op een nieuwe pagina, en ik wil dat ze op de huidige pagina blijven..

Re: PHP Issue

Posted: Fri Feb 18, 2011 4:53 pm
by Jos
Kun je niet gewoon alle content weergeven dan, en je stukje javascript in de head of de body opnemen?

Afgezien van dat het niet werkt, is je code onveilig.

verander

Code: Select all

$email = $_GET['email'];

in

Code: Select all

$email = mysql_real_escape_string($_GET['email']); 
en verander

Code: Select all

print 'alert("'. $_GET['email'].' staat nog niet geregistreerd. Meld je snel aan op de website!")';
in

Code: Select all

print 'alert("'. htmlspecialchars($_GET['email']).' staat nog niet geregistreerd. Meld je snel aan op de website!")';

Re: PHP Issue

Posted: Fri Feb 18, 2011 5:04 pm
by brentnl
Jos wrote:Kun je niet gewoon alle content weergeven dan, en je stukje javascript in de head of de body opnemen?[/code]
Hoe bedoel je dat precies? ik heb nu een cmsms website, met daarin een zelfgeschreven inlog formuliertje welke query.php aanroept (en die weer connect.php). Als ik die code van query.php in de cmsms code zet heeft de gebruiken nog geen emailadres ter controle in kunnen voeren?

Re: PHP Issue

Posted: Fri Feb 18, 2011 5:09 pm
by Jos
Misschien mooier om al die code in één UDT-tje te gieten? Je mag me alle code wel even pm-en, dan kijk ik wel even voor je..

Als jij mij helpt, help ik jou.. zie mijn pm ;D

Re: PHP Issue

Posted: Fri Feb 18, 2011 5:25 pm
by brentnl
you've got mail.