Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP]Linki przez Get czy jakoś tak - proszę o skrypt
Mlody993
post 28.03.2009, 01:06:26
Post #1





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 12.02.2009

Ostrzeżenie: (0%)
-----


Witam,
chcę na mojej stronie użyć linków Get url czy jakoś tak to się nazywa. Mianowicie zamiast linków xxx.html chce mieć np. ?show=xxx mam nadzieje, że mnie rozumiecie. haha.gif

O takie linki mi chodzi:
http://forum.php.pl/index.php?showtopic=10...aded&start=

Chcę tylko ten skrypt <?php ?> a nie pamiętam co jest w środku. Kiedyś to używałem. Jeśli mogę to proszę od razu o tę linijke, że gdy ktoś nie wpisze nic poza index.php, to żeby wysłało go do index.php?show=home. ;P

Z góry dziękuję.
Go to the top of the page
+Quote Post
Maciekbjw
post 28.03.2009, 01:34:11
Post #2





Grupa: Zarejestrowani
Postów: 217
Pomógł: 23
Dołączył: 2.12.2007
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(Mlody993 @ 28.03.2009, 01:06:26 ) *
Witam,
chcę na mojej stronie użyć linków Get url czy jakoś tak to się nazywa. Mianowicie zamiast linków xxx.html chce mieć np. ?show=xxx mam nadzieje, że mnie rozumiecie. haha.gif

O takie linki mi chodzi:
http://forum.php.pl/index.php?showtopic=10...aded&start=

Chcę tylko ten skrypt <?php ?> a nie pamiętam co jest w środku. Kiedyś to używałem. Jeśli mogę to proszę od razu o tę linijke, że gdy ktoś nie wpisze nic poza index.php, to żeby wysłało go do index.php?show=home. ;P

Z góry dziękuję.


Najpierw to może naucz się pisać poprawnie, żebym Cię mógł zrozumieć ;-)

No ale ok,

Cytat
Chcę tylko ten skrypt <?php ?> a nie pamiętam co jest w środku. Kiedyś to używałem. Jeśli mogę to proszę od razu o tę linijke, że gdy ktoś nie wpisze nic poza index.php, to żeby wysłało go do index.php?show=home. ;P


Rozwiązanie:

  1. <?php
  2. //jesli zmienna ?show jest pusta, czyli mamy adres index.php
  3. if(empty($_GET['show']))
  4. {
  5. //przekierowujemy
  6.   header("location: index.php?show=home");
  7.   exit;
  8. }
  9. else
  10. {
  11. //tutaj reszta. może dać np switcha;)
  12.  
  13. }
  14. ?>



Jeśli chodzi o pierwszą część Twojego pytania, to chciałbym Ci pomóc, ale naprawdę Cie nie rozumiem. Napisz troszkę jaśniej.


--------------------
Masz swoje mieszkanie i chcesz je wynająć? Sprawdź ofertę Zarzadządzanie Najmem

WRONA.IT - pozycjonowanie stron
www.ecyklopedia.pl
Go to the top of the page
+Quote Post
Dariusz2
post 28.03.2009, 07:54:58
Post #3





Grupa: Zarejestrowani
Postów: 21
Pomógł: 1
Dołączył: 10.03.2009

Ostrzeżenie: (0%)
-----


Jeśli dobrze zrozumiałem co piszesz, chcesz po prostu na swojej stronie używać linków np. index.php?show&costam

więc jeśli o to chodzi to robisz to tak :

na stronie linki podajesz <a href="index.php?show&costam">

teraz w pliku index.php
musi sie znaleźć kod :

Kod
<?php

if(isset($_GET['show'] && ($_GET['costam']) {
      
     echo ' Strona Cos Tam ';
   }
?>


jeśli chodzi o coś innego to napisz wprost biggrin.gif bo ciężko Cie zrozumieć smile.gif
Go to the top of the page
+Quote Post
Fifi209
post 28.03.2009, 08:53:18
Post #4





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Cytat(Dariusz2 @ 28.03.2009, 07:54:58 ) *
Jeśli dobrze zrozumiałem co piszesz, chcesz po prostu na swojej stronie używać linków np. index.php?show&costam

więc jeśli o to chodzi to robisz to tak :

na stronie linki podajesz <a href="index.php?show&costam">

teraz w pliku index.php
musi sie znaleźć kod :

Kod
<?php

if(isset($_GET['show'] && ($_GET['costam']) {
      
      echo ' Strona Cos Tam ';
    }
?>


jeśli chodzi o coś innego to napisz wprost biggrin.gif bo ciężko Cie zrozumieć smile.gif


Znak ampersand stosuje się gdy masz więcej niż jedną zmienną w adresie...

np.

http://domena/index.php?action=panel&mod=admin

Poza tym powieliłeś wypowiedź kolegi wyżej...


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
mpps
post 28.03.2009, 09:34:41
Post #5





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 14.03.2003
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


Wykorzystując kod Maciekbjw:

plik index.php:
  1. <?php
  2. //jesli zmienna ?show jest pusta, czyli mamy adres index.php
  3. if(empty($_GET['show'])){
  4.    //przekierowujemy
  5.    header("location: index.php?show=home");
  6.    exit;
  7. }
  8. else{
  9.    echo '<a href="index.php?show=home">home</a><br>';
  10.    echo '<a href="index.php?show=world">world</a><br>';
  11.  
  12.    //lub
  13.    //echo '<a href=\"index.php?show=1\">home</a>';
  14.    //echo '<a href=\"index.php?show=2\">world</a>';
  15.  
  16.    switch($show){
  17.        case "home" : include("home.php"); break;
  18.        case "world" : include("world.php"); break;
  19.        //może Ci się przydać, jeśli nie będziesz chciał skorzystać z header("location: index.php?show=home");
  20.        default : include("home.php"); break;
  21.  
  22.        //możesz też skorzystać np. z liczb określających ID strony:
  23.        //case "1" : include("home.php"); break;
  24.        //case "2" : include("world.php"); break;
  25.    }
  26. }
  27. ?>


plik home.php:
  1. <?php
  2. echo 'strona główna';
  3. ?>


plik world.php:
  1. <?php
  2. echo 'podstrona';
  3. ?>


pozdrawiam
Marcin


--------------------
www.mpps.pl
park maszynowy: apache 2.2.22 | php 5.4.0 | MySQL 5.0.10 | phpMyAdmin 3.5.0 | notepad ++ | pilsner urquell
Go to the top of the page
+Quote Post
Fifi209
post 28.03.2009, 09:50:45
Post #6





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


@up

Kod
switch($show)


Nie każdy ma włączoną dyrektywę register globals smile.gif

Poza tym switch jest bez sensu przy większych projektach...

Lepiej sprawdzić czy nazwa pasuje do wyrażenia regularnego i sprawdzić czy plik istnieje i go includować.

Kod
$reg = "/^[a-zA-Z0-9]+$/";

$name = $_GET['show'];

    if (preg_match($reg, $name)) {
        if (file_exists($name.'.php')) {
            // przykładowo dokleiłem końcówkę .php może być inna
            // include($name.'.php');
        }else{
            // Plik nie istnieje
            exit();
        }
    }else{
        // Nazwa pliku nie pasuje do wzorca
        exit();
    }


Ten post edytował fifi209 28.03.2009, 09:55:53


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
mpps
post 28.03.2009, 10:12:08
Post #7





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 14.03.2003
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


Cytat(fifi209 @ 28.03.2009, 09:50:45 ) *
Poza tym switch jest bez sensu przy większych projektach...


Biorąc pod uwagę to, że Mlody993 prawdopodobnie dopiero zaczyna zabawę z PHP, to pewnie o większych projektach jeszcze nie myśli, bo i ten najmniejszy jest dla Niego nie lada wyzwaniem winksmiley.jpg

Ale Twoje rozwiązanie jest oczywiście godne uwagi!

Pozdrawiam
Marcin


--------------------
www.mpps.pl
park maszynowy: apache 2.2.22 | php 5.4.0 | MySQL 5.0.10 | phpMyAdmin 3.5.0 | notepad ++ | pilsner urquell
Go to the top of the page
+Quote Post
Mlody993
post 28.03.2009, 11:31:22
Post #8





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 12.02.2009

Ostrzeżenie: (0%)
-----


Cytat(Maciekbjw @ 28.03.2009, 01:34:11 ) *
Najpierw to może naucz się pisać poprawnie, żebym Cię mógł zrozumieć ;-)

No ale ok,



Rozwiązanie:

  1. <?php
  2. //jesli zmienna ?show jest pusta, czyli mamy adres index.php
  3. if(empty($_GET['show']))
  4. {
  5. //przekierowujemy
  6.   header(&#092;"location: index.php?show=home\");
  7.   exit;
  8. }
  9. else
  10. {
  11. //tutaj reszta. może dać np switcha;)
  12.  
  13. }
  14. ?>



Jeśli chodzi o pierwszą część Twojego pytania, to chciałbym Ci pomóc, ale naprawdę Cie nie rozumiem. Napisz troszkę jaśniej.


Tak, właśnie o to mi chodziło. winksmiley.jpg Wielkie dzięki. smile.gif) Tylko gdzie w tym kodzie się ustawia folder? ;p

Bo jest np. ?show=blabla i ten blabla plik jest w katalogu np. pliki no to ten skrypt musi wiedzieć gdzie szukać tego pliku, a tutaj brak informacji.

Ten post edytował Mlody993 28.03.2009, 11:33:19
Go to the top of the page
+Quote Post
trike
post 28.03.2009, 14:00:57
Post #9





Grupa: Zarejestrowani
Postów: 82
Pomógł: 9
Dołączył: 9.01.2008

Ostrzeżenie: (0%)
-----


?show=blablabal przesylasz tylko informacje, to nie jest odwolanie do pliku, z tego mozna odczytac zmienna $_GET['show'] ktorej wartosc jest blablabal
Go to the top of the page
+Quote Post
Mlody993
post 28.03.2009, 16:55:53
Post #10





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 12.02.2009

Ostrzeżenie: (0%)
-----


No to w takim razie my się nie rozumiemy. sad.gif Nie wiem jak to wam wytłumaczyć.

Mam plik index.php i folder XXX . W katalogu XXX znajduje się plik home.txt . Po wpisaniu strony http://www.xxxx.pl/index.php wyświetli się strona bez zawartości środka czyli pliku home.txt . A ja chcę, żeby pod tym linkiem: http://www.xxxx.pl/index.php?show=home wyświetlała się zawartość index.php + home.txt z folderu XXX. I tam mogę sobie ustawiać w tym kodzie, że np. "show" ma wczytywać pliki z katalogu XXX i sobie mogę dodawać np. pokaz=xxx i zeby ten "pokaz" brał pliki .txt z folderu XX2 - taki przykład.

I to właśnie tym kodem się robiło, jakiś rok temu jeszcze to wykorzystywałem, teraz nie pamiętam jak to się nazywało. sad.gif

@edit:
Znalazłem. Na tej stronie jest wzór tego czego szukam:
http://www.kpeyz.cba.pl/index1.php

Tylko wchodzę w kod źródłowy i nic nie widać. sad.gif

Ten post edytował Mlody993 28.03.2009, 17:10:34
Go to the top of the page
+Quote Post
trike
post 28.03.2009, 17:41:18
Post #11





Grupa: Zarejestrowani
Postów: 82
Pomógł: 9
Dołączył: 9.01.2008

Ostrzeżenie: (0%)
-----


moze o to ci chodzi:
  1. <?php
  2. if ($_GET['show'] == "home") {
  3. if (file_exists("xxx/home.txt"))  include("xxx/home.txt");
  4. }
  5. ?>
Go to the top of the page
+Quote Post
Mlody993
post 28.03.2009, 18:28:26
Post #12





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 12.02.2009

Ostrzeżenie: (0%)
-----


No właśnie coś takiego:
<?php
if ($_GET['show'] == "home") {
if (file_exists("xxx/home.txt")) include("xxx/home.txt");
}
?>

Tylko że jakoś tak może:
<?php
if ($_GET['show'] == "&name") {
if (file_exists("xxx/&name.txt")) include("xxx/&name.txt");
}
?>

Chodzi o to, że gdy wpisze w przeglądarce index.php?show=kontakt to wczyta plik KONTAKT.txt z katalogu xxx , a gdy w przeglądarce wpisze index.php?show=home to wczyta plik HOME.txt z katalogu xxx . Teraz już chyba rozumiecie o co mi chodzi. smile.gif)
Go to the top of the page
+Quote Post
InosU31
post 28.03.2009, 19:08:05
Post #13





Grupa: Zarejestrowani
Postów: 221
Pomógł: 14
Dołączył: 11.03.2009
Skąd: Lubaczów

Ostrzeżenie: (0%)
-----


Cytat(Mlody993 @ 28.03.2009, 18:28:26 ) *
No właśnie coś takiego:
<?php
if ($_GET['show'] == "home") {
if (file_exists("xxx/home.txt")) include("xxx/home.txt");
}
?>

Tylko że jakoś tak może:
<?php
if ($_GET['show'] == "&name") {
if (file_exists("xxx/&name.txt")) include("xxx/&name.txt");
}
?>

Chodzi o to, że gdy wpisze w przeglądarce index.php?show=kontakt to wczyta plik KONTAKT.txt z katalogu xxx , a gdy w przeglądarce wpisze index.php?show=home to wczyta plik HOME.txt z katalogu xxx . Teraz już chyba rozumiecie o co mi chodzi. smile.gif)


no ale to przeciez dziala blinksmiley.gif

jak zrobisz tak :
  1. No właśnie coś takiego:
  2. <?php
  3. if ($_GET['show'] == "home") {
  4. if (file_exists("xxx/home.txt")) include("xxx/home.txt");
  5. }
  6. ?>


i w przegladarce wpiszesz : (w index.php dajesz kod ten wyzej) http://jakisadres.pl/index.php?show=home to wyswietli ci to co najduje sie w pliku home.txt

a to drugie "&" to jest do laczenia dwoch indexow czyli jak napiszesz : http//jakasstrona.pl/index.php?show=home&show=kontakt
to ci wyswietli obie te strony

a w miejsce home :$_GET['show'] == "home" mozesz wpisac co tam chcesz i tak samo w pzregladarce

zobacz to :
  1. <?php
  2.  
  3. if ($_GET['show'] == "name1") {
  4. if (file_exists("xxx/home.txt"))
  5. include("xxx/home.txt");
  6. }
  7.  
  8. if ($_GET['show'] == "name") {
  9. if (file_exists("xxx/kontakt.txt"))
  10. include("xxx/kontakt.txt");
  11. }
  12. ?>
Go to the top of the page
+Quote Post
Fifi209
post 28.03.2009, 19:44:58
Post #14





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Człowieku, przecież ja Ci na to dałem gotowy kod więc w czym problem?


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
Mlody993
post 28.03.2009, 20:49:29
Post #15





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 12.02.2009

Ostrzeżenie: (0%)
-----


Cytat(InosU31 @ 28.03.2009, 19:08:05 ) *
no ale to przeciez dziala blinksmiley.gif

jak zrobisz tak :
  1. <?php
  2. No właśnie coś takiego:
  3. if ($_GET['show'] == &#092;"home\") {
  4. if (file_exists(&#092;"xxx/home.txt\")) include(\"xxx/home.txt\");
  5. }
  6. ?>


i w przegladarce wpiszesz : (w index.php dajesz kod ten wyzej) http://jakisadres.pl/index.php?show=home to wyswietli ci to co najduje sie w pliku home.txt

a to drugie "&" to jest do laczenia dwoch indexow czyli jak napiszesz : http//jakasstrona.pl/index.php?show=home&show=kontakt
to ci wyswietli obie te strony

a w miejsce home :$_GET['show'] == "home" mozesz wpisac co tam chcesz i tak samo w pzregladarce

zobacz to :
  1. <?php
  2. if ($_GET['show'] == &#092;"name1\") {
  3. if (file_exists(&#092;"xxx/home.txt\"))
  4. include(&#092;"xxx/home.txt\");
  5. }
  6.  
  7. if ($_GET['show'] == &#092;"name\") {
  8. if (file_exists(&#092;"xxx/kontakt.txt\"))
  9. include(&#092;"xxx/kontakt.txt\");
  10. }
  11. ?>


No tak, ale do każdego pliku z folderu XXX muszę dopisywać nowy wiersz
Cytat
if ($_GET['show'] == \"name\") {
if (file_exists(\"xxx/kontakt.txt\"))
include(\"xxx/kontakt.txt\");
}

A ja chcę, żeby był jeden taki wiersz i obojętnie jaką nazwę wpiszę po show= to taki plik mi wczyta. Według twojego kodu dla każdego pliku muszę dodać ten wiersz, a co gdy plików będzie np. 1000 ? :/ 100 wierszy kilko linijkowych to niezły bałagan będzie.

Cytat(fifi209 @ 28.03.2009, 19:44:58 ) *
Człowieku, przecież ja Ci na to dałem gotowy kod więc w czym problem?

No niby gotowy, ale gdzie jest linia odpowiedzialna za folder, w którym ma szukać pliku .txt?
Go to the top of the page
+Quote Post
Fifi209
post 28.03.2009, 21:17:04
Post #16





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Kod
$reg = "/^[a-zA-Z0-9]+$/";

$name = $_GET['show'];

    if (preg_match($reg, $name)) {
        if (file_exists($name.'.php')) { // tutaj
            // przykładowo dokleiłem końcówkę .php może być inna
            // include($name.'.php'); // i tutaj
        }else{
            // Plik nie istnieje
            exit();
        }
    }else{
        // Nazwa pliku nie pasuje do wzorca
        exit();
    }


Robisz np. tak:

'folder/'.$name.'.txt'

Ale mi problem troszkę zmienić ? biggrin.gif

"tutaj" ma być ta sama ścieżka w razie czego ;d

@edit
Słuchaj wypowiedzi pana na dole a jesteś narażony na błędy include winksmiley.jpg

@down

A co jeżeli wpiszę?

a../index.php

Dostanę błędy? A jeżeli ktoś użyje tego do jeszcze gorszych rzeczy ? tongue.gif
Z resztą nie wiem po co powielasz wypowiedzi poprzedników.

Ten post edytował fifi209 28.03.2009, 21:42:15


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
trike
post 28.03.2009, 21:17:47
Post #17





Grupa: Zarejestrowani
Postów: 82
Pomógł: 9
Dołączył: 9.01.2008

Ostrzeżenie: (0%)
-----


podawaj w linku nazwe pliku i katalogu powiedzmy: index.php?kat=cos&plik=cosinnego

  1. <?php
  2. if ((isset($_GET['kat'])) && (isset($_GET['plik']))) {
  3. if (file_exists($_GET['kat']."/".$_GET['plik'])) include($_GET['kat']."/".$_GET['plik']));
  4. }
  5. ?>
Go to the top of the page
+Quote Post
Mlody993
post 28.03.2009, 21:52:53
Post #18





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 12.02.2009

Ostrzeżenie: (0%)
-----


Czyli to ma wyglądać tak:
Cytat
<?php
$reg = "/^[a-zA-Z0-9]+$/";

$name = $_GET['show'];

if (preg_match($reg, $name)) {
if (file_exists('txt/'.$name.'.txt')) { // tutaj
// przykładowo dokleiłem końcówkę .php może być inna
// include('txt/'.$name.'.txt'); // i tutaj
}else{
// Plik nie istnieje
exit();
}
}else{
// Nazwa pliku nie pasuje do wzorca
exit();
}
?>



Tyle, że daje link index.php?show=home i nie wyświetla pliku HOME. :/ home.txt jest w folderze txt .
Go to the top of the page
+Quote Post
Fifi209
post 28.03.2009, 21:57:55
Post #19





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Polecam usunąć komentarz poprzedzający funkcję include ;d

zamiast
Kod
// include('txt/'.$name.'.txt'); // i tutaj


ma być:
Kod
include('txt/'.$name.'.txt');


Ten post edytował fifi209 28.03.2009, 21:58:49


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
Mlody993
post 28.03.2009, 22:23:33
Post #20





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 12.02.2009

Ostrzeżenie: (0%)
-----


Aha, wszystko już okej. A jak się włącza stronę to trona jest "rozwalona" bo nie ma linku xxx.pl/index.php?show=home tylko xxx.pl/index.php i nie wczytuje HOME i strona rozwalona. Co zrobić, aby na dzień dobry otwierało stronę ?show=home questionmark.gif

@edit:
Okej wszystko rozwiązane. Odpowiedź w drugim poście. Drobna modyfikacja i jest git:
Cytat
<?php
//jesli zmienna ?show jest pusta, czyli mamy adres index.php
if(empty($_GET['show']))
{
//przekierowujemy
header("location: ?show=home");
exit;
}
else
{
//tutaj reszta. może dać np switcha;)

}
?>


Ten post edytował Mlody993 28.03.2009, 22:32:24
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 05:42