Gå til innhold

Feil i php-koden? Har virket i mange år


Anbefalte innlegg

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 av JonH
Lenke til kommentar
Videoannonse
Annonse
  • 2 uker senere...

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 av Hans_Vidar
Lenke til kommentar

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 av Crowly
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...