Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][PHP]Formularz metoda get i post
Puchatek320
post
Post #1





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 4.11.2019

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


Cześć,
Ostatnio pisałem na temat formularz,ponieważ miałem problem z przesyłaniem, jeśli użyje metody post wszystko jest ok. Jeśli użyje metody get nie działa strona tak jak powinna, problemem jest zastosowanie przyjaznych linków ponieważ na podstawie adresu ustalam jaki plik wczytać może ktoś powiedzieć jak rozwiązać ten problem?

  1. <?php
  2.  
  3.  
  4. if(array_key_exists('v', $_GET)) {
  5. $module = $_GET['v'];
  6. } else {
  7. $module = 'wyswietlanie_filmow';
  8. }
  9.  
  10. $moduleDir = 'modules/' . $module . '.php';
  11. if(file_exists($moduleDir)){
  12. include($moduleDir);
  13. $content = ob_get_contents();
  14.  
  15. include("layout/layout.php");
  16. }
  17.  
  18. else
  19. {
  20. echo'nie ma takiej strony :/';
  21. }
  22.  
  23. ?>


Szybki skrót: Jeśli w pasku adresu występuje v=formularz to strona przechodzi do pliku o nazwie formularz niestety, problem pojawia się gdy użyje metody get ponieważ modyfikuje cały pasek adresu. Może ktoś ma jakiś sposób jak to obejść?

W metodzie post wygląda to tak: http://localhost/index.php?v=search
W get niestety tutaj wszystko się zmienia http://localhost/index.php?v=&search=test&metoda=tag
Go to the top of the page
+Quote Post
Tomplus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 879
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

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


Co masz w <form action='??'>
bo zdaje mi się że powinno być <form action='/index.php?v=search' method='post'>
Go to the top of the page
+Quote Post
Puchatek320
post
Post #3





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 4.11.2019

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


Tak, niestety nic to nie zmienia :/
  1. <form class="form-inline" action="index.php?v=search" method="get" enctype="multipart/form-data" name="form1">
ponieważ nie wiedzieć czemy jeśli użyje = przy znaku ? to nie pojawia się nic w pasku adresu co daje nam wynik

http://localhost/index.php?search=test&metoda=tag
Go to the top of the page
+Quote Post
dublinka
post
Post #4





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

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


Masz dac post nie get.
Nawet jak masz ustalona metode post to mozesz przesylac parametry czytajac poorzez get

Ten post edytował dublinka 26.11.2019, 08:52:09


--------------------
Go to the top of the page
+Quote Post
Puchatek320
post
Post #5





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 4.11.2019

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


Cytat(dublinka @ 26.11.2019, 08:51:15 ) *
Masz dac post nie get.
Nawet jak masz ustalona metode post to mozesz przesylac parametry czytajac poorzez get


Jeśli dobrze zrozumiałem to mam użyć przesyłanie metodą post a odebrać get?
Jeśli tak to niestety nie działa, pojawia się błąd
  1. Notice
  2. : Undefined index: search in
  3. D:\modules\search.php
  4. on line
  5. 6
  6.  
  7.  
  8. Notice
  9. : Undefined index: metoda in
  10. D:\modules\search.php
  11. on line
  12. 8


formularz
  1. <form class="form-inline" action="index.php?v=search" method="post" enctype="multipart/form-data" name="form1">
  2.  
  3.  
  4. <input class="form-control mr-1" type="search" placeholder="Wyszukaj" name="search">
  5.  
  6. <div class="mr-1 p-3">Szukaj w</div>
  7. <select name="metoda">
  8. <option value="tag" />Tagi Filmu
  9. <option value="nazwa" />Nazwa filmu
  10. </select><br></br>
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17. <div class="col-1"><button class="btn btn-light" type="submit">Znajdź</button></div>
  18. </form>


Wyszukiwarka

  1. <?php
  2. include('login.php');
  3. include('./db/connection.php');
  4.  
  5. $szukaj = ("+");
  6. $szukaj .= $_GET["search"];
  7.  
  8. $metoda = $_GET["metoda"];
  9. $znakrozdzielenia=' +';
  10.  
  11. $wyn = str_replace(" ", "$znakrozdzielenia", $szukaj);
  12.  
  13.  
  14. $klucze=explode($znakrozdzielenia, $szukaj);
  15.  
  16. foreach($klucze AS $wynik){}
  17.  
  18.  
  19. $zapytanie = $pdo->prepare("SELECT * FROM filmy WHERE MATCH(".$metoda.") AGAINST ('".$wyn."')ORDER BY id DESC"); //zmienna $pdo pochodzi z db/connection.php
  20. $zapytanie->execute(); // wykonaj zayptanie do bazy danych
  21. while($rekord = $zapytanie->fetch()) {
  22.  
  23.  
  24.  
  25. echo"<div class='col-md-4'><div class='card; bg-dark m-2'><div class='embed-responsive embed-responsive-16by9'>
  26. <video controls><source src= $rekord[short] type='video/mp4' frameborder='0' ></video></div><div class='card-content text-center'><span class='card-title'><a href=index.php?v=watch&id=$rekord[id]>$rekord[nazwa]</a></span></div><!-- card content --> </div></div>";
  27.  
  28. }
  29.  
  30. ?>


Ten post edytował Puchatek320 26.11.2019, 08:57:44
Go to the top of the page
+Quote Post
dublinka
post
Post #6





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

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


print (isset($_GET['costam'])) ? $_GET['costam'] : 'brak wartosci';

Sprawdz

Po pierwsze nie $_GET'search'] bo to wartosc a $_GET['v'] bo to zmienna jest.

Jesli chcesz porownywac to

if($_GET['v'] == 'search')
{
rob cos
}

Ten post edytował dublinka 26.11.2019, 09:25:36


--------------------
Go to the top of the page
+Quote Post
Puchatek320
post
Post #7





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 4.11.2019

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


Cytat(dublinka @ 26.11.2019, 09:19:12 ) *
print (isset($_GET['costam'])) ? $_GET['costam'] : 'brak wartosci';

Sprawdz

Po pierwsze nie $_GET'search'] bo to wartosc a $_GET['v'] bo to zmienna jest.

Jesli chcesz porownywac to

if($_GET['v'] == 'search')
{
rob cos
}

Przyszło mi do głowy że można zrobić to w ten sposób

  1. if(isset($_GET['metoda']) && $_GET['metoda'] == 'nazwa'){
  2.  
  3. $module = 'search';
  4. }
Go to the top of the page
+Quote Post

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 Aktualny czas: 21.08.2025 - 05:38