/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
automatisk viderstilling virker ikke
Fra : MooreHojer


Dato : 29-06-06 12:49

Hej NG

Er der nogen der kan fortæller mig hvorfor følgende kode ikke sender
brugeren videre til ny side...

<----KODE START---->
if ($godkendt == "ja") {
echo "godkendt = ja";
header("Location: thumb.php");
} else {
echo "godkendt = nej";
header("Location: upload.asp?sub=4");
}
<----KODE SLUT---->

den udskriver godt nok de to echo'er så det er ikke fordi betingelserne
ikke bliver opfyldt...

På Forhånd Tak"

--
MooreHojer


 
 
Erlend Klakegg Bergh~ (29-06-2006)
Kommentar
Fra : Erlend Klakegg Bergh~


Dato : 29-06-06 12:57

MooreHojer skrev:
> Hej NG
>
> Er der nogen der kan fortæller mig hvorfor følgende kode ikke sender
> brugeren videre til ny side...
>
> <----KODE START---->
> if ($godkendt == "ja") {
> echo "godkendt = ja";
> header("Location: thumb.php");
> } else {
> echo "godkendt = nej";
> header("Location: upload.asp?sub=4");
> }
> <----KODE SLUT---->
>
> den udskriver godt nok de to echo'er så det er ikke fordi betingelserne
> ikke bliver opfyldt...

Jeg virker nok som en ekte suring til tider, men nok en gang lurer jeg
på om du har undersøkt hva som står i manualen?

<URL: http://php.net/header >

"HTTP/1.1 requires an absolute URI as argument to Location: including
the scheme, hostname and absolute path, but some clients accept relative
URIs."

"Remember that header() must be called before any actual output is sent,
either by normal HTML tags, blank lines in a file, or from PHP. It is a
very common error to read code with include(), or require(), functions,
or another file access function, and have spaces or empty lines that are
output before header() is called. The same problem exists when using a
single PHP/HTML file."

Begge de to sitatene (som er hentet fra manualen) forteller meg at det
er minst to mulige feilkilder i koden, hvor et av de er at du i det
heletatt benytter echo før du sender brukeren sidere.


--

Vennlig hilsen

Erlend Klakegg Bergheim

MooreHojer (29-06-2006)
Kommentar
Fra : MooreHojer


Dato : 29-06-06 13:06

> Jeg virker nok som en ekte suring til tider, men nok en gang lurer jeg
> på om du har undersøkt hva som står i manualen?

nej for jeg vidste ikke den eksisterede

> <URL: http://php.net/header >

[SNIP]

> Begge de to sitatene (som er hentet fra manualen) forteller meg at det
> er minst to mulige feilkilder i koden, hvor et av de er at du i det
> heletatt benytter echo før du sender brukeren sidere.

Jeg har fjernet echo og nu virker det... tak

--
MooreHojer


Martin (29-06-2006)
Kommentar
Fra : Martin


Dato : 29-06-06 14:43

MooreHojer wrote:
> <----KODE START---->
> if ($godkendt == "ja") {
> echo "godkendt = ja";
> header("Location: thumb.php");
> } else {
> echo "godkendt = nej";
> header("Location: upload.asp?sub=4");
> }
> <----KODE SLUT---->

Først burde du nok sætte noget error_reporting til, det ville give dig
en dejlig error nemlig.

Noget ala - output send after header. (mener det er en notice)

Bagefter, så sætter man exit; efter en header("location: ...");

om man SKAL bruge en hel URI (altså http://www.domæne.dk/side.php)
tjaaa, jeg har aldrig haft problemer med at linke frem og tilbage med
.../andenside.php, Heller ikke på min webhost.

MooreHojer (29-06-2006)
Kommentar
Fra : MooreHojer


Dato : 29-06-06 14:47

> Først burde du nok sætte noget error_reporting til, det ville give dig
> en dejlig error nemlig.

Undskyld jeg spørger dumt, men hvordan?

> Bagefter, så sætter man exit; efter en header("location: ...");

Hvad forskel gør det?

> om man SKAL bruge en hel URI (altså http://www.domæne.dk/side.php)
> tjaaa, jeg har aldrig haft problemer med at linke frem og tilbage med
> ../andenside.php, Heller ikke på min webhost.

Det virker også finter her når jeg bruger relative...

--
MooreHojer


Erlend Klakegg Bergh~ (29-06-2006)
Kommentar
Fra : Erlend Klakegg Bergh~


Dato : 29-06-06 15:32

MooreHojer skrev:
>> Først burde du nok sætte noget error_reporting til, det ville give dig
>> en dejlig error nemlig.
>
> Undskyld jeg spørger dumt, men hvordan?

<URL: http://php.net/error_reporting >


--

Vennlig hilsen

Erlend Klakegg Bergheim

Martin (29-06-2006)
Kommentar
Fra : Martin


Dato : 29-06-06 15:53

MooreHojer wrote:
>> Først burde du nok sætte noget error_reporting til, det ville give dig
>> en dejlig error nemlig.
>
>
> Undskyld jeg spørger dumt, men hvordan?

Du skriver i dit php dokument
<?php
error_reporting(E_ALL);


>
>> Bagefter, så sætter man exit; efter en header("location: ...");
>
>
> Hvad forskel gør det?

Copy/pasted fra tråden "Kan man foregive at have en andens session"

Martin wrote:
Som Peter siger, så er det ALTID en god idé at afslutte en
header("location..."); af med en exit; ligeefter.
Fx

<?php
session_start();
if (!isset($_SESSION[webmaster])) {
header("Location: ikke_logget_ind.php");
exit;
}

så STOPPER php parseren der og vil ikke afvikle noget andet kode, det
vil den faktisk gøre hvis du fx bare skriver echo "Hej"; nedenunder.
Du kan selv prøve at slå "automatisk redirects" fra i din browser (under
sikkerheds indstillinger svjh)

Erlend Klakegg Bergh~ (29-06-2006)
Kommentar
Fra : Erlend Klakegg Bergh~


Dato : 29-06-06 15:33

Martin skrev:

[snip]

> om man SKAL bruge en hel URI (altså http://www.domæne.dk/side.php)
> tjaaa, jeg har aldrig haft problemer med at linke frem og tilbage med
> ../andenside.php, Heller ikke på min webhost.

Hvis du ser hva som står i manualen, så står det at det er nettlesere
som må støtte det, ikke webhotellet.

<URL: http://php.net/header >


--

Vennlig hilsen

Erlend Klakegg Bergheim

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste