Hi. Ich sehe bei manchen Internet seiten sind verschiedene Seiten so angegeben:
http://www.wasweisich.de/xy/zt.php
Und bei manchen so.
www.wasweisich.de/index.php?page=xy
Was ist besser und wie macht man das 2.?
Habe mal eine Frage zur Optimierung von PHP
- Acrio
- Geschlossen
- Erledigt
-
-
Was besser ist, da frag besser Leute wie dead oder SSL - aber das 2. funktioniert über den sogenannten "$_GET - Parameter" bzw. beinhaltet $_GET-Parameter.
-
Das 2. sind sogenannte _Get Parameter, die an die URL angehängt werden. Google das einmal mal.
Was besser ist kann man nicht sagen, da es keine wirklichen Zusammenhänge dazwischen gibt.
-
Das erste sind einzelne PHP-Dateien, das zweite ist meiner Meinung nach übersichtlicher, da kann man dann einfach die PHP-Dateien einbinden (include/require(_once))
-
Ok danke. Ich wollte nämlich auch mal das 2. Testen da ich es auch übersichtlicher finde. Nur weis ich nicht wie. Aber ich werde mal googlen. Bei Fragen editiere ich meinen Beitrag hier.
-
Such mal nach mod_rewrite so kannst du deine urls besser lesbar machen und auch für Suchmaschinen optimieren. Wird auch hier im Forum verwendet. Als Grundlage würde ich Variante 2 nehmen.
-
Irgenwie finde ich keine gescheite Seite die mir richtig zeigt wie das mit den Variablen geht. Hat jemand von euch vielleicht so eine? Also kennt ihr eine?
-
-
Ich meine mal gelesen zu haben das genau der Weg das zu machen zu Sicherheitslücken führen kann.. -
Nutz' doch require_once statt require. -
Solange er die Seite nur einmal nutzt ist das _once egal
DurtyFree, wenn man es genauso macht kann man eigentlich nicht aus dem Verzeichnis "ausbrechen"
-
Und das Page dann durch die Seite ersetzen oder?
Und wie mache ich das dann mit dem link? Dann kann ich ja nicht mehr mit <a href arbeiten. -
Klar, du kannst HTML mit echo (und vielen anderen) ausgeben oder einfach die PHP-Tags schließen.
-
Das meinte ich nicht. Ich meinte: Wie kann man das mit mehreren verschiedenen Seiten machen? Das man auf einen Link klickt und dann so auf die Seite geleitet wird?
//edit: Ich hab das immer noch nicht richtig verstanden. Wie mache ich denn z.B. das wenn man auf diesen Link:
Das dann dahinter ein ?page=Anmelden kommt)//edit2: Und da kommt wenn ich dein Beispiel benutze page angeben.
-
mit dem Script von SSL ist das folgendermaßen möglich:
Deine Index Datei index.php
PHP<?php if(isset($_GET['page'])) { require("pages/".$_GET['page'].".php"); } else { echo "page angeben"; } ?>
und dann wenn du einen link aufrufst z.b. index.php?page=login
Deine login.php Dateiund der link geht dann auch so:
du musst also immer die datei so bennen wie du sie haben willst, wenn du eine Profilseite haben willst und den link per index.php?page=profile aufrufen willst, muss die php datei profile.php heißen
-
Jetzt bekomme ich diese Errors wenn ich das so mache wie gesagt hast cheppert.
HTMLWarning: require(pages/Anmelden.php) [function.require]: failed to open stream: No such file or directory in /users/acrio/www/index.php on line 16 Fatal error: require() [function.require]: Failed opening required 'pages/Anmelden.php' (include_path='.') in /users/acrio/www/index.php on line 16
Hier der Code.
HTML
Alles anzeigen<html> <head> <style> body, head { position:relative; padding:0; } </style> </head> <body> <div> <a href="/index.php?page=Anmelden" id="Anmelden">Anmelden</a> <?php if(isset($_GET['page'])) { require("pages/".$_GET['page'].".php"); } else { echo "page angeben"; } ?> </div> </body> </html>
-
deine login.php muss im ordner pages sein also der ordner wo auch dei index.php liegt
-
Nur das das schon ist. Ich habe zwar keinen Pages ordner aber die sind beide im selben Bereich.
-
-
So habe ich das jetzt.
PHP
Alles anzeigen<?php if(isset($_GET['page'])) { require_once($_GET['page'].".php"); echo "<a href='/index.php?page=Anmelden' id='Anmelden'>Anmelden</a>"; } if(isset($_GET['page'])) { require_once($_GET['page'].".php"); } else { echo "page angeben"; } ?>
Aber jetzt steht auf der Seite nur page angeben und nicht der Link. -