Mr_Cerato Skrevet 1. mai 2007 Del Skrevet 1. mai 2007 Hei Jeg har i alle år brukt en eldre versjon av PHP, dvs. 4.3.0. og eldre. Etter at versjonene har blitt oppdatert gjennom årene har min faste IF-setning sluttet å fungere. Jeg bruker denne koden til å hente fram *.inc filer når det blir trykket på en link. Problemet er at det er en del år siden jeg har holdt på med dette så jeg aner ikke hva som er problemet. Er det noen som kan forklare meg hvorfor dette ikke virker lenger? Har det noe med sikkerheten å gjøre? Jeg har forsøkt å lete opp problemstillingen på forumet, men har ikke funnet noe svar. Koden er: if (!is_file('$link_id.inc')) $link_id = 'article_summary'; if ($link_id != '') { include(''.$link_id.'.inc'); } else { include('article_summary'); } Er evig takknemlig for svar. Lenke til kommentar
Ståle Skrevet 1. mai 2007 Del Skrevet 1. mai 2007 (endret) if (!is_file($link_id.'.inc')) $link_id = 'article_summary'; if ($link_id != '') include($link_id.'.inc'); else include('article_summary.inc'); men prov denne isteden. Den er bedre if (is_file($link_id.'.inc') && isset($link_id)) include($link_id.'.inc'); else include('article_summary.inc'); Endret 1. mai 2007 av Ståle Lenke til kommentar
Mr_Cerato Skrevet 1. mai 2007 Forfatter Del Skrevet 1. mai 2007 if (!is_file($link_id.'.inc')) $link_id = 'article_summary'; if ($link_id != '') include($link_id.'.inc'); else include('article_summary'); men prov denne isteden. Den er bedre if (is_file($link_id.'.inc') && isset($link_id)) include($link_id.'.inc'); else include('article_summary.inc'); 8509999[/snapback] Hmmm.. Nei, det gjorde ikke noen forskjell dessverre. Lenke til kommentar
xqus Skrevet 1. mai 2007 Del Skrevet 1. mai 2007 Får du noen feilmeldinger? Hva som skjer/ikke skjer? Lenke til kommentar
gxi Skrevet 1. mai 2007 Del Skrevet 1. mai 2007 Nå sier du ikke noe om hva som faktisk skjer, men jeg vil tippe problemet ligger i register_globals: http://www.php.net/register_globals Lenke til kommentar
Mr_Cerato Skrevet 1. mai 2007 Forfatter Del Skrevet 1. mai 2007 Får du noen feilmeldinger?Hva som skjer/ikke skjer? 8510441[/snapback] Det eneste som skjer er at jeg får opp 'article_summary.inc' uansett hvilken link jeg trykker på. Filbanen i nettleseren er helt korrekt, men den viser hele tiden til 'article_summary.inc'. Ingen feilmeldinger dukker opp. På webserveren jeg har kjørt dette har det fungert i alle år, men i går oppdaterte de versjonen av PHP og nå skjer det altså ingenting. Lenke til kommentar
mske Skrevet 1. mai 2007 Del Skrevet 1. mai 2007 (endret) Prøv denne: if(!is_file("$link_id.inc")) { $link_id = "article_summary"; } if($link_id != "") { include("$link_id.inc"); } else { include("article_summary"); } Endret 1. mai 2007 av -Magne- Lenke til kommentar
Mr_Cerato Skrevet 1. mai 2007 Forfatter Del Skrevet 1. mai 2007 Prøv denne: if(!is_file("$link_id.inc")) { $link_id = "article_summary"; } if($link_id != "") { include("$link_id.inc"); } else { include("article_summary"); } 8510476[/snapback] Nei.. Det utgjorde ingen synbar forskjell. Lenke til kommentar
gxi Skrevet 1. mai 2007 Del Skrevet 1. mai 2007 Les linken jeg gav lengre opp. Det er definitvt register_globals-"problem". Jeg vil ikke gi en kode som løser problemet, i.o.m at du garantert opplever det et annet sted i koden, og uansett må endre mer. Lenke til kommentar
Mr_Cerato Skrevet 1. mai 2007 Forfatter Del Skrevet 1. mai 2007 Les linken jeg gav lengre opp. Det er definitvt register_globals-"problem". Jeg vil ikke gi en kode som løser problemet, i.o.m at du garantert opplever det et annet sted i koden, og uansett må endre mer. 8510559[/snapback] Hmm.. Det kan se sånn ut. Men hvordan jeg da løser problemet er jeg fortsatt ikke sikker på. Det vil i prinsippet si at man må definere hvor variablene kommer fra om jeg har forstått det riktig? Hvordan ville det blitt løst i henhold til koden ovenfor? Lenke til kommentar
itsmebth Skrevet 1. mai 2007 Del Skrevet 1. mai 2007 (endret) PHP <?php if (is_file($_GET['link_id'].'.inc') && isset($_GET['link_id'])) include($_GET['link_id'].'.inc'); else include('article_summary.inc'); ?> Jeg gjetter på at register_globals har blitt skrudd av. Les mer her. Endret 1. mai 2007 av itsmebth Lenke til kommentar
Mr_Cerato Skrevet 1. mai 2007 Forfatter Del Skrevet 1. mai 2007 PHP <?php if (is_file($_POST['link_id'].'.inc') && isset($_POST['link_id'])) include($_POST['link_id'].'.inc'); else include('article_summary.inc'); ?> Jeg gjetter på at register_globals har blitt skrudd av. Les mer her. 8510602[/snapback] Det kan virke sånn. Takk for forslaget, men fortsatt så skjer det nada når jeg trykker på linkene. Lenke til kommentar
gxi Skrevet 1. mai 2007 Del Skrevet 1. mai 2007 Den kommer nok fra GET; ikke POST, da POST er bare ved skjemaer med method="post". Bytt ut $_POST med $_GET Lenke til kommentar
Ståle Skrevet 1. mai 2007 Del Skrevet 1. mai 2007 Jeg tok det som om han allerede hadde satt $link_id jeg :o Burde det ikke vaert $_GET hvis det er et include()-script han lager? Lenke til kommentar
Mr_Cerato Skrevet 1. mai 2007 Forfatter Del Skrevet 1. mai 2007 Jeg tok det som om han allerede hadde satt $link_id jeg :o Burde det ikke vaert $_GET hvis det er et include()-script han lager? 8510661[/snapback] Caramba! :!: Da ble det schwung på sakene. Takk for all hjelp fra alle sammen. Det reddet dagen. 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å