Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Komunikat po wysłaniu formularza
Forum PHP.pl > Forum > Przedszkole
barthezz
Witam.
Otóż jestem na razie laikiem jesli chodzi o PHP, ale na początku robię coś łatwego. Mam oto taki formularz:
  1. <form method="POST" action="sendform.php">
  2. <p>Podaj imię pierwszego gracza: </p><input type="text" name="pole1" id="pole"/>
  3. <p>Podaj imię drugiego gracza: </p><input type="text" name="pole2" id="pole"/>
  4. <input type="submit" name="submit" id="submit" value="Wyślij"/>
  5. </form>


Chcę, aby wyskakiwał komunikat wtedy kiedy pola nie są uzupełnione. Kod:
  1. <?php
  2. if(empty($_POST['pole1']) || empty($_POST['pole2'])) {
  3. echo "<script language='javascript' type='text/javascript'>alert('Proszę uzupelnić puste pola!'); </script>";}
  4. ?>


Przejdę do sedna. Jeżeli w action dam index.php, czyli pierwotną stronę gdzie formularz jest to komunikat pojawia się od razu po wejściu na stronę. Nie trzeba nawet klikać w wyślij. Natomiast jeżeli wstawie w action odzielny plik (tutaj: sendform.php) to działa, ale jeżeli pola są wypełnione to nadal zostaje formularz na stronie. Chciałbym uzyskać taki efekt, aby po poprawnym wypelnieniu formularza przechodziło do strony przeznaczonej na dane dla formularza (inaczej wygląda). Jeżeli nie zrozumiecie co mam na myśli to prześlę screeny, albo sam plik ze stroną i sami zobaczycie.

Pozdrawiam.
_Borys_
  1. <form method="POST" action="index.php">

To przed wyświetleniem formularza
  1. <?php
  2. if(empty($_POST['pole1']) || empty($_POST['pole2'])){
  3. echo "<script language='javascript' type='text/javascript'>alert('Proszę uzupelnić puste pola!'); </script>";
  4. }
  5. else{
  6. header('Location: sendform.php');
  7. }
  8.  
  9. ?>
barthezz
Idzie zaradzić temu, aby przy pierwszym wejsciu na stronę od razu komunikat się nie pojawiał? Przekierowywanie działa świetnie.

//EDIT: Tylko jest mały problem. Skoro podałem w action - index.php to czy on nie będzie tym, który będzie odbierał dane np. to co się znajduje w $_POST['pole1']? Jak więc użyć tych zmiennych w sendform.php?
_Borys_
No tak, nie zwróciłem uwagi. Można przekazać poprzez
  1. header('Location: sendform.php?pole1='.$_POST['pole1'].'&pole2='.$_POST['pole2']);

i potem sprawdzać w sendform.php $_GET['pole1'] itd.
Ale można też includować sendform.php do index.php
  1. if(empty($_POST['pole1']) || empty($_POST['pole2'])){
  2. // tworzenie index.php
  3. // trzeba też dodać ukryty input na przykład aby nie wyskakiwał alert po pierwszym wejściu na stronę, ustawić jakieś value w nim
  4. // gdzieś pomiędzy warunek
  5. if(!empty($_POST['input_name'])){
  6. echo "<script language='javascript' type='text/javascript'>alert('Proszę uzupelnić puste pola!'); </script>";
  7. }
  8. // dalsza część index.php
  9. }
  10. else{
  11. // include albo tworzenie sendform.php
  12. }
barthezz
Działa jak należy, dziękuję smile.gif W razie problemów - odezwę się.
Kshyhoo
Przenoszę do Przedszkola.
barthezz
Kolejny problem, tym razem z ciasteczkami.

  1. <form method="POST" action="sendform.php"/>
  2. <p>
  3. <span style="float:left">Podaj liczbę: <input type="text" name="g1" id="pole"/></span>
  4. <span style="float:right">Podaj liczbę: <input type="text" name="g2" id="pole"/></span>
  5. </p>
  6. <input type="submit" name="submit" id="submit" value="Graj!"/>
  7. <input type="hidden" name="verify" value="TRUE"/>
  8. </form>

  1. <?php
  2. if(!isset($_POST['verify'])) {
  3. $w=rand(1,6);
  4. setcookie('gra_wynik',$w);
  5. setcookie('t_g1',0);
  6. setcookie('t_g2',0);}
  7. else {
  8. if(($_COOKIE['gra_wynik']!=$_POST['g1']) && ($_COOKIE['gra_wynik']!=$_POST['g2'])) {
  9. echo 'Nikt nie trafił';}
  10. elseif($_COOKIE['gra_wynik']==$_POST['g1']) {
  11. $t_g1=$_COOKIE['t_g1']+1;}
  12. elseif($_COOKIE['gra_wynik']==$_POST['g2']) {
  13. $t_g2=$_COOKIE['t_g2']+1;}
  14. print_r($_COOKIE);
  15. }
  16. ?>


Jak to ma działać? Otoż jest dwóch graczy. Losowana jest liczba i trzeba trafić prawidłową. Jeżeli dany gracz trafi liczbę, liczona jest liczba trafień. Niestety skrypt nie zna zmiennych g1, g2 oraz nie podlicza poprawnych odpowiedzi po wciśnięciu przycisku 'Graj!'. O ciasteczkach zacząłem dzisiaj czytać i nie za bardzo wiem dlaczego tak jest ;/ Jakieś nakierowanie poproszę wink.gif

//EDIT: Chyba nie do końca warunki są poprawne..
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.