PHP - Hilfe...

03/11/2012 16:57 Bombay.#1
Ich möchte bei meiner Homepage das die seiten so angezeigt werden:

Beispiel
www.^MeineDomain.net/index.php?s=about

Und Nicht:

Beispiel
www.^MeineDomain.net/about.php

Vielen Dank,
Timo aka. !d3174h34vy
PS: Bin grad noch in den Anfängen von PHP >.>
03/11/2012 17:18 PseudoPsycho#2
Du möchtest ernsthaft aus statischen Seitennamen einen GET-Parameter machen???
Normalerweise geschieht sowas andersrum...
Naja, einfacher Code in der index.php
PHP Code:
<?php
$file
=$_GET['s'];
if(!empty(
$file) && file_exists($file.'.php')){
require(
$file.'.php'); }
else {
require(
'home.php'); // Datei, die bei keiner Seitenangabe angezeigt wird
?>
Alternativ kannst du auch eine Datei .htaccess erstellen:
Code:
RewriteEngine on 
RewriteRule ^index.php?s=(.*)$ $1.php
03/11/2012 19:11 masterdave1000#3
@PseudoPsycho prinzipiell: ja, jedoh ist es leichter mit einer switch abfrage
PHP Code:
if($_GET['s']){
   switch(
$_GET['s']){
      case 
'about':
         include(
'inc/about.php');
         break;
      case 
'faq':
         include(
'inc/faq.php');
         break;
      default:  
//trift keines der Ergebnisse zu
         
include('default.php');
         break;
   }
}else{
   
header("Location: http://seitenname.de/index.php");

PHP-MANUAL switch :[Only registered and activated users can see links. Click Here To Register...]:
03/11/2012 19:15 PseudoPsycho#4
Quote:
Originally Posted by masterdave1000 View Post
@PseudoPsycho prinzipiell: ja, jedoh ist es leichter mit einer switch abfrage
lol. Dein Code ist viel länger als meiner und noch dazu komplexer... :facepalm:

btw.: Kommt auf die Anwendung an, was sinnvoll ist.
Bei dir sind halt Dateinamen vorgegeben, das macht den Code nicht so flexibel.
03/12/2012 13:36 Fratyr#5
Quote:
Originally Posted by masterdave1000 View Post
@PseudoPsycho prinzipiell: ja, jedoh ist es leichter mit einer switch abfrage
PHP Code:
if($_GET['s']){
   switch(
$_GET['s']){
      case 
'about':
         include(
'inc/about.php');
         break;
      case 
'faq':
         include(
'inc/faq.php');
         break;
      default:  
//trift keines der Ergebnisse zu
         
include('default.php');
         break;
   }
}else{
   
header("Location: http://seitenname.de/index.php");

PHP-MANUAL switch :[Only registered and activated users can see links. Click Here To Register...]:
Switch Konstrukte sind zu vermeiden, da sie prinzipiell langsamer sind
als If/elseif Abfragen. Noch dazu ist das ein vollkommen unpassendes Beispiel,
da gerade wenn man seine Website über die GET Superglobale laufen
lässt man darauf achten sollte das neue (Unter)Seiten schnell und ohne
langes gewusel im Sourcecode hinzugefügt werden können. Ein einfaches
inkludieren der PHP Dateien, mit der vorherigen Filterung von Sonderzeichen,
(besonders auf Punkte achten), und der Prüfung ob die Seite existiert reicht da
vollkommen aus und ist besonders bei größeren Projekten, vor allem wenn
das Backend das dynamische hinzufügen von neuen Unterseiten unterstüzt
ein Muss. Viele Frameworks wie Codeigniter die Segmente aus der Url
auslesen (index.php/home/1/2/3) arbeiten übrigens auch ähnlich.