JaRu Skrevet 12. mars 2009 Del Skrevet 12. mars 2009 Har prøvd meg litt med PHP programmering i forbindelse med noen nettsider. Bruker PHP for å gjøre ting enklere med tanke på menyer, header, footer, etc. Eksempel (har beskåret koden en del): Link: default.php3?filnavn=om.php3&menyvalg=1 Filen default.php3 ser slik ut: <?php $fil = $filnavn; include("header.php3"); include("tekst/".$fil); include("footer.php3"); ?> Virker som at dette fungerer forskjellig på forskjellige versjoner av php. Jeg kjører følgende på localhost: Apache/1.3.20 (Win32) PHP/4.0.6. Administrerer flere kontoer hos domeneshop og på et nettsted er alt ok mens på et annet så funker det ikke. Sjekk her: www.flekkefjordkarateklubb.no og her www.jaru.no/karate Ellers kan det nevnes at jeg har prøvd andre versjoner av phpdev på flere maskiner, men det er kun en av dem som jeg får til å fungere med php koden min. Håper mitt spørsmål/problem var forståelig... Lenke til kommentar
OIS Skrevet 12. mars 2009 Del Skrevet 12. mars 2009 Der det virker har du register globals som på, der det ikke virker er det av. Register globals er en skikkelig farlig løsning, og burde slås av der du kan. Dette kan du gjøre i php.ini, eller i .htaccess med linjen: php_flag register_globals off Den beste løsningen i php koden din er å bruke $fil = $HTTP_GET_VARS['filnavn'] istedenfor $filnavn og $$HTTP_GET_VARS['menyvalg'] istedenfor $menyvalg. Mer info om $HTTP_GET_VARS og $_GET her. PHP 4.0.6 er skikkelig gammel, og du burde oppgradere til en nyere versjon av PHP4 i det minste, da kan du bruke superglobalen $_GET. Helst burde du oppgradere til PHP5. Koden din er foresten veldig usikker. Du burde definere hvilke filnavn som er gyldige i et array eller lignende, og kontrollere at filnavnet gitt i GET (eller POST) er der (med in_array). Lenke til kommentar
JaRu Skrevet 12. mars 2009 Forfatter Del Skrevet 12. mars 2009 Jeg er egentlig bare en amatør programmerer, er jo ikke de mest avanserte sidene jeg lager. Hva mener du med at koden er veldig usikker? Hva kan konsekvensene med usikker kode være? Skal prøve å oppgradere til nyere php versjon. Har prøvd tidligere men da ble ikke akkurat sidene som forventet. Må kanskje programmere om en del da? Lenke til kommentar
OIS Skrevet 12. mars 2009 Del Skrevet 12. mars 2009 (endret) Jeg er egentlig bare en amatør programmerer, er jo ikke de mest avanserte sidene jeg lager. Hva mener du med at koden er veldig usikker? Hva kan konsekvensene med usikker kode være? Skal prøve å oppgradere til nyere php versjon. Har prøvd tidligere men da ble ikke akkurat sidene som forventet. Må kanskje programmere om en del da? Det største problemet er at de kan spørre etter et filnavn som ser ut som noe slikt ../../etc/passwd og se alle passordene dine på en linux server. For windows kan de spørre etter andre filer, ikke sikker på hvilke de helst vil laste ned der. Endret 12. mars 2009 av OIS Lenke til kommentar
JaRu Skrevet 14. mars 2009 Forfatter Del Skrevet 14. mars 2009 Har nå prøvd $HTTP_GET_VARS og dette funker lokalt men det funker ikke på domenehsop sin server. Har prøvd meg med følgende kode www.flekkefjordkarateklubb.no/test.php3: <?php echo "<html>"; echo "<head>"; echo "<title>Flekkefjord Karateklubb</title>"; echo "</head>"; echo "<body>"; echo "Dette kommer direkte fra koden"; echo "<br>"; include ("testtekst.php"); echo "</body>"; echo "</html>"; ?> Resultatet er en blank side med følgende kildekode: <?php echo "<html>"; echo "<head>"; echo "<title>Flekkefjord Karateklubb</title>"; echo "</head>"; echo "<body>"; echo "Dette kommer direkte fra koden"; echo "<br>"; include ("testtekst.php"); echo "</body>"; echo "</html>"; ?> Denne koden er som du sikkert ser identisk med koden i php filen. Hva tyder dette på? Kan det være at jeg ikke kan kjøre php på sidene. I følge den pakken jeg har kjøpt så er CGI/SSI/PHP5/MySQL5/Unix shell innkludert. Lenke til kommentar
Bikeridr Skrevet 14. mars 2009 Del Skrevet 14. mars 2009 Tror du nok med god fordel kan forandre filnavnene dine fra .php3 til "bare" .php.. Lenke til kommentar
JaRu Skrevet 14. mars 2009 Forfatter Del Skrevet 14. mars 2009 Tror jeg fant ut av det. Jeg har brukt filendelse php3, prøvde med php som filendelse og da funket det. Lenke til kommentar
luxus Skrevet 14. mars 2009 Del Skrevet 14. mars 2009 Sjekk denne siden: http://www.flekkefjordkarateklubb.no/defau...#46;/etc/passwd Ups? hehe:-) Lenke til kommentar
JaRu Skrevet 15. mars 2009 Forfatter Del Skrevet 15. mars 2009 Sjekk denne siden: http://www.flekkefjordkarateklubb.no/defau...#46;/etc/passwd Ups? hehe:-) Dette så ikke bra ut. Håper jeg har klart å løse dette nå ved bruk av en array med gyldige filnavn. Blir litt tungvint å legge inn alle filnavnene manuelt i php filen, burde vel gå ann å lese inn filnavn fra en katalog? Lenke til kommentar
JaRu Skrevet 15. mars 2009 Forfatter Del Skrevet 15. mars 2009 Håper nå at jeg har ordnet det med tanke på sikkerhet. Bruker en array som lastes med filnavn fra en katalog og sjekker om filnavn eksisterer. Er det noe mer jeg bør gjøre med tanke på sikkerhet? Lenke til kommentar
JaRu Skrevet 8. april 2009 Forfatter Del Skrevet 8. april 2009 (endret) Har nå installert PHP Version 5.2.9-2 og Apache 2.2.11. (Kjører lokalt på WinXPsp3) Bruker $fil = $HTTP_GET_VARS['filnavn']; for å hente et filnavn fra http link. Jeg får ikke med meg noen verdi og $fil er tom. Det merkelige med dette er at det funker på en 4.x versjon av PHP lokalt samt på webserveren (php 5.2.8) (Domeneshop) Er det noen innstillinger jeg bør gjøre lokalt for å få dette til å funke? mvh Jan Rune PS! Har lagt ved en pdf utskrift av phpinfo LØST - Jeg satte register_long_arrays = on og så funket det. phpinfo.pdf Endret 9. april 2009 av JaRu Lenke til kommentar
Warz Skrevet 9. april 2009 Del Skrevet 9. april 2009 Du må vel skrive $fil = $_GET['filnavn'] ? 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å