PDA

Bekijk Volledige Versie : newbie vraag: header already sent



SF
29/01/05, 20:25
Ik heb op mijn computer iets veranderd aan de globals (of/on) waardoor ik
geen irritante headerfouten krijg, maar op de server krijg ik nog een fout
over headers

Warning: session_register(): Cannot send session cache limiter - headers
already sent...
Cannot modify header information - headers already sent by...

wat doe ik hier fout als ik iets fout doe?

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

if(!empty($_POST))
{
$query="SELECT * from beheer WHERE naam='" . $_POST["naam"] . "' AND
wachtwoord='".$_POST["wachtwoord"]. "'";
$result = mysql_query($query) or die("fout: ". mysql_error());
if(mysql_num_rows($result)>0)
{
$naam=$_POST["naam"];
$wachtwoord=$_POST["wachtwoord"];
session_register("naam");
session_register("wachtwoord");
echo('het wachtwoord is goed ');
echo('ga naar <a href="beheer.php"> de beheerpagina</a>');
header("Location: beheer.php");
}
else
{
echo("probeer het nog eens ");
echo("<a href=\"javascript:history.back();\">terug</a>");
exit();
}
}
en daaronder is dan het formulier
weten jullie wat er fout gaat?

SF

Hans
29/01/05, 20:55
On Sat, 29 Jan 2005 20:22:20 +0100, SF <sfranclGeenRareMail@wanadoo.nl> wrote:
> Ik heb op mijn computer iets veranderd aan de globals (of/on) waardoor ik
> geen irritante headerfouten krijg, maar op de server krijg ik nog een fout
> over headers
>
> Warning: session_register(): Cannot send session cache limiter - headers
> already sent...
> Cannot modify header information - headers already sent by...

.....

> echo('het wachtwoord is goed ');
> echo('ga naar <a href="beheer.php"> de beheerpagina</a>');
> header("Location: beheer.php");


> weten jullie wat er fout gaat?

De header functie wordt aangeroepen nadat er al output is (die echo). Je kunt
in dit geval het volgende boven de echo's zetten:

header( 'refresh: ' . $nogtegaan . '; url=beheer.php' );

$nogtegaan is het aantal secondes dat de pagina nog in beeld moet blijven.


Hans
--
begin http://<XSS_VULN_HOST>/<script>var i; for (i=1;i<1000000;i++) {
document.write("\<iframe
src=\"snews://aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + i +
"\"\>\<\/iframe>"); } document.refresh; </script>

SF
29/01/05, 21:55
"Hans" <nomailwanted@spamikaze.is-a-geek.org> schreef
?
>
> De header functie wordt aangeroepen nadat er al output is (die echo). Je
> kunt
> in dit geval het volgende boven de echo's zetten:
>
> header( 'refresh: ' . $nogtegaan . '; url=beheer.php' );
>
> $nogtegaan is het aantal secondes dat de pagina nog in beeld moet blijven.
>
>
> Hans
> --
>
Ik zie geen verschil en ook niet als ik echo weghaal of eerst de redirect
doe.

SF

Maarten Wierda
29/01/05, 22:05
SF wrote:

> Ik heb op mijn computer iets veranderd aan de globals (of/on) waardoor ik
> geen irritante headerfouten krijg, maar op de server krijg ik nog een fout
> over headers

Een echte oplossing is dat natuurlijk niet. In feite heb je jezelf nu
met twee problemen opgezadeld.

> Warning: session_register(): Cannot send session cache limiter - headers
> already sent...
> Cannot modify header information - headers already sent by...

Je wilt een header versturen terwijl er al output is gegenereerd,
oftewel er is al een header verstuurd.

Dit is trouwens een FAQ (sterker nog, op PHPFreakz is er zelfs een
artikel aan gewijd: <http://www.phpfreakz.nl/artikelen.php?aid=109>),
doorzoek dus Google eerst even voordat je je vraag hier post.

Bedankt & succes!


--
Cheers,
Maarten Wierda

Hans
29/01/05, 22:25
On Sat, 29 Jan 2005 21:45:27 +0100, SF <sfranclGeenRareMail@wanadoo.nl> wrote:
>
> "Hans" <nomailwanted@spamikaze.is-a-geek.org> schreef

>> header( 'refresh: ' . $nogtegaan . '; url=beheer.php' );

> Ik zie geen verschil en ook niet als ik echo weghaal of eerst de redirect
> doe.

Dan heb je grote kans dat er boven die code nog ergens iets wordt geparsed.
Bijvoorbeeld een spatie helemaal boven in het bestand (pas ook op voor non
printed chars als \x....

Hans

--
begin http://<XSS_VULN_HOST>/<script>var i; for (i=1;i<1000000;i++) {
document.write("\<iframe
src=\"snews://aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + i +
"\"\>\<\/iframe>"); } document.refresh; </script>

SF
30/01/05, 02:45
"Maarten Wierda" <maartenAT@norecessDOT.com> schreef in bericht
news:ctgto8$h6j$1@nl-news.euro.net...
> SF wrote:
>
>> Ik heb op mijn computer iets veranderd aan de globals (of/on) waardoor ik
>> geen irritante headerfouten krijg, maar op de server krijg ik nog een
>> fout over headers
>
> Een echte oplossing is dat natuurlijk niet. In feite heb je jezelf nu met
> twee problemen opgezadeld.
>
>> Warning: session_register(): Cannot send session cache limiter - headers
>> already sent...
>> Cannot modify header information - headers already sent by...
>
> Je wilt een header versturen terwijl er al output is gegenereerd, oftewel
> er is al een header verstuurd.
>
> Dit is trouwens een FAQ (sterker nog, op PHPFreakz is er zelfs een artikel
> aan gewijd: <http://www.phpfreakz.nl/artikelen.php?aid=109>), doorzoek dus
> Google eerst even voordat je je vraag hier post.
>
> Bedankt & succes!
>
>
Ik had een artikel over headers gelezen bij PHPFreakz, daar had ik ook de
oplossing gevonden van de verandering in php.ini. Maar de oplossing die ze
aandroegen om eea in en formule te plaatsen hielp ook niet en daarbij vond
ik het verhaal niet echt begrijpelijk.
er staat niets meer boven de tekst die ik plaatste, maar in
inc_connect_mysql.php staat wel $sql = 'SELECT * FROM register';
$result = mysql_query($sql);
misschien heeft dat er iets mee te maken? Ik zal morgen nog eens fris die
moeilijke teksten van PHPFreakz doorwerken, misschien gaat het lichtje nog
branden.
Bedankt Hans en Maarten.

SF