Avatar billede thanse21 Nybegynder
06. april 2005 - 09:23 Der er 15 kommentarer og
1 løsning

Forskel ml. ver. 4.x og 5.x

Jeg er ikke ret meget inde i php og da slet ikke på foskellene mellem versionerne.

Jeg er pt ved at flytte nogen sites fra en udbyder til en anden og den nuværende udbyder har en php version 4.x og den nye har en version 5.x af php.

Når jeg nu prøver at køre sitet fra 4.x versionen på den nye, der har 5.x kommer der en masse fejl a la:

Notice: Undefined index: 0 in (...)\demo\stamdata.php on line 59

Nogen ide om hvad dette kan skyldes...?
Avatar billede sone Nybegynder
06. april 2005 - 09:25 #1
...hvad står der i linie 59?
Avatar billede thanse21 Nybegynder
06. april 2005 - 09:26 #2
<td width="190" class="contentdata"><?php echo $RELATIONSHIP[$stamdata['relationship']]; ?></td>

$RELATIONSHIP er en global variabel, tror jeg nok, det er ikke mig der har lavet det, og jeg er IKKE velbevandret i php
Avatar billede Daniel.E Praktikant
06. april 2005 - 09:28 #3
Forskellen på PHP version 4 og 5 er ikke helt vildt store, men der er kommet nolge nye ting.

Version 5:

OOP features, men ikke ligsom C++ (endnu)
Der er rettet en masse fejl, kig på www.php.net dokumentation

version 5 er blevet strengere når den tolker ens kode.  Man skal kode noget pænere, og tænke sig lidt mere om.


Hvis man adligevel ikke benytter PHP´s OOP features, kan man ligeså godt beholde PHP 4, men man skal da benytte OOP.


De fejl der kommer på dit nye webhotel skyldes at PHP 5 er mere streng som før nævnt.  Du skal huske at:

- Oprette variabler før du benytter dem
- Være grundig når du koder, f.eks at du ikke overskrider grænser
- Husk at spørg efter de rigtige navne i $_GET og $_POST

Disse 3 plejer at give mange fejl hvis man tager PHP 4 kode, og sætter ind i PHP 5 kode, hvis man ikke har kodet det ordenligt fra starten.  Eller efter PHP 5´s nye parsing regler.
Avatar billede Daniel.E Praktikant
06. april 2005 - 09:29 #4
Din fejlbesked fortæller mig at du har en variablen som du prøvet at tilgå på index 0, og den har ikke et index 0.
Avatar billede Daniel.E Praktikant
06. april 2005 - 09:30 #5
Hvis du nu havde kodet i C før PHP, så ville det være meget nemmere at forstå.  Du har vel ikke kodet i C ??
Avatar billede Daniel.E Praktikant
06. april 2005 - 09:34 #6
brug hellere

<?= $variabel ?>

istedet for

<?php echo $variabel; ?>
Avatar billede thanse21 Nybegynder
06. april 2005 - 09:37 #7
vb2 -> Jeg har faktisk ikke kodet php rigtigt. Jeg har derimod kodet java, c# og lidt c++. Kan godt se at det noget med index i et array der er forkert, eller måske er indexet fint nok og arrayet er forkert?
Avatar billede Daniel.E Praktikant
06. april 2005 - 09:40 #8
Jeg tror ikke er array´et er forkert... jeg tror mere at "$stamdata['relationship']" denne indeholder forkerte informationer.
Avatar billede barklund Nybegynder
06. april 2005 - 10:01 #9
Undefined indexes er "bare" en notice. Det er ikke en vigtig warning, bare en besked om,  at du prøver at tilgå noget, der ikke lige er der, og derfor giver NULL. Dit gamle hotel havde sikkert som standard slået notices fra, mens det nye har dem slået til. Standard er så vidt jeg husker, at de er slået fra.

Hvis du ikke lige kan overskue at rette fejlen, så kan du istedet sætte fejlrapporteringsniveauet op igen. Det gør du via error_reporting:

error_reporting(E_ALL ^ E_NOTICE);

Så er notices slået fra og dit script vil "måske" virke som det skal :)

--
Morten Barklund
Avatar billede thanse21 Nybegynder
06. april 2005 - 10:07 #10
Tak for det Morten, der er i hvert fald forskel på indstillingerne på de to udbydere. Så er det bare spørgsmålet om jeg kan få den nye udbyder til at ændre de settings...
Avatar billede barklund Nybegynder
06. april 2005 - 10:17 #11
Det kan du selv gøre ved at skrive ovenstående - for eksempel i en eller anden generel include fil, som inkluderes på alle sider. Eller via .htaccess, hvis det er noget apache gejl :)
Avatar billede thanse21 Nybegynder
06. april 2005 - 10:19 #12
barklund drop et svar og få nogle point.

vb2 du kan også få lidt for indsatsen :-)
Avatar billede barklund Nybegynder
06. april 2005 - 10:22 #13
Helt fint :)
Avatar billede barklund Nybegynder
06. april 2005 - 10:29 #14
Nu glemte du så vb2 :)

vb2 >> vil du have halvdelen af pointene?
Avatar billede Daniel.E Praktikant
06. april 2005 - 10:37 #15
nej tak... samler ikke points...
Avatar billede Daniel.E Praktikant
06. april 2005 - 13:12 #16
Men du er velkommen til at skrive et par ord om mig i min karma.. :)
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