EDIT: Shorttags toegevoegd voor highlights
Bij mijn website heb ik een shop, zoals al eerder vermeld.
Bij deze shop word je na aankoop doorgestuurd naar een &p=


<?
if(isset($_POST['twee'])){
if($data->callcredits >= 2){
mysql_query("UPDATE `users` SET `callcredits`=`callcredits`-'2', `vipdays`=`vipdays`+'30' WHERE `login`='$data->login'");
mysql_query("INSERT INTO shoplogs(login,ip,date,wat,hoeveel,power,geld,bijaf) values('" . $data->login . "','" . $_SERVER['REMOTE_ADDR'] . "',NOW(),'Callcredits','1','0','20','Eraf')");
   header("Location: index.php?a=buycredits&p=vipdaystwee");
}
}
?>


<?																<tr class="top">
<td align="center" width="6%" class="subtable">
<img width="16" src='images/icons_gif/star_big.gif' alt='30 dagen betaald account' border='0'></td>
<td class="subtable"> 30 dagen betaald account	</td>														<td class="subtable">Tijdelijk 2 Credits (normaal 20)</td>
<td align="center" width="6%" class="subtable">
<?if($data->callcredits < 2){?>																				<font class="callshop_kopen_no">&nbsp;Kopen&nbsp;</font>
?>


Bij mijn vorige hosting werkte dit prima, maar bij mijn nieuwe hosting werkt dit opeens niet meer.
Hij blijft gewoon op de pagina ?a=buycredits
Hoe kan dit?

Is het ook mogelijk om de klant op een andere manier door te sturen?
Zet bovenaan:

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

Zie je dan foutmeldingen?
Verder zou header() altijd moeten werken, tenzij er output (HTML of witruimte) voor staat, maar dat zou ook meteen dan een 'headers already sent' error moeten triggeren.
De error report geeft inderdaad aan dat de headers al sent zijn, hoe los ik dit op?

Warning: Cannot modify header information - headers already sent by (output started at /home/banditiv3/domains/banditiv3.nl/public_html/left_column.php:86) in /home/banditiv3/domains/banditiv3.nl/public_html/buycredits.php on line 11
Juist, er is output wat niet mag. Zie lijn 86 van left_column.php
je probleem zit dus op regel 86 van left_column.php.

dáár stuur jij output naar de browser, waardoor je apache daar dwingt om de headers te versturen.

op regel 11 van buycredits kom je nog eens aankakken bij apache met "ik had nog headers", en dus gevalletje "die zijn al verstuurd!".

http://wiki.pfz.nl/headers-already-sent
lijn 86 ->
[code]
<div class="menu-item-left"><img src="images/arrow.jpg"><a href="index.php?a=click&x=<?=$data->id?>">Aanmeldlink</a><img src="images/seperator.jpg" class="sep"></div>

Eigenlijk zijn er talloze van die lines
Die hoort niet op die plek te staan. Dus even de logica in je hele script aanpassen.
De header()'s kunnen alleen worden uitgevoerd als er geen HTML/witregel output voor staat.

Verder was dit al te verwachten bij een brakke Criminals source van 9(!!!) jaar geleden. Dweilen met de kraan open.....
Ja vertel mij wat, op de eerste blik zag het er leuk en uitgebreid uit maar als je verder komt ga je denken waar ben ik in verzeild geraakt.
Ja, daarom is dit gewoon een slecht script, zoals ik al eerder heb verteld.

Begin gewoon bij het begin van PHP, met de 'Hallo wereld'. Dat is de enige beste oplossing om correct PHP te leren.
Wat ik me afvraag is wel waarom het bij die andere host wel werkte en hier niet.
Over welke PHP versies hebben we het?

Reageren