Doffar Skrevet 19. august 2005 Del Skrevet 19. august 2005 (endret) Hallo! Jeg har et lite problem med et script jeg har funnet (en her på hw som har laget det) men jeg får en feilmelding jeg ikke har sett før. Trenger hjelp litt raskt. Jeg får opp denne feilmeldingen: Notice: Undefined index: i in D:\webroot\wwwroot\ungdom\scripts.php on line 18 Hva er det som er feil. Har det noe med serveren å gjøre? Jeg har nettop byttet server og har ikke hatt problemet før nå. Mvh Doffar EDIT: Jeg byttet fra LINUX til WIN server. Og feilen kommer bare når jeg kjører "hovedsiden", men ikke på andre "include"-sider. Legger ved scriptet slik at det kanskje er lettere å se feilen: <?php function inclusion($dir = './', $suffix = '.php', $defaultside = 'hoved' , $includeparameter = 'i')//Inkluderingsscriptet// { $ex = array('.', '..'); //filer som skal strippes \ viktig / //Hvis parameter $dir er ei mappe og det går an å lese fra den, lag et array med liste over alle filer if (is_dir($dir) && $dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { if(in_array($file, $ex)){continue;} $allowed_files[] = $file; } closedir($dh); } //få directory fra bruker $include = $_GET[$includeparameter]; //strippe potensielle farer $include = str_replace(array('..', '//', 'ftp'), '', $include); $include = strtolower($include); if(in_array($include . $suffix, $allowed_files)) { include($dir . $include . $suffix); } else { //fila som blei forespurt av brukeren finnes ikke i arrayet //hvis brukeren i det heletatt har skrevet inn ei side for å inkludere if($_GET[$includeparameter]) { //hvis brukeren har blitt videresend, e.g. trykt på en link if($_SERVER['HTTP_REFERER']) { echo '<div>øhh, det virker som om linken du trykte på, ikke virka. Feilen vil bli retta så fort som mulig.</div>'; } else { //hvis brukeren har skrevet inn adressen manuelt echo 'Sorry, sida du skreiv inn finnes ikke. Gå tilbake til <a href="http://www.ptb.no/ungdom/">hovedsida</a>'; } } else { //hvis brukeren ikke har skrevet inn adresse / trykt på lenke, og fila ikke finnes i array. E.g. startsida include($dir . $defaultside . $suffix); } } }//end function ?> Endret 19. august 2005 av Doffar Lenke til kommentar
Ueland Skrevet 19. august 2005 Del Skrevet 19. august 2005 Ingenting er feil, det er bare PHP som sier ifra om litt for mye.. legg inn error_reporting(0) øverst i koden (etter <?php) så slipper du den meldingen. Lenke til kommentar
Doffar Skrevet 19. august 2005 Forfatter Del Skrevet 19. august 2005 (endret) Er ikke så veldig flink med sånt. Jeg får bare at det er feil på den linjen jeg legger det inn på. Dette er sånn jeg har lagt det inn: <?php error_reporting(0) function inclusion($dir = Får feil hvis jeg legger det inn alene på linjen under også. EDIT: Takk for raskt svar EDIT: Fant det ut. Hehe. Litt hektisk her så jeg glemte ";". Endret 19. august 2005 av Doffar Lenke til kommentar
Ueland Skrevet 19. august 2005 Del Skrevet 19. august 2005 Whops, min feil.. <?php //slå av feilmeldinger fra PHP error_reporting(0); Så resten av koden.. Lenke til kommentar
???????? Skrevet 19. august 2005 Del Skrevet 19. august 2005 (endret) Hint: error_reporting(0) slår vel helt av alle feilmeldinger, inkl. de du burde se. Bruk error_reporting(E_ALL ^ E_NOTICE); Send også en mail til webhosten (webhotellet) ditt å si fra at de kjører uvanlige instillinger på serveren. Dette er sikkert en glipp fra de, og de burde rette det. Hvis ikke vil mange tusen ferdige scripts vise unødvendige feilmedinger. Endret 19. august 2005 av ???????? Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå