Wie kann ich mehrere Unterseiten mit php erstellen?

2 Antworten

Ich hatte auch mal sowas gelesen: example.com/index.php?id=news&title=Artikelnummer

Weißt du wie man so etwas macht oder ist deine Methode besser ? ;)

So - index.php:

$page = null;
if (isset($_GET['page']) $page = $_GET['page'];

$slug = null;
if (isset($_GET['slug']) $slug = $_GET['slug'];

$pages = array('news', 'home');

if (in_array($page, $pages)) {
    inlucde __DIR__.$pages;
}
// news.php:
if ($slug) {
    // Spezifische News anzeigen
    ... // SELECT * FROM news WHERE slug=$slug
        // Achtung: Gegen MySQL-Injection sichern!!!
} else {
    // Alle News anzeigen
    ... // SELECT * FROM news
}

fluffiknuffi  02.09.2015, 18:47

In dem von PHP automatisch generierten Array $_GET stehen die Schlüssel und Werte aller Parameter (also in deinem Beispiel id => news und title => Artikelnummer).

id würde ich aber z. B. page nennen und der Fachausdruck für title wäre slug. Ein slug wird aus dem title generiert aber ist eben URL-geeignet. Z. B. der Titel wäre "Hallo Welt", dann wäre ein möglicher Slug "Hallo_Welt". Wenn es eine zweite News mit dem Titel "Hallo Welt" gibt, wäre deren Slug z. B. "Hallo_Welt_2". Verständlich? Ein slug ist immer einzigartig und URL-geeignet, für einen Titel muss das nicht gelten.

Achtung: Falls du eine MySQL-Abfrage machen solltest, bei der du eine News mit einem bestimmten Slug suchst, ist es wichtig, diese gegen MySQL-Injections abzusichern!

0

ich weiß nicht, ob ich dich richtig verstanden habe:

in entspr. verzeichnis von example.com/news  eine index.php, die die artikelnummern als links anzeigt (a href)

(ich weiß auch nicht was du an erfahrung mit web-programmierung hast)

alternative zum include (damit fügst du php code direkt ein), ist die php-header funktion


Calamann 
Beitragsersteller
 01.09.2015, 18:16

fast :D Also ich habe ein verzeichnes wo alle php Dateien drin sind. also auch die index.php. mit einem link (a href) kommt man zur id news die die URL /news anzeigt und dann die news.php includet. Wenn man dann dort auf einen link klickt soll der entsprechende Artikel (342.php) includet werden. ich möchte, dass in der URL dann aber nicht einfach example.com/342 oder so steht, sondern /news/342. wenn ich die id in news/342 ändere wird die seite nicht angezeigt. Ich hoffe das war verständlich :) sonst gerne fragen ;)

0
Calamann 
Beitragsersteller
 01.09.2015, 19:25
@maximilianus7
RewriteEngine on
RewriteRule ^de/([0-9a-zA-Z]+)$ de/index.php?id=$1 [NC,L]
RewriteRule ^en/([0-9a-zA-Z]+)$ en/index.php?id=$1 [NC,L]

Ich hab vorher noch die sprache. d.h. eig heißt die URL dann example.com/de/news


0
maximilianus7  01.09.2015, 21:05
@Calamann

du hast dann also in $id z.b. "new/342" stehen. wie fragst du diese fälle ab?

oder zeig uns den entspr. code. aber bitte in z.b.  http://pastie.org
(in den GF-editor kann man keinen code hineinkopieren.)

0
maximilianus7  01.09.2015, 21:59
@Calamann

ich nehme an, du hast mehr als die 4 artikel 1..4. also so programmiert man:

statt
if($id=="home") ... und folgende:

if ( in_array($id, array('home', 'news')) ):
include("$id.php");
elseif ( substr($id, 0, 5) == 'news/' ):
include( substr($id, 5) . '.php');
else:
echo "error-text"; // z.b.
endif;

alles klar? wenn nicht: erstmal in php doku googeln.

0
Calamann 
Beitragsersteller
 01.09.2015, 22:26
@maximilianus7

erstmal vielen Dank für deine Hilfe ;) Ja genau es kommen auch immer mehr Artikel hinzu:) Da ich mich in php noch nicht gut auskenne, wärst du so nett und könntest mir den code von dir erklären?(Am besten zeile für zeile :D) Und kann ich die htaccess darauf immer noch anwenden oder was muss ich dann noch machen:P

0
Calamann 
Beitragsersteller
 01.09.2015, 23:03
@maximilianus7

Ich hatte auch mal sowas gelesen: example.com/index.php?id=news&title=Artikelnummer

Weißt du wie man so etwas macht oder ist deine Methode besser ? ;)

0
maximilianus7  02.09.2015, 09:15
@Calamann

auch das könnte man mit htaccess aufsplitten. ich würde aber mal die finger von lassen und das wie gehabt in php machen.

0
maximilianus7  02.09.2015, 09:55
@Calamann

der code ist als hilfe zur selbsthilfe gedacht. wenn du dir die funktionen in der doku anschaust, müsstest du den code verstehen können.  wenn nicht, dann solltest du dir erst mal ein tutorial reinziehen oder ein buch.

0
Calamann 
Beitragsersteller
 02.09.2015, 14:06
@maximilianus7

ja mit der htaccess möchte ich ja eigentlich nur die URL schöner machen. Also anstatt /index.php?id=news nur /news ;)

Ich glaube ich habe den Code fast verstanden:D Vielen Dank! Du hast mir echt geholfen ;)

Meinst du mit "php doku" das php Handbuch? https://secure.php.net/manual/de/index.php

Habe das jetzt einfach so in google eingegeben :P Kann sein dass ich jetzt ein bisschen dumm bin :DD

0
maximilianus7  02.09.2015, 15:18
@Calamann

ja, das php handbuch. und es tastächlich einfacher dortselbst via google nachzuschlagen, z.b. mit "php funktionsname". meist ist der 1. treffer der link zum manual (jedenfalls wenns man öfter macht? - big google watches you)

0