Toon posts:

[PHP] kan geen headers versturen

Pagina: 1
Acties:
  • 198 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik heb net een server geinstalleerd op mijn eigen computer met MySQL en PHP. Het werkt nu lekker alleen nadat ik REGISTER_GLOBALS=On heb gezet kan ik geen headers meer versturen, waardoor vele scripts crashen.
Ook is het niet mogelijk om sessions op te slaan, heeft iemand enig idee hoe ik dit kan oplossen?

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

De een heeft niks te maken met de ander...

Wat gebeurt er?
Krijg je een melding?
Kan je een klein stukje code laten zien waarbij het fout, en er bij vertellen wat er fout gaat?
( vertel ook bij wat je verwacht dat er zou gebeuren )

Programmer - an organism that turns coffee into software.


Verwijderd

Topicstarter
De een heeft niks te maken met de ander...
maar wanneer hij op off staat gaat het onderstaande dus wel goed!

ik heb dus een script gemaakt die iets in een DB zet ... dit gaat allemaal goed, wanneer hij echter bij Header("Location: blaat.php"); komt dan krijg ik the page cannot be found ...

  • re.run
  • Registratie: Maart 2002
  • Laatst online: 20-08 15:30
Verwijderd schreef op 22 augustus 2002 @ 13:23:
[...]

maar wanneer hij op off staat gaat het onderstaande dus wel goed!

ik heb dus een script gemaakt die iets in een DB zet ... dit gaat allemaal goed, wanneer hij echter bij Header("Location: blaat.php"); komt dan krijg ik the page cannot be found ...
Ik neem aan dat :
code:
1
Header("Location: blaat.php");


voor de <HTML> tag staat, zo niet dan zou dat wel eens het probleem kunnen zijn.

none


Verwijderd

Topicstarter
ja dat staa allemaal goed, het script werkt nl. perfect op een andere server... de header staat voor elke andere header etc.

  • re.run
  • Registratie: Maart 2002
  • Laatst online: 20-08 15:30
Post eens een stuk van je code... want zo kan het wel eens lang duren. :)

none


Verwijderd

Topicstarter
aan de code ligt het niet, op mijn server thuis draait het alleen niet: maar goed, hier de code :

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
$answerCount = 0;
if ($answerA) $answerCount++;
if ($answerB) $answerCount++;
if ($answerC) $answerCount++;
if ($answerD) $answerCount++;

if (($action == "createNewPoll") && $question && ($answerCount >= 2)) {
    mysql_query ("UPDATE portfolio_pollQuestions SET active = 'false'") or die (mysql_error());

    $question = addslashes ($question);
    $answerA  = addslashes ($answerA);
    $answerB  = addslashes ($answerB);
    $answerC  = addslashes ($answerC);
    $answerD  = addslashes ($answerD);

    mysql_query ("INSERT INTO portfolio_pollQuestions (question, active) VALUES ('$question', 'true')") or die (mysql_error());
    $pollQuestionID = mysql_insert_id ();
    if ($answerA) mysql_query ("INSERT INTO portfolio_pollAnswers (answer, pollQuestionsID, votes) VALUES ('$answerA', '$pollQuestionID', 0)") or die (mysql_error());
    if ($answerB) mysql_query ("INSERT INTO portfolio_pollAnswers (answer, pollQuestionsID, votes) VALUES ('$answerB', '$pollQuestionID', 0)") or die (mysql_error());
    if ($answerC) mysql_query ("INSERT INTO portfolio_pollAnswers (answer, pollQuestionsID, votes) VALUES ('$answerC', '$pollQuestionID', 0)") or die (mysql_error());
    if ($answerD) mysql_query ("INSERT INTO portfolio_pollAnswers (answer, pollQuestionsID, votes) VALUES ('$answerD', '$pollQuestionID', 0)") or die (mysql_error());
    header ("Location: index.php");
}
else if ($action == "reactivatePoll") {
    mysql_query ("UPDATE portfolio_pollQuestions SET active = 'false'") or die (mysql_error());
    mysql_query ("UPDATE portfolio_pollQuestions SET active = 'true' WHERE id='$id'") or die (mysql_error());
    header ("Location: index.php");
}

else if ($action == "deletePoll") {
    mysql_query ("DELETE FROM portfolio_pollQuestions WHERE ID = '$id'") or die (mysql_error());
    mysql_query ("DELETE FROM portfolio_pollAnswers WHERE pollQuestionsID = '$id'") or die (mysql_error());
    header ("Location: index.php");
}
else if ($action == "resetPoll") {
    mysql_query ("UPDATE portfolio_pollAnswers SET votes = 0 WHERE pollQuestionsID = '$id'") or die (mysql_error());
    header ("Location: index.php");
}

dit staat helemaal in het begin v/h script

Verwijderd

Topicstarter
de ' zijn dus single quotes ...

  • Rashann
  • Registratie: Maart 2000
  • Laatst online: 24-08 07:20

Rashann

Zoek de hond...

Het zou kunnen dat een \n\r nog nodig is na de header?

If nothing is written below, I was the last to reply...


  • MisterData
  • Registratie: September 2001
  • Laatst online: 26-08 21:52
Of probeer es de magic_quotes instelling :? Dat zorgt namelijk ook wel es voor problemen.

Verwijderd

Topicstarter
beide oplossingen werken niet

  • WouZz
  • Registratie: Mei 2000
  • Niet online

WouZz

Elvis is alive!

Weet je zeker dat je alleen maar errors krijgt over dat de haeders niet verstuurd kunnen worden? Als je namelijk eerst nog een andere error krijgt (en dus output) is dat dus de oorzaak van het feit dat je geen headers kan versturen.

Een work-around voor dit probleem is trouwens om ob_start() aan te roepen aan het begin van je script. hiermee zet je output buffering aan, waardoor je gedurende je hele script headers kan versturen omdat je output dus niet gelijk naar de client wordt verstuurd.

On track


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 09:50

mulder

ik spuug op het trottoir

Misschien niet de mooiste oplossing, maar ipv die header('location:') doe ik altijd :
PHP:
1
echo "<script>location.href = "bla.php";</script>";


die dubble quotes om het geheel moeten enkele zijn.

oogjes open, snaveltjes dicht


  • WouZz
  • Registratie: Mei 2000
  • Niet online

WouZz

Elvis is alive!

Don Facundo schreef op 23 augustus 2002 @ 00:00:
Misschien niet de mooiste oplossing, maar ipv die header('location:') doe ik altijd :
...
Hmmm... Dan moet je weer gaan opletten waar je dat doet, wil je tenminste nette html 'outputten'... Bovendien is het ook weer een extra page-load (ook al is ie klein) voor je client... En je client moet javascript ondersteunen...

On track

Pagina: 1