webForumDet fria alternativet

Märkligt datumfel

11 svar · 451 visningar · startad av Mog

MogMedlem sedan nov. 2003266 inlägg
#1

Jag ska byta ut min gamla server med win 2000 server till en bättre burk med win 2003.
Har fått igång webbserver med PHP och flyttat alla filer.
När man surfar in på sidan (index.php) får man detta felmeddelande:
"The specified CGI application misbehaved by not returning a complete set of HTTP headers."
Har lokaliserat felet till när jag hämtar datum från databasen (access) och ska skriva ut det.

date("Y-m-d", $rs_date->value)

Skriver jag ut värdet direkt så funkar det på nya servern men på gamla ser datumet ut så här: "1142463600".

Inte säker på att det är ett php-problem men ASP-sidor funkar utan problem.

Nån som vet vad det kan vara?

tydalMedlem sedan juni 20034 013 inlägg
#2

Det är unixtime (antal sekunder sen 1/1 1970), så det ser riktigt ut. Inget fel på den raden alltså. Felet ligger nån annanstans.

Enligt felmeddelandet ligger ju problemet i headern. Kan du kanske se i nån logg hur headern ser ut? För det verkar ju som den vägrar visa sidan.

MogMedlem sedan nov. 2003266 inlägg
#3

Jo alltså, ändrar jag

date("Y-m-d", $rs_date->value)

till

$rs_date->value

så funkar det.
Det verkar som att date-funktionen inte tycker om när man skickar in ett 2001-01-01 istället för 1142463600.
Frågan är alltså varför jag får ut ett riktigt datum från databasen på win 2003 men inte på 2000 server.

tydalMedlem sedan juni 20034 013 inlägg
#4

Meningen med date-funktionen är att den ska göra om 1142463600 till 2006-03-16. Om du redan har 2006-03-16 finns inget behov av att köra date-funktionen.

MogMedlem sedan nov. 2003266 inlägg
#5

Nä men jag måste köra så när jag skickar upp filerna på webbhotellet, har bara utvecklingsmiljön hemma.
Så hur gör man för att få ut samma på win 2003?

tydalMedlem sedan juni 20034 013 inlägg
#6

Det är ju i databasen du bestämmer hur datumet ska lagras. Sen finns ju i och för sig drivrutinen som en mellanhand. Undrar om de har kokat ihop där så att den ändrar på datatyperna...

Jag har ju aldrig använt Access, så jag vet inte vad kolumntyperna heter, men om du vill ha ut datumen som ett heltal så heter det unixtime och du bör leta efter det i dokumentationen.

Annars finns ju alltid fullösningen att du med php kollar datumformatet.

if (is_int($rs_date->value)) så behöver du köra date, annars inte.

MogMedlem sedan nov. 2003266 inlägg
#7

Datatyp=datum/tid
formaten man kan välja mellan i bifogad bild.

Fullösning i sista hand.

datatyp_datum.jpg
tydalMedlem sedan juni 20034 013 inlägg
#8

Väljer du det formatet så ska du inte köra date.

Om det är det formatet du har valt även på gamla servern måste det ju nästan vara i databasdrivrutinen som det händer nåt konstigt. Antingen det eller om det står fel i queryn, för där kan du ju även konvertera mellan typer.

MogMedlem sedan nov. 2003266 inlägg
#9

Frågan bara plockar ut värdet utan konstigheter, och det är ju lite löjligt att det är likadant på min gamla server och på webbhotellet med exakt samma kod och samma databasfil.
En annan sak; på nya kan jag ta ut värdet på två sätt:

$rs_date->value
// eller
$rs_date

funkar vilket som. På gamla måste jag ha första alternativet annars skriver den "object".

MogMedlem sedan nov. 2003266 inlägg
#10

Kan det ha med PHP-versionen att göra?
Gamla: 4.3.4
Nya: 5.0.4

tydalMedlem sedan juni 20034 013 inlägg
#11

PHP är inte inblandat här. Såvida inte du inte har skrivit koden själv förstås.

MogMedlem sedan nov. 2003266 inlägg
#12

tydal skrev:

PHP är inte inblandat här. Såvida inte du inte har skrivit koden själv förstås.

Där tar du faktiskt fel, jag testade att avinstallera 5.0.4 och körde in 4.3.4 istället och problemet försvann.
Jag förstår inte varför men så är det :q

139 ms totalt · 3 externa anrop · v20260731065814-full.86db40fa
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)