Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Formularz
Forum PHP.pl > Forum > Przedszkole
kajzur
Witam, może dlatego że późno, nie mogę dojść do tego, co tu jest źle, jesli po kliknięciu na przycisk formularza warunek powinien się spełnić, to powinienem dostac pusta strone, w dostaje cały czas widok formularza..

  1. <?php
  2. if(!isset($_POST['test']))
  3.  {
  4.  echo <<<FORMA
  5.   Rejestracja w serwisie oznacza akceptację regulaminu.
  6.   
  7.   <form action="" method="post" enctype="text/plain" onsubmit="if (sprawdz(this)) return true; return false">
  8.  
  9.   <input type="hidden" value="" name="test" />
  10.   <table>
  11. <tr>
  12.     <td>Login: </td>
  13.     
  14.     <td><input class = "input" type="text" align="CENTER" name = "login" id="label"/><br /></td>
  15.     </div>
  16. </tr>
  17. <tr>
  18.     <td>Hasło:</td>
  19.     <td> <input class = "input"  type="password" align="CENTER" name="haslo" /><br /></td>
  20. </tr>
  21. <tr>
  22.     <td>Wprowadź ponownie hasło: </td>
  23.     <td><input class = "input"  type="password" align="CENTER" name="haslo2" /><br /></td>
  24. </tr>
  25. <tr>
  26.     <td>Adres email:</td>
  27.     <td> <input class = "input"  type="text" align="CENTER" name="mail" /><br /></td>
  28. </tr>
  29. <tr>
  30.     <td>Twoje imię:</td>
  31.     <td> <input class = "input"  type="text" align="CENTER" name="imie" /><br /></td>
  32. </tr>
  33. <tr>
  34.     <td>Twoję nazwisko: </td>
  35.     <td><input class = "input"  type="text" align="CENTER" name="nazwisko" /><br /></td>
  36. </tr>
  37. </table>
  38.  
  39.  
  40. <input type="submit" class = "input"  value="Zarejestruj" />
  41.  
  42. </form>Konto trzeba aktywować, proszę więc wpisywać poprawne dane.
  43. FORMA;
  44. }
  45. else
  46. {
  47.    
  48.    extract($_POST, EXTR_PREFIX_SAME, "lol");
  49.    if(empty($login) or empty($haslo) or empty($haslo2) or empty($mail) or empty($nazwisko))
  50.    echo'Prawdopodobnie masz wyłączona obsługę JS (Java Script)! Proszę ją włączyc, aby serwis mogł pracowac poprawnie. <br> Proces rejestracji: <b>Proszę, podaj wszystkie dane.</b>';
  51.    
  52.    
  53. }
  54. ?>
tomm
Byc może sprawdz(this) zwraca false, tym samym nie istnieje $_POST['test']
porady-it.pl
Jeśli możesz dorzuć skrypt sprawdzający aby można w pełni przetestować formularz. Czy strona się przeładowuje ?
kajzur
Stronka się przeładowywuje, hmm, co masz na myśli, mówiąć skrypt sprawdzający? Hm? O, a reszta kodu to czysty html, i js.. O no i css. I pojedyńcze egzemplarze klas..

Kod
<script type="text/javascript">
// <![CDATA[
function sprawdz(formularz)
{
    for (i = 0; i < formularz.length; i++)
    {
        var pole = formularz.elements[i];
        if (!pole.disabled && !pole.readonly && (pole.type == "text" || pole.type == "password" || pole.type == "textarea") && pole.value == "")
        {
            alert("Proszę uzupełnić wszystkie wymagane pola.\nZespół Web-Trade.pl");
            return false;
        }
    }
    return true;
}
// ]]>
</script>


Dorzucam sprawdz()

Może ma ktoś pomysł co tu jest źle ;>
v1t4n
Dorzuć sobie value="1" w tym hiddenie. Mi w ten sposób działa.
kajzur
Kod
<script type="text/javascript">
// <![CDATA[
function sprawdz(formularz)
{
    for (i = 0; i < formularz.length; i++)
    {
        var pole = formularz.elements[i];
        if (!pole.disabled && !pole.readonly && (pole.type == "text" || pole.type == "password" || pole.type == "textarea") && pole.value == "")
        {
            alert("Proszę uzupełnić wszystkie wymagane pola.\nZespół Web-Trade.pl");
            return false;
        }
    }
    return true;
}
// ]]>
</script>
  <?
    if($_SESSION["USER_AUTH"] == true)
  header('Location: index.php');
  
if(!isset($_POST['test']))
  {
  

  
  echo '
  Rejestracja w serwisie oznacza akceptację regulaminu.
  
  <form action="" method="post" enctype="text/plain" onsubmit="if (sprawdz(this)) return true; return false">

  <input type="hidden" value="1" name="test" />
  <table>
<tr>
    <td>Login: </td>
    
    <td><input class = "input" type="text" align="CENTER" name = "login" id="label"/><br /></td>
    </div>
</tr>
<tr>
    <td>Hasło:</td>
    <td> <input class = "input"  type="password" align="CENTER" name="haslo" /><br /></td>
</tr>
<tr>
    <td>Wprowadź ponownie hasło: </td>
    <td><input class = "input"  type="password" align="CENTER" name="haslo2" /><br /></td>
</tr>
<tr>
    <td>Adres email:</td>
    <td> <input class = "input"  type="text" align="CENTER" name="mail" /><br /></td>
</tr>
<tr>
    <td>Twoje imię:</td>
    <td> <input class = "input"  type="text" align="CENTER" name="imie" /><br /></td>
</tr>
<tr>
    <td>Twoję nazwisko: </td>
    <td><input class = "input"  type="text" align="CENTER" name="nazwisko" /><br /></td>
</tr>
</table>


<input type="submit" class = "input"  value="Zarejestruj" />

</form>Konto trzeba aktywować, proszę więc wpisywać poprawne dane.
';
}
else
{
    echo $_POST['login'];
    extract($_POST, EXTR_PREFIX_SAME, "lol");
    if(empty($login) or empty($haslo) or empty($haslo2) or empty($mail) or empty($nazwisko))
    echo'Prawdopodobnie masz wyłączona obsługę JS (Java Script)! Proszę ją włączyc, aby serwis mogł pracowac poprawnie. <br> Proces rejestracji: <b>Proszę, podaj wszystkie dane.</b>';
    
    
}
?>


Nadal nie działa O.o
sowiq
Kod
enctype="text/plain"
Wywal to gówno i będzie działało.
kajzur
Stary, działa.. Ale co to za gówno? Tzn wiem co to, ale dlaczego to tak wpływało? Hm?
sowiq
Tutaj trochę o tym piszą: http://www.kurshtml.boo.pl/html/forma_odsz...formularze.html Niby piszą, że to przydatna rzecz, a jak się okazuje - niekoniecznie smile.gif

Tu jest ładnie opisane: http://forums.hexus.net/software-web-devel...xplain-why.html

Porównaj: smile.gif
http://forum.php.pl/index.php?showtopic=93...mp;#entry467699
http://forum.php.pl/index.php?showtopic=82...mp;#entry420380
kajzur
Dzięki smile.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.