Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Ponowne przesłanie formularza
Puchatek320
post 4.11.2019, 22:45:34
Post #1





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

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


Cześć,
Chciałbym się dowiedzieć jak można ominąć ponowne przesłanie formularza. Mam stronę internetową z wyszukiwarką jeśli jej użyje wszystko jest fajne, do czasu gdy wybieram film i chcę cofnąć stronę do wyników wyszukiwania to pojawia się komunikat o treści "Potwierdź ponowne przesłanie formularza". Co można z tym zrobić? nie mam żadnego pomysłu jak można ten problem obejść w internecie też nie znalazłem jakiejś sensownej odpowiedzi.

plik wyszukiwarki
  1. <?php
  2. include('login.php');
  3. include('./db/connection.php');
  4.  
  5. $szukaj = ("+");
  6. $szukaj .= $_POST["search"];
  7.  
  8. $metoda = $_POST["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. ?>
  31.  
Go to the top of the page
+Quote Post
dublinka
post 5.11.2019, 08:15:32
Post #2





Grupa: Zarejestrowani
Postów: 348
Pomógł: 43
Dołączył: 22.02.2008

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


Mozesz sama szukana przypisac sesji i dodac jako fraza te sesje. Sesja istnieje dopuki jej nie usuniesz wiec bedzie "dzialac" tak jakby byla wklepana przez kogos. Za kadym razem bedzie nadpisywana nowa fraza do wyszukania.
Go to the top of the page
+Quote Post
kapslokk
post 5.11.2019, 08:27:00
Post #3





Grupa: Zarejestrowani
Postów: 963
Pomógł: 284
Dołączył: 19.06.2015
Skąd: Warszawa

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


IMO nie trzeba nic kombinować z sesją, wystarczy dane wyszukiwania wysyłać GET'em a nie POST'em. Poza tym kod, który podałeś jest podatny na SQL Injection - powinieneś to poprawić.
Go to the top of the page
+Quote Post
Puchatek320
post 5.11.2019, 23:08:56
Post #4





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

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


Sesja to dobry pomysł ale pytanie jak można to wykonać?

  1. if (isset($_POST['search'])){
  2. $_SESSION['szukane'] = 1;
  3. }
  4. if (!isset($_SESSION['szukane'])){
  5. }
  6.  
  7. else{
  8. tutaj kod wyszukiwarki
  9. }

Ale dalej wyświetla błąd.

Sesja już działa ponieważ zalogowałem się na stronę ale nie wiem jak można to podpiąć pod stronę wyszukiwania, żeby pozbyć się tego błędu.


Poprawiłem to w ten sposób, użyłem sesji logowania ponieważ przed wejściem na serwis trzeba się zalogować ale niestety dalej wyświetlany jest błąd :/

if (!isset($_SESSION['logged'])){
}

else{tutaj kod}




Ten post edytował Puchatek320 5.11.2019, 23:25:53
Go to the top of the page
+Quote Post
dublinka
post 7.11.2019, 07:32:37
Post #5





Grupa: Zarejestrowani
Postów: 348
Pomógł: 43
Dołączył: 22.02.2008

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


  1. if(isset($_POST['szukana'])){
  2. $_SESSION['szukana']=$_POST['szukana'];
  3. }else{
  4. $_SESSION['szukana'] = $_SESSION['szukana'] ;
  5. }
  6.  
  7. if(isset($_SESSION['szukana'])) II (isset($_POST['szukana']))
  8. {
  9. if(isset($_POST['szukana'])){
  10. $szukaj=$_POST['szukana'];
  11. }else{
  12. $szukaj= $_SESSION['szukana'] ;
  13. }
  14. // tu kod szukarki. $szukana to argument funkcji do wyszukania (fraza)
  15. }


Ten post edytował dublinka 7.11.2019, 07:54:13
Go to the top of the page
+Quote Post
nospor
post 7.11.2019, 10:41:32
Post #6





Grupa: Moderatorzy
Postów: 34 862
Pomógł: 5801
Dołączył: 27.12.2004




@dublinka dwa II obok siebie to nie OR... Dwa || a i owszem.
Pozatym twoj kod nie rozwiazuje problemu w zaden sposob. Jak juz wspomniano wczesniej: form ma isc GETem a nie POSTem. Sesja tu nic nie poprawia


--------------------

Najlepsze kawałki programistyczne || Dowcipy o informatykach || Forum PHP dla opornych
Klasy: Pager (stronicowanie) | Cache | ShoutBox (Chat) | Widok | Ładne url'e

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
dublinka
post 7.11.2019, 19:34:27
Post #7





Grupa: Zarejestrowani
Postów: 348
Pomógł: 43
Dołączył: 22.02.2008

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


Cytat(nospor @ 7.11.2019, 09:41:32 ) *
@dublinka dwa II obok siebie to nie OR... Dwa || a i owszem.
Pozatym twoj kod nie rozwiazuje problemu w zaden sposob. Jak juz wspomniano wczesniej: form ma isc GETem a nie POSTem. Sesja tu nic nie poprawia

Pisalem na tel i owszem dalem zle znaki.
Jesli sesja bedzie zarejestorwna = przypisana z pola forma to da rade.Nawet jesli sie wroci z innej strony bo sesja ktora zawiera fraze bedzie brana jakoby byla wklepana w forma
Go to the top of the page
+Quote Post
nospor
post 8.11.2019, 10:30:42
Post #8





Grupa: Moderatorzy
Postów: 34 862
Pomógł: 5801
Dołączył: 27.12.2004




Cytat
esli sesja bedzie zarejestorwna = przypisana z pola forma to da rade.Nawet jesli sie wroci z innej strony bo sesja ktora zawiera fraze bedzie brana jakoby byla wklepana w forma

Ale przeczytaj z jakim problemem zglosil sie autor... sesja nic nie poradzi na fakt, ze jak klikniej COFNIJ w przegladarce to bedzie dostawal ciagle ten sam blad. Tutaj pomoze tylko wyslanie formularza GETem, jak juz wspominano


--------------------

Najlepsze kawałki programistyczne || Dowcipy o informatykach || Forum PHP dla opornych
Klasy: Pager (stronicowanie) | Cache | ShoutBox (Chat) | Widok | Ładne url'e

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Puchatek320
post 8.11.2019, 21:58:32
Post #9





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

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


Dzięki za pomoc panowie użyłem metody "GET" ale mam pytanie jak można się go pozbyć "&metoda=tag" z paska adresu lub jak ukryć. Chciałbym żeby zostało "http://localhost/index.php?search=test" bez "&metoda=tag" jak jest w tej chwili.

http://localhost/index.php?search=test&metoda=tag

Zauważyłem że jeśli zmienię metodę z post na get to wyszukiwarka nie działa :/ ktoś wyjaśni dlaczego?

$szukaj .= $_GET["search"];

$metoda = $_GET["metoda"];

zmieniłem z post na get i powinno działać bez problemu przesyłanie formularza, również ustawiłem na get.

Znalazłem przyczynę nie wiedzieć czemu jeśli zmienię metodę z post na get to jest wyświetlana strona głowna z filmami przy metodzie post wszystko jest okey, i wyszukiwarka dziala.

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


Ten post edytował Puchatek320 8.11.2019, 22:58:47
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 Wersja Lo-Fi Aktualny czas: 11.12.2019 - 14:26