Avatar billede voirsous Nybegynder
07. januar 2004 - 16:35 Der er 14 kommentarer og
2 løsninger

Egen server: header problem. Whitehat intet problem

Hej igen,
wfter lidt problemmer er jeg nu i gang med at sidte egen server op med  PHP.

i PHPini er den rettet til
session.save_path = c:/tmp
og
c:\tmp findes
og serveren er genstartet

når jeg så køre mit script -apllikation, som virker på Whitehat.dk
giver den enne fejl

Warning: Cannot add header information - headers already sent by (output started at C:\apache\htdocs\astronomen\siden\load.php:2) in C:\apache\htdocs\astronomen\siden\load.php on line 56


her er noget af koden:

---
if($_SESSION['brugerID']) {
$_SESSION['kode'] = $astro['kode'];
$_SESSION['brugernavn'] = $astro['brugernavn'];
$_SESSION['navn'] = $astro['navn'];
$_SESSION['mail'] = $astro['mail'];
$_SESSION['lokation'] = $astro['lokation'];
$_SESSION['beskrivelse'] = $astro['profil'];
$_SESSION['profilbillede'] = $astro['profilbillede'];

#if(!is_dir($_SERVER["DOCUMENT_ROOT"] ."/bruger/". $_SESSION['brugerID'])) {
#mkdir($_SERVER["DOCUMENT_ROOT"] ."/bruger/". $_SESSION['brugerID']);
#}


$_SESSION['inde'] = "online";



}
else {
?>
<html>
<head>
<title>Fejl</title>
<script type="text/javascript">
alert("System besked: Forkert brugernavn eller kode");
location.href("index.php?frem=login");
</script>
</head>
<body>
<h1>Forkert kode / bruger</h1>
<a href="index.php?frem=login">Login</a> eller <a href="opretbruger.php">Opret bruger</a>.
</body>
</html>

<?php
}
}
if($_SESSION['inde']=="online") {

if($logud) { <-- linie 56
$_SESSION['inde'] = "offline";


præcis det samme virker på Whitehat. Hvorfor?
Avatar billede roo104 Nybegynder
07. januar 2004 - 16:37 #1
session.save_path = c:/tmp er vel session.save_path = "c:\tmp" ?
Avatar billede fcknet Nybegynder
07. januar 2004 - 16:37 #2
Det er fordi du kører header() kommandoen efter du har sendt output til browseren.
Avatar billede fcknet Nybegynder
07. januar 2004 - 16:37 #3
Alle Header() skal køres FØR du kører echo eller print eller skriver noget uden for PHP...
Avatar billede fcknet Nybegynder
07. januar 2004 - 16:38 #4
Desuden kan du ikke skrive cookies da de også sender headers når de sendes.
Avatar billede tefcke Nybegynder
07. januar 2004 - 16:39 #5
Det er kun en warning du får, på whitehat har de sikkert sat en andet error_reporting i php.ini end du har!
Avatar billede stingbat Nybegynder
07. januar 2004 - 16:43 #6
whitehat tror jeg nærmere kører i produktionsmiljø, fremfor udviklingsmiljø. Ergo gør dette, at under sidstnævnte, fremkommer fejlene - hvor førstnævnte ignorerer dem det. Men samtidig kan de have slået "buffer" til, som ligeledes "afhjælper" fejlen, så den ikke forekommer på f.eks. whitehat.
Avatar billede voirsous Nybegynder
07. januar 2004 - 16:43 #7
jamen hvis de har sat end ind, kan jeg også vel :). Søger lidt.

anyway har også fået smidt den forkerte kode op her...
Avatar billede stingbat Nybegynder
07. januar 2004 - 16:47 #8
Du kan sagtens ændre "output_buffering" så fejlen ikke opstår - men lidt dårlige kode skik...

Men hvis du vil ændre, så ændre linien:
output_buffering = Off

til:
output_buffering = On

Så får du ikke fejlen... :-)
Avatar billede voirsous Nybegynder
07. januar 2004 - 17:00 #9
Tak, er dog stødt på et nyt problem.
når jeg vil overføre variablerne via en POST-form fra en side til en anden siger den de ikke indholder noget. Det passer ikke. Har ændret register_globals = fra off til on i PHPini og genstartet. men det hjalp ikke?
Avatar billede fcknet Nybegynder
07. januar 2004 - 17:04 #10
hmm... Det burde jo virke med register_globals til on
Avatar billede stingbat Nybegynder
07. januar 2004 - 17:04 #11
Du benytter vel forhåbenlig $_POST["varnavn"], ikke?
Ellers kan den muligvis brokke sig lidt.

Men ... vil nu ikke lige råde dig til at benytte register_globals - eftersom at du derved ikke kan "se" hvorvidt indholdet kommer fra GET, POST, COOKIE osv. Brug hellere $_POST["..."] osv - giver samtidig også mere sikkerhed
Avatar billede stingbat Nybegynder
07. januar 2004 - 17:06 #12
Mener forresten heller ikke at i nyere versioner af PHP, at den opfatter register_globals som den plejer. :-/
Avatar billede voirsous Nybegynder
07. januar 2004 - 17:06 #13
det gør jeg skam også, regner ikke med det er en kode fejl, da det som før er blevet sagt :) det virkede på whitehat, så tror det er indstillings fejl?
Avatar billede fcknet Nybegynder
07. januar 2004 - 17:12 #14
hvis du bruger $_POST['variabel'] istedet for bare $variabel behøver register_globals ikke være on.
Avatar billede stingbat Nybegynder
07. januar 2004 - 17:13 #15
Hvis din formular benytter method="post", og du ligeledes bruger $_POST["varnavn"] på den side som får indeholdet, burde det meget gerne virke...

Ellers må du i gang med at lave lidt "debugging" ...
Avatar billede voirsous Nybegynder
07. januar 2004 - 17:16 #16
er i fuld gang. :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester