Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: przekierowanie po wysłaniu formularza
Forum PHP.pl > Forum > Przedszkole
maciu
Powiedzmy, że formularz wysyłam ze strony http://nazwa.com/katalog/?zmienna=wartosc&zmienna2=wartosc2

W jaki sposób zrobić, aby formularz ten został wysłany do tej samej strony, z której został wysłany, innymi słowy, aby po wysłaniu formularza zostać przekierowanym do tej samej strony.
invx
normalnie:
  1. <form action="http://nazwa.com/katalog/?zmienna=wartosc&zmienna2=wartosc2" method="POST"></form>


hyba ze Ci chodzi o header(); to w tedy tak:
  1. <?php
  2. header(&#092;"location=http://nazwa.com/katalog/?zmienna=wartosc&zmienna2=wartosc2\");
  3. ?>
marlowe
php_self
  1. <?php
  2. if($_GET['zmienna'])
  3. $zmienna = htmlspecialchars($_GET['zmienna']);
  4. echo &#092;"<b>\".$zmienna.\"</b>\";
  5. ?>
  6. <form action=\"<?php echo $PHP_SELF; ?>\" method=\"get\">
  7. <input type=\"text\" name=\"zmienna\"/>
  8. <input type=\"submit\">
  9. </form>

Pozdrawiam.
Bartek
maciu
jak wpisze
  1. <?php
  2.  
  3. $_SERVER['php_self']
  4.  
  5. ?>

to przeniesie mnie tylko do http://nazwa.com/katalog/ a reszte adresu pomija. Myślałem, że trzeba użyć
  1. <?php
  2.  
  3.  <FORM method=post action='.$_SERVER['PHP_SELF'].'?'.$_SERVER['query_string'].'
  4. ';
  5.  
  6. ?>

ale to też nie pomaga
invx
napisz dokladniej co chcesz osiagnac, bo nie rozumiem.
borec
nie $_SERVER['query_string'] a $_SERVER['QUERY_STRING']
Dawid Pytel
Widzę, że mało kto potrafi zrozumieć skąd są wysyłane dane.
Ja zakładam, że chodzi o coś takiego:

  1. <?php
  2.  
  3. header(&#092;"Location: \". $_SERVER['HTTP_REFERER'] .\"\");
  4.  
  5. ?>


To przenosi Cię do strony z której przyszedłeś.
marlowe
@Dawid Pytel:
Cytat("maciu")
...aby formularz ten został wysłany do tej samej strony, z której został wysłany...

Przecież to nie daje takiego efektu...?
Pozdrawiam.
Bartek
maciu
zarówno
  1. <?php
  2.  
  3. <FORM method=post action='.$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'].'
  4. ';
  5.  
  6. ?>

jak i
  1. <?php
  2.  
  3. <FORM method=post action='.$_SERVER['HTTP_REFERER'].'
  4. ';
  5. ?>

przenoszą na strone nazwa.com/katalog zamiast na strone nazwa.com/katalog/?zmienna=wartosc&zmienna2=wartosc2
marlowe
Cóż. Pewnie jest jakiś mądrzejszy pomysł ale rozwiązałem to tak:
  1. <?php
  2. if($_GET['zmienna1']!=&#092;"\")
  3. {
  4. if($_GET['zmienna2']!=&#092;"\")
  5. {
  6. echo &#092;"<b>Skrypt skierował wykonanie formularza na siebie samego i nie zgubił ciągu za
  7. ytań.</b>\";
  8. }
  9. echo \"<form action=\"$PHP_SELF\\" method=\"get\">n\";
  10. echo \"<input type=\"text\\" name=\"zmienna2\" />n\";
  11. foreach($_REQUEST as $form=>$form_val)
  12. {
  13. echo \"<input type=\"hidden\\" name=\"$form\" value=\"$form_val\" />n\";
  14. }
  15. echo \"<input type=\"submit\\" />n\";
  16. echo \"</form>n\";
  17. echo \"<hr />$zmienna1 wynosi $zmienna1<br />n$zmienna2 wynosi $zmienna2<br />n\";
  18. }
  19. else
  20. {
  21. echo \"Zmienna $zmienna1 w ciągu zapytań jest pusta.\";
  22. }
  23. ?>

Tutaj jest przykład.
Pozdrawiam.
Bartek
PS Przepraszam- znów mi mi zmieniło niektóre znaczki w listingu... zamień je proszę sobie na "!" i "\".
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.