ik heb een script

die er voor zort dat je een link krijgt , en als je er op klikt dat er dan eerst in de db "aantalhits" 1 wordt verhoogd.
En dan moet de url op eennieuwe pagina geopend worden.
<?
if ($HTTP_GET_VARS["url"])
{
$sql = "UPDATE links SET out=out+1 WHERE url = '$HTTP_GET_VARS[url]'";
mysql_query($sql);
$url= "$HTTP_GET_VARS[url]";
echo 'target=\"_blank\"';
header("location: $url/");
}
?>
maar ik krijg nu een fout:
target=\"_blank\"
Warning: Cannot add header information - headers already sent by (output started at /home/www/marktalmelo/index.php:8) in /home/www/marktalmelo/media/links.php on line 26

dit komt waarschijnelijk omdat ik een paginascript heb , maar is er een andere manier om een niewe pagina te openen en die url mee te geven?

thnx
[1] Wat wil je met je target="_blank"?
[2] Als je gewoon "location: $url" als header uitgeeft en zorgt dat dat het eerste is dat uitgepleurd wordt komt het goed.
[3] Als je perse de zinloze zin (in mijn ogen) target="_blank" wilt behouden, kijk dan eens naar output buffering. De goede tutorial van Arjen Halma is te vinden op http://www.phphulp.nl/php/tutorials/8/22
Het gaat erom dat er al info gestuurd is (output already started) door je echo "...."; dat kan niet... Probeer het eens zo:
<?
ob_start();
if ($HTTP_GET_VARS["url"])
{
$sql = "UPDATE links SET out=out+1 WHERE url = '$HTTP_GET_VARS[url]'";
mysql_query($sql);
$url= "$HTTP_GET_VARS[url]";
echo 'target=\"_blank\"';
header("location: $url/");
}
ob_end_flush(); // deze hoeft niet maar staat wel beter :)
?>
Succes!
Copy-cat.

Dat neemt niet weg dat die target="_blank" nergens op slaat.
Ik copy-cat? Ik was dit al aan het typen hoor!
En toen ik het plaatste zag ik jouwe ook staan ;)

Reageren