Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]GET, include oraz modrewite
Forum PHP.pl > Forum > Przedszkole
Bartusek
Witam,
Mam pytanie odnośnie tych 3 tematów.

Chciałbym zrobić coś takiego że tworzę główną stronę.
I chciałbym includować skrypt php w którym będzie dane.
Coś takiego

www.strona.info/id.php?=demon
www.strona.info/id.php?=dragon

Pliki z danymi będą w demon.php , dragon.php


Oraz żeby takie stronki zmieniało na www.strona.info/demon


RewriteRule ^(.+)/$ id.php?=dragon

Chyba źle :/
erix
Kod
RewriteRule ^(.+) id.php?=$1

winksmiley.jpg

$1-$9, to podstawienia, którego u Ciebie zabrakło.
Bartusek
Dziękuję za odpowiedź.

Mógłby ktoś jeszcze mi pomóc z includowaniem i GET?
Jutro zaczynam robić stronę i chciałbym mieć już to zrobione tongue.gif

Cytat
W miarę bezpieczny, a jednocześnie elastyczny kod może wyglądać następująco:

  1. <?php
  2. if (empty($_GET['page']))
  3. {
  4.    $sPage = 'domyslnastrona';
  5. }
  6. else
  7. {
  8.    $sPage = basename($_GET['page']);
  9. }
  10. $sFileName = './folder_z_podstronami/' . $sPage . '.php';
  11. if (!file_exists($sFileName))
  12. {
  13.    $sFileName = './folder_z_podstronami/domyslnastrona.php';
  14. }
  15. include ($sFileName);
  16. ?>



Bardziej bezpieczny, ale mniej elastyczny (dodanie nowej strony wymaga zmian tego kodu)


  1. <?php
  2. switch ($_GET['page'])
  3. {
  4.    case 'stronka':
  5.    case 'inna_stronka':
  6.        $sPage = $_GET['page'];
  7.    break;
  8.    case 'domyslnastrona':
  9.    default:
  10.        $sPage = 'domyslnastrona';
  11.    break;
  12. }
  13. $sFileName = './folder_z_podstronami/' . $sPage . '.php';
  14. include ($sFileName);
  15. ?>


To jest dobry skrypt?
O co chodzi w drugim że zmiana kodu?

Będzie mi każdą stronę tak robiło?
erix
Cytat
O co chodzi w drugim że zmiana kodu?

Musisz dopisać kolejny przypadek (case), jeśli chcesz dodać kolejną stronę.

Ale po szczegóły zapraszam do manuala: switch" title="Zobacz w manualu PHP" target="_manual.
Bartusek
  1. <?php
  2. switch ($_GET['page'])
  3. {
  4.   case 'demon':
  5.   case 'dragon':
  6.   case 'dragon_lord':
  7.   case 'demon_lord':
  8.       $sPage = $_GET['page'];
  9.   break;
  10.   case 'id':
  11.   default:
  12.       $sPage = 'id';
  13.   break;
  14. }
  15. $sFileName = './potwory/' . $sPage . '.php';
  16. include ($sFileName);
  17. ?>


To będzie www.stronka.info/potwory/id.php?=demon

?

może ktoś pomóc?
no proszę :/
erix
A nie możesz po prostu spróbować, czy zadziała...?

Miałem wcześniej odpowiedzieć na tego posta, ale wysil się odrobinę i sam trochę popróbuj. Przecież pływać się nie nauczysz od samego czytania. tongue.gif
Bartusek
Not Found
The requested URL /blackd/id.php?=demon was not found on this server.


Co wpisać w pliku id.php ?


http://mojastrona.pl/blackd/index.php?id=demon

Nic się nie pokazuje chociaż mam w pliku demon.php

  1. <?php
  2.  
  3. echo "demon";
  4.  
  5. ?>
erix
Błąd nie tkwi w nieprawidłowym skrypcie, a złym wywołaniu - serwer nie widzi id.php, w tym problem.
Bartusek
http://mojastrona.pl/blackd/index.php?page=demon

Działa, ale ja głupi tongue.gif

  1. RewriteEngine on
  2. RewriteRule ^/$ index.php
  3. RewriteRule ^/([a-zA-Z_]+)$ index.php?page=$1


Dlaczego nie chce mi działać?
erix
Błąd jakiś wysypuje, czy nie działa przepisywanie?

Zamień miejscami regułki, dodaj flagę [L] do każdej z nich.
Bartusek
Strona się ładuje, adres się nie zmienia.
Gdzie wkleić .htaccess ?
Bo mam główny folder a w nim /blackd/index.php ?
Wkleiłem do obydwu.
erix
Dodaj RewriteBase /blackd na początku.
Bartusek
Nie chce działać..
Mam konto testowe na linuxpl.com
erix
Może pokaż cały .htaccess?
Bartusek
  1. RewriteEngine on
  2. RewriteBase /blackd
  3. RewriteRule ^([a-zA-Z]+)/?$ index.php?page=$1 [L]

Proszę.
W folderze blackd mam jeszcze folder potwory w którym jest plik który includuje demon.php oraz id.php
erix
O ile się nie mylę, to:
Kod
RewriteRule ^/([a-zA-Z]+)/?$ index.php?page=$1 [L]
Bartusek
http://xc.ayz.pl/blackd/index.php?page=demon
W dalszym ciągu nie działa.
erix
Kod
RewriteEngine on
RewriteBase /blackd/
RewriteRule ^([a-zA-Z]+)/?$ index.php?page=$1 [L]

sprawdziłem.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.