Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Formularz i wyświetlenie strony o danym numerze
Forum PHP.pl > Forum > Przedszkole
Soojeh
Witam Państwa serdecznie. Jestem początkującym programistą. Pragnę pochłonić więdzę jak mając formularz wpisać numer np. 1234 i kliknąć Szukaj, żeby przejść do strony zawartej na serwerze 1234.php i na tej stronie wyświetlono 1234 lub jeśli nie ma takiego numeru wyświetlić komunikat Brak danego numeru. Czy mógłby ktoś podać mi kod przykładowego formularza oraz pozostałość? Pozdrawiam i z góry dziękuję serdecznie.
johny_s
Cytat(Soojeh @ 28.03.2015, 20:23:50 ) *
Witam Państwa serdecznie. Jestem początkującym programistą. Pragnę pochłonić więdzę jak mając formularz wpisać numer np. 1234 i kliknąć Szukaj, żeby przejść do strony zawartej na serwerze 1234.php i na tej stronie wyświetlono 1234 lub jeśli nie ma takiego numeru wyświetlić komunikat Brak danego numeru. Czy mógłby ktoś podać mi kod przykładowego formularza oraz pozostałość? Pozdrawiam i z góry dziękuję serdecznie.

Z gotowców się nie nauczysz, lepiej samemu pokombinować
kafowi
Nie ma w tym filozofii. Zwykły formularz, pobierasz z niego wartość inputa i sprawdzasz
- http://php.net/manual/pl/function.file-exists.php
czy plik o danej nazwie istnieje. Jeżeli tak to robisz na niego przekierowanie, jeżeli nie to
echo "Nie ma takiego numeru";
com
Pomijając, że to rozwiązanie jest bardzo złe(ogólnie sama idea) to dokładnie tak jak kolega napisał powyżej smile.gif
Soojeh
Jeśli Ci prócz osoby która pomogła (wiadomo kto), ma coś jeszcze do skomentowania? Przecież to "Przedszkole". Jeśli zna ktoś lepszy sposób proszę się wykazać. Może niektóre osoby potrafią się uczyć z "gotowców". Proszę o dalsze propozycje.
kafowi
Po kontakcie na PW, bez walidacji.

  1. /// INDEX.html
  2. <!doctype html>
  3. <meta charset="utf-8">
  4. <title>Index</title>
  5. </head>
  6.  
  7. <form method="post" name="przeslij" action="1234.php">
  8. <label>Wprowadź wartość</label>
  9. <input type="text" name="wartosc">
  10. <br>
  11. <input type="submit" value="Klik">
  12. </form>
  13. </body>
  14. </html>
  15.  


  1. /// 1234.php
  2. <!doctype html>
  3. <html>
  4. <head>
  5. <meta charset="utf-8">
  6. <title>Wyświetlenie wyniku</title>
  7. </head>
  8.  
  9. <body>
  10. <?php
  11. echo $_POST["wartosc"];
  12. ?>
  13. </body>
  14. </html>

W drugim kodzie wcześniej przy użyciu warunków sprawdzasz czy dany numer istnieje.
Soojeh
kafowi z góry Ci bardzo dziękuję jesteś bardzo pomocny, a propo tego formularza w index.html, nie chciałbym żeby formularz przygotowany był konkretnie pod 1234.php tylko chciałbym żeby w action odczytał z tego pola co wpisuje 1234 i zeby przeszlo pod 1234.php lub mozna wpisac 555 w formularzu i zeby przeszedl pod 555.php lub wyswietlil komunikat nie znaleziono podanego numeru w index.html. Lepiej by było gdyby wyglądło to taką metodą, że przechodzi po wpisaniu na index.php?numer=1234 i na tym sie opierało. Za pomoc mogę się odpłacić. Pozdrawiam i czekam na rozwiązanie smile.gif
kafowi
Sprecyzuj do czego ci to, bo odnoszę wrażenie, że w jednym pliku można to zrobić.

  1. <?php
  2. if($_GET['numer'] == 997)
  3. {
  4. echo $_GET['numer'];
  5. }
  6. else
  7. {
  8. echo "Nie ma takiego numeru";
  9. }
  10. ?>
  11. <!doctype html>
  12. <meta charset="utf-8">
  13. <title>Index</title>
  14. </head>
  15.  
  16. <form method="get" name="formularz1" action="index.php">
  17. <label>Wprowadź wartość</label>
  18. <input type="text" name="numer">
  19. <br>
  20. <input type="submit" value="Kliknij">
  21. </form>
  22. </body>
  23. </html>
Soojeh
kafowi, jeszcze nie o to mi chodzi. Powiem tak chciałbym, żeby to wyglądało w pliku index.php formularz do wpisania numeru np 1234 i przycisk sprawdz i ma odnalezc na serwerze strone 1234.php i ma pod nią przejść tylko w formie index.php?numer=1234 wyswietlic tam w tym pliku "Nr 1234 jest przypisany do Osoba" a jeśli nie znajdzie strony 1234.php czyli 1234 to żeby w index.php wyświetliło, że brak takiego numeru. Czy mógłby ktoś naszkicować na szybko jakiś gotowiec? Pozdrawiam Soojeh
Raito
Pisane na szybko, bez sprawdzania danych:
  1. <form action="" method="GET">
  2. <input type="text" name="numer">
  3. <input type="submit">
  4. </form>
  5.  
  6. if(isset($_GET["numer"])){
  7. $nazwa_pliku = $_GET["numer"].".php";
  8. if(file_exists($nazwa_pliku)){
  9. $plik = fopen($nazwa_pliku,"r");
  10. while(!(feof($plik))){
  11. echo fgets($plik,255);
  12. }
  13. fclose($plik);
  14. }else{
  15. echo "Brak takiego numeru.";
  16. }
  17. }
com
Temat: PHPsekcje w php
Bliźniaczy temat i rozwiązanie smile.gif

@up to już sztuka dla sztuki biggrin.gif
Soojeh
Ekstra sprawa smile.gif jeszcze mały smaczek co do tego, chciałbym żeby to opiarało się na sesjach (chyba tak to się nazywa), jak po wpisaniu w formularzu przejdzie pod podany numer a on istnieje to ok, po jakimś czasie jak wpisze w oknie przegladarki index.php?numer=1234 to wyswietli się komunikat "Sesja wygasła, wpisz ponownie numer w formularzu". Czy istnieje również jakieś ograniczenie czasowe, żeby można było to ustawić? Dziękuje bardzo smile.gif
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.