Avatar billede hyllested Nybegynder
23. marts 2001 - 13:52 Der er 6 kommentarer og
2 løsninger

undefined offset?

Warning: Undefined offset: 2 in c:\\inetpub\\wwwroot\\omknet\\dhcp.php on line 20
er en fejlmeddelelse jeg får på følgende kode:

for ($i=17; $i < count($dhcp_liste); $i++) {           
        $entry[$i]=explode(\",\",$dhcp_liste[$i]);       
        echo \"<br>\".$entry[$i][2].\" \".$entry[$i][4];
}

Er alvorligt? hvad betyder det? og hvordan slipper jeg fa med det?

Avatar billede hyllested Nybegynder
23. marts 2001 - 13:53 #1
dette er linie 20:

echo \"<br>\".$entry[$i][2].\" \".$entry[$i][4];
Avatar billede masterbp Nybegynder
23. marts 2001 - 14:05 #2
Det betyder af $entry[$i] ikke har noget indhold på plads 3 (dvs index 2).
Tjek din $dhcp_liste var. Den skulle indeholde linier med nogle kommeseparerede udtryk:

streng1,streng2,streng3,streng4,streng5

Din lille løkke udskriver streng3 og streng5, men det ser ud til, at der ikke findes en streng3?
Avatar billede hyllested Nybegynder
23. marts 2001 - 19:51 #3
Den fulde kode ser indtil videre således ud!
og linie 20(den med echo \"<br>\".... spytter alt det indhold som den har fundet ovenfor... Derfor undrer jeg mig kraftigt.

<HTML>
<HEAD>
<TITLE>DHCP-reader </TITLE>

</HEAD>

<?
$dhcp_fil=fopen(\"dhcp.wed.txt\",\"r\");        // Åbner filen .txt-filen
$i=0;
while (!feof($dhcp_fil)) {                            //Lægger de 220 første karakterer af hver line ind array: dhcp_liste[]
    $dhcp_liste[]=fgets($dhcp_fil, 220);
                                                            // echo $dhcp_liste[$i].\"<br>\";
    $i++;
}

for ($i=17; $i <= count($dhcp_liste); $i++) {        // Log-indholdet starter i linie 18 (arrayplads 17)
    $entry[$i]=explode(\",\",$dhcp_liste[$i]);            //Opdeler hver linie ved kommaer
    echo \"<br>\".$entry[$i][2].\" \".$entry[$i][4];



   
?>


</BODY>
</HTML>
Avatar billede hyllested Nybegynder
23. marts 2001 - 19:52 #4
Er det \"dokumenteret iorden\" at arbejde med arrays i flere dimensioner? Hvor kan man læse om det henne?
Avatar billede masterbp Nybegynder
23. marts 2001 - 22:20 #5
Man kan sagtens arbejde med arrays i flere dimentioner (se evt. http://www.php.net/manual/en/function.array.php), men jeg kan ikke se, at det er relevant i dette tilfælde. Kunne din FOR løkke ikke se sådan ud?

for ($i=17; $i < count($dhcp_liste); $i++) {           
        $entry=explode(\",\",$dhcp_liste[$i]);       
        echo \"<br>\".$entry[2].\" \".$entry[4];
}

Dette løser dog ikke dit oprindelige problem, som må ligge i, at filen dhcp.wed.txt ikke (i hver linie) kan deles op i 5 \'bidder\' afskildt af komma.
Avatar billede hyllested Nybegynder
24. marts 2001 - 14:38 #6
*Grunden til at jeg ville lægge den i entry[$i] var at jeg skal sorterer i indholdet og ikke bare echo\'e det med det samme.

Jeg ved at filen kan inddeles i det samme antal bidder hele vejen. Og jeg også godt skrive de indlæste data ud med ovennævnte FOR-løkke, men tilsidst kommer nævnte fejl \"undefined offset...\"

Avatar billede masterbp Nybegynder
24. marts 2001 - 15:31 #7
Tja, hvis der ikke kan rettes i fejlen, må den jo bare ignoreres :)
Du kan lade være med at slå E_NOTICE til. Dette kan f.eks gøres sådan:
error_reporting (E_ERROR | E_WARNING | E_PARSE |E_CORE_ERROR | E_CORE_WARNING); 

Avatar billede hyllested Nybegynder
25. marts 2001 - 22:43 #8
Jeg har løst problemet med en WHILE løkke og ved at arbejde med:
\"count($dhcp_liste) -1\"
og ikke
\"count($dhcp_liste)\"

tak for opmærksomheden
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