Gå til innhold

Mappe på mappe i include script ?


Anbefalte innlegg

Hei :)

 

Driver å lager en tutorials side. Men har litt problemer med url'en nå.

 

Dette er får jeg til å lage:

http://localhost/tutorials/

 

 

Men hvodan kan jeg få til en mappe til ? Slik:

http://localhost/tutorials/php/

 

 

 

Dette er koden i htaccess jeg bruker til nå:

 

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^([^/.]+)/?$ /index.php?side=$1
</IfModule>

 

 

 

* Include scriptet mitt:

 

<?php

 

/* I N N S T I L L I N G A R */

/* Lim inn på toppen av dokumentet

* Forandre variablane etter dine ønsker */

 

$handlername = 'side'; // her blir linkane ?side=xxx. Forandre til det du bruker

$defaultSide = 'index.php'; // den fila som blir inkludert dersom inga side er etterspurt i URL-en

$includePath = 'sider/'; // stien til mappa sidene som skal inkluderast ligg i

$errorPage = 'error/error404.php'; // fila som blir inkludert dersom ei side som ikkje ligg i mappa blir etterspurt

$filendelse = '.php'; // filendelsen på filane som skal inkluderast

 

/* S C R I P T S T A R T */

/* Første delen henter variabelen i url-en og alle filnavn i mappa du skal inkludere frå */

/* Treng ikkje endrast */

 

$URLside = &$_GET[$handlername]; // lagar ein enklare variabel for variabelen sendt gjennom url-en

 

$rep = opendir($includePath); // åpnar mappa som er satt i $includePath

while ($file = readdir($rep))

{

if($file != '..' && $file !='.' && $file !='' && !is_dir($file)) // unngår mapper

{

$filer[]=$file; // legg alle filane i mappa inn i $filer-arrayet

}

}

closedir($rep); // lukker mappa

 

 

 

if (!isset ($URLside)) // viss det ikkje blir sendt ein variabel gjennom url-en for å bestemma kva side som skal inkluderast

{

$side = $includePath . $defaultSide; // blir filen satt i $defaultSide inkludert

} else {

$side = $URLside . $filendelse; // legg til filendelsen satt i $filendelse for å

 

if (in_array ($side, $filer)) { // sjekker om den etterspurte sida er i arrayet

$side = $includePath . $side; // inkluder sida

} else { // ellers

$side = $includePath . $errorPage; // inkluder filmeldinga, satt i $errorPage

}

}

 

 

/* I N K L U D E R I N G S D E L */

/* Lim inn der innhaldet skal inkluderast */

 

include_once $side; // inkluderer sida som er bestemt gjennom diverse testar

 

?>

 

 

 

 

*

 

- Si hva som må endres i htaccess

- Og i includescriptet

Endret av php_user
Lenke til kommentar
Videoannonse
Annonse

Altså;

 

Hvordan får vi denne til å bli riktig:

 

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^([^/.]+)/?$ /index.php?side=$1&cat=$2
</IfModule>

 

hvordan får vi kodet inn en kategori her?

 

 <?php

 /* I N N S T I L L I N G A R */
 /* Lim inn på toppen av dokumentet
  * Forandre variablane etter dine ønsker */

 $handlername = 'side';					  // her blir linkane ?side=xxx. Forandre til det du bruker
 $defaultSide = 'index.php';			   // den fila som blir inkludert dersom inga side er etterspurt i URL-en
 $includePath = 'sider/';		   // stie
n til mappa sidene som skal inkluderast ligg i
 $errorPage   = 'error/error404.php';				   // fila som blir inkludert dersom ei side som ikkje ligg i mappa blir etterspurt
 $filendelse  = '.php';					  // filendelsen på filane som skal inkluderast

 /* S C R I P T S T A R T */
 /* Første delen henter variabelen i url-en og alle filnavn i mappa du skal inkludere frå */
 /* Treng ikkje endrast */

 $URLside = &$_GET[$handlername];			// lagar ein enklare variabel for variabelen sendt gjennom url-en

 $rep = opendir($includePath);			   // åpnar mappa som er satt i $includePath
	 while ($file = readdir($rep))
	  {
		  if($file != '..' && $file !='.' && $file !='' && !is_dir($file))  // unngår mapper
		  {
			   $filer[]=$file;				 // legg alle filane i mappa inn i $filer-arrayet
		   }
	   }
   closedir($rep);							 // lukker mappa



   if (!isset ($URLside))					  // viss det ikkje blir sendt ein variabel gjennom url-en for å bestemma kva side som skal inkluderast
   {
	   $side = $includePath . $defaultSide;	// blir filen satt i $defaultSide inkludert
   } else {
	   $side = $URLside . $filendelse;			// legg til filendelsen satt i $filendelse for å

	   if (in_array ($side, $filer)) {		 // sjekker om den etterspurte sida er i arrayet
		   $side = $includePath . $side;	   // inkluder sida
	   } else {								// ellers
		   $side = $includePath . $errorPage;  // inkluder filmeldinga, satt i $errorPage
	   }
   }


   /* I N K L U D E R I N G S D E L */
   /* Lim inn der innhaldet skal inkluderast */

   include_once $side;						 // inkluderer sida som er bestemt gjennom diverse testar

  ?>

 

Takk! ;D

Lenke til kommentar
For å hjelpe deg litt på vei:

 

.htaccess:

RewriteRule ^([^./\`\'\ ]+)/([^./\`\'\ ]+)/([0-9]+)/?$ index.php?page=$1&action=$2&id=$3

 

index.php:

print_r($_GET);

 

Gå inn på http://localhost/page/action/123/ og jobb deg derfra. ;)

 

 

 

htaccess:

 

RewriteRule ^([^./\`\'\ ]+)/([^./\`\'\ ]+)/([0-9]+)/?$ ?side=php&id=$1

 

 

php.php:

 

<?php

 $a = "SELECT * FROM tuts WHERE kategori = 'PHP' ORDER BY dato DESC" or die ("Kunne ikke hente ut data!");
 $aR = mysql_query($a);


 while($row = mysql_fetch_array($aR)) {
 $id = $row[id];
 ?>
 <?php
 if($_GET[id] = $row[id]) {
 print_r($_GET);
 }
 else {
 ?>
 <a href="<?php echo $id; ?>/"><?php echo $row[tittel]; ?></a><br>
 <?php echo $row[LTekst]; ?><br>
 <br>
 <?php echo $row[dato]; ?><br>
 <br>

 <?php
 } }// Slutt while ?>

 

 

 

- Det skal vel fungere ?

- Hvorfor fungerer det ikke ?

Lenke til kommentar

Å herre .. Du må da først debugge, lokalisere og kanskje til og med isolere feilen, før du spør oss om en løsning til problemet. Jeg har ikke tall på hvor mange ganger jeg har spurt om dette, men nøyaktig hva er det som ikke fungerer?

Endret av Jonas
Lenke til kommentar
Å herre .. Du må da først debugge, lokalisere og kanskje til og med isolere feilen, før du spør oss om en løsning til problemet. Jeg har ikke tall på hvor mange ganger jeg har spurt om dette, men nøyaktig hva er det som ikke fungerer?
Nytt problem:

 

Hvordan får jeg: http://localhost/tutorial/php/ID HER/

 

 

Hvordan får jeg til det ? Kan man bruke php i htacces ?

 

 

Det, er problemet. Hvordan henter jeg ut id ? Henter jeg den ut med htacces eller php ? Og hvordan gjør jeg det ?

 

 

 

 

 

Som sagt: Les litt PHP og gjerne litt mod_rewrite, så skjønner du tegninga. Det er vanskelig å hjelpe deg når du bare gir oss et crappy includescript og ikke følger anvisningene vi gir deg.

 

 

Crappy includescript ? ;o

- Jo jeg følger det dere sier. Men hva betyr $1 og $2 osv.. i htaccess ?

Lenke til kommentar
Det, er problemet. Hvordan henter jeg ut id ? Henter jeg den ut med htacces eller php ? Og hvordan gjør jeg det ?

Feil, dette er utangspunktet for tråden. Jeg refererte til ditt siste innlegg, hvor du spør hvorfor noe ikke fungerer.

 

 

 

Vel.. Dette fungerer:

http://localhost/tutorial/php/8/ (8 = id på tutorial)

 

Men ikke slik det skal. Jeg kommer til index siden. med dette i htaces:

RewriteRule ^([^./\`\'\ ]+)/([^./\`\'\ ]+)/([0-9]+)/?$ ?side=$1&id=$2

 

men det jeg egentlig skal, er å åpne id'en å hente ut infoen om tutorialen på siden. Så hva må jeg skrive i htaccess, og hvordan skal jeg gjøre det i php ?

Endret av php_user
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...