JonH Skrevet 21. desember 2018 Del Skrevet 21. desember 2018 (endret) Har i mange år hatt en hjemmeside med menystruktur som denne: Alt har fungert utmerket frem til nå nylig, men nå kommer bare hovedmenyen opp uten noe mer innhold på siden. Noen som vet hva som er galt? Siden har ikke vært oppdatert på et halvt år, så i sommer fungerte det. <?php $main_dir = "."; $s1_dir = "./gallery/s1"; $s2_dir = "./gallery/s2"; $mainpage = "./home.php"; $fileext = ".php"; $error404 = "<p>Siden eksisterer ikke</p>"; $errorext = "<p>Kan ikke åpne eksterne sider</p>"; $main = $_GET['main']; $s1 = $_GET['s2']; $s2 = $_GET['s1']; if (isset($main)) { $main = stripslashes(strip_tags($main)); $forbidden1 = ereg("\.\./", $main); $forbidden2 = ereg("/", $main); $includepath= $main_dir . "/" . $main . $fileext; } elseif (isset($s1)) { $s1 = stripslashes(strip_tags($s1)); $forbidden1 = ereg("\.\./", $s1); $forbidden2 = ereg("/", $s1); $includepath= $s1_dir . "/" . $s1 . $fileext; } elseif (isset($s2)) { $s2 = stripslashes(strip_tags($s2)); $forbidden1 = ereg("\.\./", $s2); $forbidden2 = ereg("/", $s2); $includepath= $s2_dir . "/" . $s2 . $fileext; } else { $includepath = $mainpage; } if ($forbidden1 || $forbidden2) { echo "$errorext"; } else { if (@fopen("$includepath", "r")) { include ("$includepath"); } else { if (!(@fopen("$includepath", "r"))) { echo "$error404"; }}} ?> Hovedmenyen: index.php?s1=gallery index.php?s2=gallery Endret 21. desember 2018 av JonH Lenke til kommentar
Thorbear Skrevet 21. desember 2018 Del Skrevet 21. desember 2018 Er serveren nylig oppdatert til PHP 7? ereg() finnes ikke lenger i PHP 7. Ellers kan du slå på feilrapportering, så kan PHP selv fortelle deg hva som går galt. F.eks: error_reporting(E_ALL); ini_set("display_errors", 1); Lenke til kommentar
Crowly Skrevet 21. desember 2018 Del Skrevet 21. desember 2018 Som Thorbear nevner så er ereg() fjernet fra php 7, og vært deprecated siden 5.3. Erstatt den med preg_match(). Lenke til kommentar
Hans_Vidar Skrevet 31. desember 2018 Del Skrevet 31. desember 2018 (endret) Selv om koden som er brukt på noen nettsider jeg oppdaterer innholdet på er litt annerledes, så opplever jeg samme problem nå som Domeneshop sin server vil bruke PHP 7.2 og ikke lenger 5.6 (alt fungerer veldig greit i 5.6). Jeg har ikke laget disse kodene, og min kunnskap om PHP er svært lav dessverre. Liten tvil om at endringene fra PHP 5.6 til 7.2 gir en del utfordringer med tanke på menyer som ikke lenger fungerer. Endret 31. desember 2018 av Hans_Vidar Lenke til kommentar
Crowly Skrevet 31. desember 2018 Del Skrevet 31. desember 2018 (endret) Som med alle nye versjoner så er det funksjoner osv som kan være depricated eller ha fått andre endringer, benytter koden man kjører noe av dette må koden nødvendigvis oppdateres. Dette er nok ett sted å begynne: http://php.net/manual/en/migration70.new-features.php Php 7 er noe strengere enn 5 på noen områder i forhold til hva som bl.a. aksepteres av "dårlig" eller feil kode. Har man ikke skrevet koden selv må man se om det finnes nyere utgaver for php 7.x og oppgradere til denne/disse. 7.2 vil få sikkerhetsfikser frem til 30 Nov 2020, innen den tid så vil man bli nødt til å oppgradere igjen. Men overgangen fra f.eks. 7.2 til 7.3 (og senere 7.x) bør være mer smerte fri enn fra 5.x til 7.x. For hvor lenge hver versjon er støttet sjekk: http://php.net/supported-versions.php Da er det mulig å ligge i forkant og få testet koden før man oppgradere live. Docker er ett ypperlig verktøy for dette, alternativt så er det mulig ha å installert flere forskjellige php versjoner på linux (f.eks. ubuntu) og enkelt bytte i mellom disse. Endret 31. desember 2018 av Crowly 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å