Gilbert Skrevet 6. mars 2004 Del Skrevet 6. mars 2004 Eller for å spørre på en annen måte: skal den gjøre det? Eller skjer det bare hos meg? Passer fryktelig dårlig at den gjør det akkurat nå, skjønner du Lenke til kommentar
???????? Skrevet 6. mars 2004 Del Skrevet 6. mars 2004 Hehe... post koden din. Include skal ikke gi noen error i header. Problemet med header er når PHP forsøker å endre headeren når den allerede er sendt. Headeren sendes automatisk hvis det er NOE output fra PHP. Så pass på at det ikke er noen tomme linjer eller mellomrom før <?php ... header("Location:... I hovedfilen og den filen som du include'er. Det kan heller ikke være noen echo eller print før header. Lenke til kommentar
Gilbert Skrevet 6. mars 2004 Forfatter Del Skrevet 6. mars 2004 Fil som fungerer: <?php session_start(); Header ("Location: $baseurl/1.4/medlem.php"); exit(); ?> Fil som ikke fungerer: <?php session_start(); // HENTE VIKTIG.php include "../viktig.php"; Header ("Location: $baseurl/1.4/medlem.php"); exit(); ?> Viktig.php: <?php $baseurl = "http://www..com"; ?> Lenke til kommentar
???????? Skrevet 6. mars 2004 Del Skrevet 6. mars 2004 (endret) Hvilken feilmelding får du opp? sjekk at filen finnes, både include filen og den du forsøker å sende brukeren til. Det ser ut som det "manger" litt av scriptet, siden du har session_start() - pass på at det ikke er noe feil i sessionen. Endret 6. mars 2004 av ???????? Lenke til kommentar
RipZ- Skrevet 6. mars 2004 Del Skrevet 6. mars 2004 Ganske enkelt; du sender tekst før meldingshodene. Header() er en funksjon som sender meldingshoder til en brukers webbrowser. Meldingshodene står øverst i et HTML-dokument (er usynlig for "vis kilde"). Derfor må også meldingshodene bli postet før alt annet. Når du inkluderer en fil, skriver den antageligvis ut noe tekst. Når du da prøver å sende meldingshoder, er de allerede sendt, og du vil få en feil som denne: "Headers already sent" Løsningen på problemet er å sette Header()-funksjonen over alt som skriver ut tekst. En alternativ løsning kan være å bruke ob_start() øverst i dokumentet. Denne vil da lagre all outputtekst i en buffer, som den skriver ut når den får beskjed om det (ved hjelp av funksjoner som ob_end_flush), eller ved slutten av dokumentet om ikke annet er spesifisert. Dette gjør da at meldingshodene blir sendt før teksten, som også er løsningen på problemet. Lenke til kommentar
Gilbert Skrevet 6. mars 2004 Forfatter Del Skrevet 6. mars 2004 JO takk RipZ, jeg er nok veldig klar over hva Header gjør. Det er derfor den overrasker nå. Jeg har kuttet litt i "Fil som fungerer" og "Fil som ikke fungerer", fordi de fungerer utmerket uten viktig.php. Så feilen må ligge først når viktig.php blir inkludert, og den er med i sin helhet. Men jeg har funnet en løsning: la den ligge en times tid, og komme tilbake til den. Da kommer man med nye øyne, og da oppdages feil veldig fort igjen... så vent og se I'll be back! Lenke til kommentar
jorgis Skrevet 6. mars 2004 Del Skrevet 6. mars 2004 Sikker på at du har viktig.php et nivå opp på serveren, og ikke på samme nivå? Lenke til kommentar
RipZ- Skrevet 6. mars 2004 Del Skrevet 6. mars 2004 Sikker på at viktig.php ikke inneholder output tekst da? Om viktig.php skriver ut noe, f.eks noe gjennom echo, eller at det er noe før php-taggene begynner, så vil det ikke fungere. Uansett, om du bruker ob_start() øverst i dokumentet, så vil ting fungere utmerket. Lenke til kommentar
jorgis Skrevet 6. mars 2004 Del Skrevet 6. mars 2004 Sikker på at viktig.php ikke inneholder output tekst da? Om viktig.php skriver ut noe, f.eks noe gjennom echo, eller at det er noe før php-taggene begynner, så vil det ikke fungere. Uansett, om du bruker ob_start() øverst i dokumentet, så vil ting fungere utmerket. Viktig.php: <?php $baseurl = "http://www..com"; ?> Ikke noe output der... Lenke til kommentar
Gilbert Skrevet 6. mars 2004 Forfatter Del Skrevet 6. mars 2004 Uansett, om du bruker ob_start() øverst i dokumentet, så vil ting fungere utmerket. Det finnes nok delte meninger om hvor vidt ob_start() er en bra ting. Er noen tekniske argumenter, men jeg synes at hvis man ikke kan klare å lage et skript fritt for feil, men må bruke ob_start() for å bli kvitt feilmeldinger, så kan man ikke progge riktig. Lenke til kommentar
Torbjørn Skrevet 6. mars 2004 Del Skrevet 6. mars 2004 vel det må være et eller annet feil et sted. regner med du har sjekket alle phpfiler, og passet på at det ikke er noe luft utenfor <?php ?> taggene i filer som inkluderes før header()? Lenke til kommentar
RipZ- Skrevet 6. mars 2004 Del Skrevet 6. mars 2004 Uansett, om du bruker ob_start() øverst i dokumentet, så vil ting fungere utmerket. Det finnes nok delte meninger om hvor vidt ob_start() er en bra ting. Er noen tekniske argumenter, men jeg synes at hvis man ikke kan klare å lage et skript fritt for feil, men må bruke ob_start() for å bli kvitt feilmeldinger, så kan man ikke progge riktig. Det er jeg enig i. Men siden du hadde trøbbel, tenkte jeg det kunne være en grei løsning. Uansett, hadde kanskje vært en idè å fortelle oss hvilken feilmelding du får. Nå står vi jo bare og gjetter og antar. Lenke til kommentar
???????? Skrevet 7. mars 2004 Del Skrevet 7. mars 2004 ...jeg synes at hvis man ikke kan klare å lage et skript fritt for feil, men må bruke ob_start() for å bli kvitt feilmeldinger, så kan man ikke progge riktig. Den er vel litt streng? I noen tilfeller kan den være veldig kjekk å ha - ikke bare når du vil unngå problemer med header. fjartan post feilmeldingen her, der står det hvor en eventuell output har begynt. Lenke til kommentar
Gilbert Skrevet 7. mars 2004 Forfatter Del Skrevet 7. mars 2004 Uansett, hadde kanskje vært en idè å fortelle oss hvilken feilmelding du får. Nå står vi jo bare og gjetter og antar. Jadda jadda.... la meg få litt tid da, har litt annet å drive med også Lenke til kommentar
Gilbert Skrevet 7. mars 2004 Forfatter Del Skrevet 7. mars 2004 ...jeg synes at hvis man ikke kan klare å lage et skript fritt for feil, men må bruke ob_start() for å bli kvitt feilmeldinger, så kan man ikke progge riktig. Den er vel litt streng? I noen tilfeller kan den være veldig kjekk å ha - ikke bare når du vil unngå problemer med header. Joda, derfor skrevet jeg at det finnes tekniske argumenter, også for å beholde den. Men ikke for å bli kvitt feilmeldinger som burde være innlysende. Jeg mener at i et script på 15 linjer (+ 3 i include-fila) bør en feil være innlysende, hvertfall med tanke på hvor langt jeg har kommer i php-progging (mao ikke særlig avansert) Lenke til kommentar
RottePostei Skrevet 7. mars 2004 Del Skrevet 7. mars 2004 (endret) Viktig.php:<?php $baseurl = "http://www..com"; ?> Pass på at det ikke er noen mellomrom eller space eller noe utenfor <?php ?> Fjern eventuelle tegn og linjeskift etter ?> Endret 7. mars 2004 av RottePostei Lenke til kommentar
Gilbert Skrevet 7. mars 2004 Forfatter Del Skrevet 7. mars 2004 btw: jeg vil ikke ha skylda for at folk sitter og gjetter, når de gjetter på tidligere forslag... men takk for interessen Lenke til kommentar
RottePostei Skrevet 7. mars 2004 Del Skrevet 7. mars 2004 (endret) btw: jeg vil ikke ha skylda for at folk sitter og gjetter, når de gjetter på tidligere forslag... men takk for interessen Hæ? Lenger opp sto det noe om at du ikke måtte ha echo etc. Men jeg hadde et liknende problem en gang fordi jeg hadde linjeskift etter ?> noe som medførte at headerne ble sendt før den kom til header-funksjonen Endret 7. mars 2004 av RottePostei Lenke til kommentar
Gilbert Skrevet 7. mars 2004 Forfatter Del Skrevet 7. mars 2004 vel det må være et eller annet feil et sted. regner med du har sjekket alle phpfiler, og passet på at det ikke er noe luft utenfor <?php ?> taggene i filer som inkluderes før header()? Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå