Avatar billede mantichora Nybegynder
19. februar 2008 - 08:11 Der er 16 kommentarer og
1 løsning

Include-weirdness i PHP

Jeg (eller rettere: min arbejdsgiver) har en webside på Surftown i PHP/MySQL. Jeg har udviklet den lokalt på en Apache server, hvor den virkede fint, og den virkede også strålende på Surftown i starten.

I fredags gik siden dog ned et stykke tid, og i mandags virkede sessions pludselig ikke - hvis jeg loggede ind, loggede den ud igen så snart jeg skiftede side.

Jeg fandt ud af, at det var fordi min session_start() lå i en included side, inc/common.php - en praksis jeg næsten altid benytter, og som altid har virket før.

Det allerførste der står i index.php er
<?php
require('inc/common.php');

Og det allerførste der står i common.php er session_start();

Da jeg flyttede session_start() ind i index.php i stedet, virkede alting perfekt - inklusiv de andre funktioner der er i common.php

Nogen som helst logisk forklaring på det? Evt en løsning?
Avatar billede jakobdo Ekspert
19. februar 2008 - 14:54 #1
Jeg har lige testet følgende på et surftown hotel:

<?php
//session.php
session_start();
$_SESSION['test'] = 'EKSPERTEN.DK';
?>

<?php
//test.php
require('session.php');
echo isset($_SESSION['test']) ? $_SESSION['test'] : 'FEJL';
?>

Ved kørsel af test.php, får jeg output: EKSPERTEN.DK
Avatar billede mantichora Nybegynder
19. februar 2008 - 15:50 #2
Præcis som man skulle tro. Og præcis som det gør på min lokale Apache server, og som det gjorde på Surftown før den gik ned. Netop derfor forstår jeg det virkelig heller ikke.

Men i det mindste bekræfter du mig i at det ikke BURDE ske.
Det er altid rart at vide man ikke er helt idiot :)
Avatar billede jakobdo Ekspert
19. februar 2008 - 16:03 #3
Sorry, jeg tror faktisk "mit" hotel er hos One.com.
Avatar billede xtom2 Nybegynder
20. februar 2008 - 07:30 #4
Mornings :)

Har du stadig problemer med sessions hos Surftown?
Ang. det der skete i fredags: http://blog.surftown.dk/?p=24
Avatar billede mantichora Nybegynder
20. februar 2008 - 07:41 #5
Jeg ved faktisk ikke om problemet stadig er der - jeg lod bare session_start() være i index.php. Men jeg kan da lige prøve at tjekke efter når jeg kommer på arbejde senere. Tak for link.
Avatar billede mantichora Nybegynder
22. februar 2008 - 18:36 #6
Hm. Samme problem stadig.
Jeg fik ikke rigtig løst problemet, men I skal have tak for forsøget, og må gerne lægge svar.
Avatar billede jakobdo Ekspert
23. februar 2008 - 12:10 #7
Har du forsøgt at lave noget helt basic test af session på dit webhotel ?
Noget ala min test kode?
Avatar billede mantichora Nybegynder
23. februar 2008 - 20:12 #8
Ja, det har jeg. Den fattede virkelig slet ikke den linje, hvilket især undrer mig fordi den fint forstod resten af funktionerne i common.php
Avatar billede olebole Juniormester
23. februar 2008 - 20:47 #9
<ole>

Hvilket tegnsæt bruger du - og hvilken editor er de gemt i?

/mvh
</bole>
Avatar billede mantichora Nybegynder
24. februar 2008 - 11:15 #10
Alle UTF-8, Programmer's Notepad 2.
Avatar billede jakobdo Ekspert
24. februar 2008 - 16:45 #11
Jeg tror olebole er på udkig efter de berømte BOM tegn, som kan drille noget så forfærdeligt, når man arbejder med sessions, header() og lign.
Avatar billede olebole Juniormester
24. februar 2008 - 17:30 #12
- præcis  :)

Jeg bruger ikke selv Notepad 2, så jeg ved ikke, hvad den gør - men det kan næsten ikke være andet end BOM, der 'bestiller' den fejl. Det er dog ikke rigtig til at vide, når man ikke selv sidder med koden og en FTP-adgang.

mantichora >> Har du mon slået fejlmeldinger til? Da du ikke har fortalt om den slags, kunne jeg frygte, fejlmeldinger er slået fra - og så er det endnu vanskeligere at finde fejlen  ;o)
Avatar billede jakobdo Ekspert
24. februar 2008 - 17:54 #13
mantichora: Du kan prøve at vise din kode i HEX VIEW.
Så skulle du kunne se 3 ekstra tegn foran <? eller <?php
De kan ikke ses i normalt view.
Avatar billede mantichora Nybegynder
25. februar 2008 - 00:03 #14
Ah, det var den I fiskede efter. Men nej, desværre. I PN2 kan man enten vælge "UTF-8" eller "UTF-8 No Mark", som ikke har de irriterende tegn, der også altid skaber "output already sent" fejlene, og den vælger jeg altid. Desværre.

Og fejlmeldinger er ikke til, nej. Det har jeg desværre ikke muligheden for på den server.
Avatar billede mantichora Nybegynder
25. februar 2008 - 00:09 #15
Men jeg må da lige dobbelttjekke om BOM'en er gået ned (kæft et dårligt ordspil) når jeg er på arbejde i morgen. Det KAN jo være den er smuttet på en eller anden måde :)
Avatar billede mantichora Nybegynder
25. februar 2008 - 09:41 #16
Nix, desværre. Ingen underlige tegn.
Avatar billede mantichora Nybegynder
29. april 2008 - 11:47 #17
Nå, det fandt jeg aldrig en løsning på :(

Mange tak for forsøgene.
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