Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  14 1297
Hei!

Vet dere hvor jeg får tak i et enkelt script som gjør om sidenavnene til ?id=side?

Jeg har en side som jeg kaller Default.php, men jeg vil at alle de andre sidene også skal kalles det samme men med ?id=sidenavn foran.

Har dere noen ideer?

Cheers,
anigma

Kode

<?
switch($_GET['id']){
case "1":
?>
Hvis id er 1
<?
break;
case "llolol";
?>
Hvis id er llolol.

<?
break;
default;
 ?>
Dette kommer hvis det ikke er noe "id" i URLen.
<?
break;
};
?>
Meldinger er for kort blalblllbllalb
Trådstarter
6 0
Hvordan funker dette egentlig?

Hvordan bruker jeg skriptet?

Kode

 
Her har du starten av layoutet og menyen.
<?
switch($_GET['id']){
case "1":
?>
Hvis id er 1 (http://lol.com/index.php?id=1)
<?
break;
case "llolol";
?>
Hvis id er llolol. (http://lol.com/index.php?id=llolol)

<?
break;
default;
?>
Dette kommer hvis det ikke er noe "id" i URLen. (http://lol.com/index.php) Altså forsiden.
<?
break;
};
?>
Her har du slutten av layoutet.
Du må huske og lagre som en .php fil, og ha støtte for php på siden din.

På den måten slipper du å ha flere filer med layoutet i, du kan bare endre det i en fil så blir alt endret.

Hvis du allerede har et layout, så bare erstatter du den delen som teksten er med den koden, og lagrer som etellerannet.php

Linkene på menyen blir da til etellerannet.php?id=kake
Trådstarter
6 0
Hvordan skal jeg include andre filer istedenfor at det står "Hvis id er 1 (http://lol.com/index.php?id=1) "?

Hvorfor får jeg hele tiden denne feilmeldingen:

Notice: Undefined index: id in C:\WWW\hei.php on line 2
Sist endret av anigma; 30. august 2006 kl. 23:51.
Trådstarter
6 0
Kanskje jeg må bruke isset for å fjerne feilmeldingen?
Vil tippe fordi det står : istede for ; etter case "1"

Korrekt kode:

Kode

Her har du starten av layoutet og menyen. 
<? 
switch($_GET['id']){ 
case "1";
?> 
Hvis id er 1 (http://lol.com/index.php?id=1) 
<? 
break; 
case "llolol"; 
?> 
Hvis id er llolol. (http://lol.com/index.php?id=llolol) 

<? 
break; 
default; 
?> 
Dette kommer hvis det ikke er noe "id" i URLen. (http://lol.com/index.php) Altså forsiden. 
<? 
break; 
}; 
?> 
Her har du slutten av layoutet.
Trigonoceps occipita
vidarlo's Avatar
Donor
Sitat av LaStrada
Vil tippe fordi det står : istede for ; etter case "1"

Korrekt kode:
Vis hele sitatet...
Etter case *SKAL* det stå : og ikkje ;
Så her er nok du på bærtur LaStrada. Og OP: om du har så lite peiling på programmering, så lær litt først, og lag det sjølv. Det er ikkje spesielt vanskelig, men kva er poenget med at vi skal gi deg løsninga?
Uhm.. Hit me if I'm wrong, men kan man ikke bare gjøre sånn?

Kode

<?php

$getter = addslashes($_GET['id']);
if (!is_numeric($_GET['id']) || !file_exists($getter.'.php'))
{$getter = 'index';}

require($getter.'.php');

?>
Burde da holde hvis jeg ikke har tatt helt feil av spørsmålet :P
Da kan jeg jo inkludere hva jeg vil fra hvor som helst. Er vel et av de mest kjente sikkerhetshullene i php switch - eller, det du skrev der var vel ikke php switch.

Kjører man apache som root også så er serveren ganske usikker.
Med min kode nei?
file_exists returnerer bare TRUE på lokale filer.. Ikke på URLer og tilsvarende

Den jeg skrev burder funke på alt..
Trigonoceps occipita
vidarlo's Avatar
Donor
id=/etc/passwd
evt get.php?id=get så har du laga ekstrem last på serveren i 30 sekund (std. timeout på php). ab -c2000 -n100000 http://example.com/get.php?id=get burde kjøre serveren i kne. Så ja, ekstremt sikkert...up my ass.
Angående koden min så vet jeg ikke hva som er feil. Den koden er kopiert rett fra hjemmesiden min, og der funker det helt perfekt. Men så ut som noen av ";"ene skulle vært ":". De etter default og case? Eller bare case?

Kode

<?php
$filer = array("start" => "index.php", "info" => "info.php");

if(isset($_GET['side'])) {
    if(file_exists($filer[$_GET['side']])) {
        include($filer[$_GET['side']]);
   }
   else {
       echo "Finner ikke siden";
   }
}
else {
     include("index.php");
}
?>
Jeg foretrekker denne metoden foran switch og case osv.

nå blir riktignok linken http://www.example.com/index.php?side=start
Sist endret av olzorg; 31. august 2006 kl. 21:15.