Just nu i M3-nätverket
Gå till innehåll

"fil.php?=xxx"


matsymats

Rekommendera Poster

Den kryptiska rubriken grundar sig i att jag inte är insatt i php alls och vet således inga korrekta termer.

 

Det jag söker är skript/en för att dela upp en fil i flera sidor. Om jag har förstått det här rätt går det att lägga 10 filer motsvarande "01.html"-"10.html" i en fil och sedan koda så att servern generar fram en php-sida med exempelvis bara innehållet i "02.html" (typ "fil.php?=02"). Isåfall borde det väl gå att lägga informationen till en hel site i en enda fil?

 

Kan som sagt inte php alls, kan dock html och brukar kunna leta mig fram till lösningar i olika språk.

 

Otroligt tacksam för svar.

 

[inlägget ändrat 2001-05-23 21:57:14 av Mats Larsson4]

Länk till kommentar
Dela på andra webbplatser

Marcus Svensson

du skulle kunna göra såhär:

 

index.php:

 

<html>

<head>

<title>Titel</title>

</head>

<body>

<?php

if ($get == 01) {

?>

 

Alla saker som ska stå i 1.html här

 

<?php

}

elseif ($get == 02) {

?>

 

Alla saker som ska stå i 2.html här

 

<?php

}

elseif ($get == 03) {

?>

 

Alla saker som ska stå i 3.html här

 

<?php

}

elseif ($get == 04) {

?>

 

Alla saker som ska stå i 2.html här

 

<?php

}

elseif ($get == 05) {

?>

 

Alla saker som ska stå i 2.html här

 

<?php

}

elseif ($get == 06) {

?>

 

Alla saker som ska stå i 2.html här

 

<?php

}

elseif ($get == 07) {

?>

 

Alla saker som ska stå i 2.html här

 

<?php

}

elseif ($get == 08) {

?>

 

Alla saker som ska stå i 2.html här

 

<?php

}

elseif ($get == 09) {

?>

 

Alla saker som ska stå i 2.html här

 

<?php

}

elseif ($get == 10) {

?>

 

Alla saker som ska stå i 2.html här

 

<?php

}

else {

?>

 

Här ska det stå som ska visas om inte xxx är ifyllt

 

<?php

}

 

</body>

</html>

 

 

 

För att få detta att funka så ska du anropa den aktuella filen med:

index.php?get=xx

 

 

</\> MVH

<||> Marcus Svensson

<||> webmaster@svenneman.com

<\/>

 

 

 

 

Länk till kommentar
Dela på andra webbplatser

Hmm, blir inte det otympligt när siten växer. Till slut har man ju en jättefil. Jag skulle nog ha ett skal där man hämtar andra filer typ...

<?
$env = getenv("QUERY_STRING");
$filename = sprintf("%02d.html",$env);
?>
<html>
<head>
<title>sajt :: <? echo $filename ?></title>
</head>
<body>
<?
@fpassthru($filename);
?>
</body>
</html>

Där man kanske även kan ha vettig namn på de filer som skall hämtas så det blir lättare att se vilken information de innehåller.

 

Menmen.. smaken är som baken.

 

//blueluna

 

Länk till kommentar
Dela på andra webbplatser

Svenneman --> Skriptet funkar utmärkt, tack för det. Dock krånglar det ibland när jag vill byta ut "01" och/eller "get". Är det begränsningar i de termerna, eller?

 

blueluna. --> Tack, verkar vara en intressant lösning. Hur gör jag rent praktiskt? Skulle behöva lite mer guidning för att rida iland "ditt" skript.

 

Länk till kommentar
Dela på andra webbplatser

Hoppas det inte gör så mycket om jag svarar på båda frågorna.

Svenneman --> Skriptet funkar utmärkt, tack för det. Dock krånglar det ibland när jag vill byta ut "01" och/eller "get". Är det begränsningar i de termerna, eller?

Då man kör index.php3?foo=hej så ges variabeln $foo värdet hej i index.php3. Om man byter till index.php3?bar=leffe&foo=hej så ges variablerna $foo och $bar värdena hej respektive leffe. Det är väl isf begränsningen med $get. vad det gäller att man byter 01 beror lite på vad man byter till. Skall man använda en textsträng istället får man skriva "0i" tex.

blueluna. --> Tack, verkar vara en intressant lösning. Hur gör jag rent praktiskt? Skulle behöva lite mer guidning för att rida iland "ditt" skript.

Jo, det kanske var lite dåligt förklarat. Det skript jag skrev hämtar filer som heter tex 01.html, 02.html osv. dessa skall ligga på samma ställe som skriptet. getenv() hämtar omgivningsvariabler, i detta fall är det tänkt att den bara skall innehålla en siffra (som i detta fall bara får vara mellan 0 och 99). Till denna siffra läggs .html till och nollor läggs till i början om det behövs ( med sprintf() ). Detta går att göra enklare om man gör som i svennemans exempel. Tyvärr så blev det ett fel, fpassthru() kräver att man öppnat filen med tex fopen() så istället för fpassthru() skall det stå readfile() vilket öppnar en fil och skickas ut innehållet direkt. om man döper skriptet till index.php3 så anropas 01.html genom att skriva index.php3?01 .

 

//blueluna

 

[inlägget ändrat 2001-05-29 19:52:51 av blueluna.]

Länk till kommentar
Dela på andra webbplatser

Marcus Svensson

hans verkar vara bättre

 

 

 

</\> MVH

<||> Marcus Svensson

<||> webmaster@svenneman.com

<\/>

 

 

 

Länk till kommentar
Dela på andra webbplatser

En sak jag kom på att man borde göra är att säkerställa så att det som skickas med inte kan öppna filer du vill inte skall kunna öppnas. Detta görs med någon slags av koll av den sträng som skickas med readfile()

 

//blueluna

 

Länk till kommentar
Dela på andra webbplatser

blueluna --> Fast då försvinner ju liksom vitsen med att lägga dokumenten i en *.php. Det jag ville uppnå med skriptet var att kunna anropa flera dokument med en fil. Jag är som sagt ingen fena på php så min fråga kanske är dum, men vad är vitsen med att anropa html-filer via *.php3? Då kan man väl "lika gärna" använda SSI?

 

Dock är jag osedvanligt vetgirig och har php som "nuvarande" projekt, så vill du förklara utförligare och/eller komma med fler tips är jag idel öra.

 

Tack för dina svar.

 

Länk till kommentar
Dela på andra webbplatser

robert aden

Du kan ju använda argument i url'n för att avgöra vilken fil som ska inkluderas vilket jag har för mig att du inte kan med SSI ( jag kan ha fel för det är väldigt länge sen jag använde det ).

 

Länk till kommentar
Dela på andra webbplatser

blueluna --> Fast då försvinner ju liksom vitsen med att lägga dokumenten i en *.php. Det jag ville uppnå med skriptet var att kunna anropa flera dokument med en fil. Jag är som sagt ingen fena på php så min fråga kanske är dum, men vad är vitsen med att anropa html-filer via *.php3? Då kan man väl "lika gärna" använda SSI?

Som jag skrev anser jag att det är otympligt med en enda stor fil för en hel site där all information ligger inom filen, dessutom får man design och innehåll separerat. Jag kan inte mycket om SSI så jag kan inte svara på om SSI eller php gör detta bättre, det finns säkert ett otal språk/sätt som löser detta problem. Vilken teknik man använder beror på vad man har för krav och vad man tycker är trevligt att använda.

 

Om du nu vill ha allt i en fil så fungerar svennemans lösning säkert bra. (har inte testat)

 

//blueluna

 

[inlägget ändrat 2001-06-01 23:33:40 av blueluna.]

Länk till kommentar
Dela på andra webbplatser

robert aden --> Hur menar du då?

 

blueluna. --> Jo, det här med en fil blir jobbigt i längden men är bara tänkt att gälla mycket små siter och vissa undersidor på större.

 

SSI går för övrigt ut på att inkludera/anropa andra filer så att layouten blir enhetlig, samma lösning som många språk tillämpar. Har tänkt att testa lite med <?require("file.php");?> i php också.

 

Men skulle du kunna förklara ditt inlägg med "foo" och "bar"? Blev inte riktigt klok på det...

 

Tack.

 

Länk till kommentar
Dela på andra webbplatser

Men skulle du kunna förklara ditt inlägg med "foo" och "bar"? Blev inte riktigt klok på det...

Gissar på att jag skall förklara.

 

När man skriver in eller länkar till en url till ett php skript som tex ser ut såhär:

www.minsite.com/index.php3?id=1

Det efter frågetecknet är sådant som skickas med som QUERY_STRING i en GET förfrågan. QUERY_STRING går att hämta in om man fångar utdatat av getenv("QUERY_STRING"). Datat som skickas med förfrågan är ofta på formen "variabel=värde" och detta känner php av och skapar en variabel med värdet. i exemplet ovan så ges variabeln $id värdet 1.

 

När flera variabler skall skickas med så avskiljer man dem med '&'. tex.

index.php3?id=3&user=pelle

I fallet ovan så ges variabeln $id värdet 3 och variabeln $user värdet "pelle".

 

För mer information om externa variabler i php finns på följande sida:

http://www.php.net/manual/en/language.variables.external.php

 

//blueluna

[inlägget ändrat 2001-06-08 08:38:14 av blueluna.]

Länk till kommentar
Dela på andra webbplatser

Kan ni skriva hela koden och hoppa inte över något.. Jag är en nybörjare. Jag skulle uppskatta om ni skrev både det scriptet där man har allt i ett dokument och det som leechar från andra filer. Tack på förhand Oskar

 

 

 

 

 

Länk till kommentar
Dela på andra webbplatser

Skrev ihop ett skript som finns att läsa där:

http://www.mds.mdh.se/~etc97esn/eforum/files.phps

Kan köras med ?file=1 samt ?file=2 där:

http://www.mds.mdh.se/~etc97esn/eforum/files.php3

 

kanske skall påpekas att jag kör tre olika varianter för att läsa in filen

 

__________________________________________________

blueluna

 

[inlägget ändrat 2001-06-11 19:49:34 av blueluna.]

Länk till kommentar
Dela på andra webbplatser

OK, tack för din hjälp. Ska testa mig fram (även om det verkar snorkomplicerat).

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...