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
<?php include('login.php'); include('./db/connection.php'); $szukaj = ("+"); $szukaj .= $_POST["search"]; $metoda = $_POST["metoda"]; $znakrozdzielenia=' +'; $wyn = http://www.php.net/str_replace(" ", "$znakrozdzielenia", $szukaj); $klucze=http://www.php.net/explode($znakrozdzielenia, $szukaj); foreach($klucze AS $wynik){} $zapytanie = $pdo->prepare("SELECT * FROM filmy WHERE MATCH(".$metoda.") AGAINST ('".$wyn."')ORDER BY id DESC"); //zmienna $pdo pochodzi z db/connection.php $zapytanie->execute(); // wykonaj zayptanie do bazy danych while($rekord = $zapytanie->fetch()) { http://www.php.net/echo"<div class='col-md-4'><div class='card; bg-dark m-2'><div class='embed-responsive embed-responsive-16by9'> <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>"; } ?>
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.
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ć.
Sesja to dobry pomysł ale pytanie jak można to wykonać?
if (http://www.php.net/isset($_POST['search'])){ $_SESSION['szukane'] = 1; } if (!http://www.php.net/isset($_SESSION['szukane'])){ } else{ tutaj kod wyszukiwarki }
if(http://www.php.net/isset($_POST['szukana'])){ $_SESSION['szukana']=$_POST['szukana']; }else{ $_SESSION['szukana'] = $_SESSION['szukana'] ; } if(http://www.php.net/isset($_SESSION['szukana'])) II (http://www.php.net/isset($_POST['szukana'])) { if(http://www.php.net/isset($_POST['szukana'])){ $szukaj=$_POST['szukana']; }else{ $szukaj= $_SESSION['szukana'] ; } // tu kod szukarki. $szukana to argument funkcji do wyszukania (fraza) }
@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
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.
<http://december.com/html/4/element/form.html class="form-inline" action="index.php?v=search" method="get" enctype="multipart/form-data" name="form1"> <http://december.com/html/4/element/input.html class="form-control mr-1" type="search" placeholder="Wyszukaj" name="search"> <http://december.com/html/4/element/div.html class="mr-1 p-3">Szukaj w</http://december.com/html/4/element/div.html> <http://december.com/html/4/element/select.html name="metoda"> <http://december.com/html/4/element/option.html value="tag" />Tagi Filmu <http://december.com/html/4/element/option.html value="nazwa" />Nazwa filmu </http://december.com/html/4/element/select.html><http://december.com/html/4/element/br.html></http://december.com/html/4/element/br.html> <http://december.com/html/4/element/div.html class="col-1"><http://december.com/html/4/element/button.html class="btn btn-light" type="submit">Znajdź</http://december.com/html/4/element/button.html></http://december.com/html/4/element/div.html> </http://december.com/html/4/element/form.html>
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)