Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Formularz
Forum PHP.pl > Forum > Przedszkole
em-ba
Witam, posiadam formularz, który chciałem rozbudować. Dodałem drugi /wybór checkboxem/, a także dopisałem kolejne pola: nip, adres i kod. Od tamtej pory nie działa prawidłowo. Przede wszystkim nie dodaje mi danych do bazy pomimo, że je wpisuje dane.
Nie wiem czy przyczyną nie jest to, że są dwa formularze i pomimo, że wypełniam jeden to być może błędy wyskakują co do drugiego..
Będę wdzięczny za kążdą pomoc..
Kod
<form action="form_rej.php" method="POST">
       <fieldset>
         <legend>Wprowadz dane:</legend>
           <div>
             <label for="osobaprywatna">osoba prywatna</label>
             <input id="osobaprywatna" name="osobaprywatna" class="check" type="checkbox" onClick="showDiv('osobaprywatna')"/>&nbsp dane osoby prywatnej
               <div id="a" style="display:none;">
                 <div>
                   <div>
                     <label for="imie">imię:</label>
                     <input id="imie" name="imie" class="text" type="text" />
                   </div>
                           .
                           .
                   <div>
                     <input id="submit" name="send" class="submit" type="submit" value="dodaj" />
                   </div>
                 </div>
               </div>
           </div>
           <div>
             <label for="firma">firma</label>
             <input id="firma" name="firma" class="check" type="checkbox" onClick="showDiv('firma')"/>&nbsp dane firmy
               <div id="b" style="display:none;">
                 <div>
                   <div>
                     <label for="nazwafirmy">nazwa firmy:</label>
                     <input id="nazwafirmy" name="nazwafirmy" class="text" type="text" />
                   </div>
                           .
                           .
                   <div>
                     <input id="submit" name="send" class="submit" type="submit" value="dodaj" />
                   </div>
                 </div>
               </div>
           </div>    
  
       </fieldset>
     </form>


  1. <?php
  2. $polaczenie = @mysql_connect ('localhost', 'root', 'krasnal') or die ("nie udało sie połączyć");
  3. mysql_select_db('fi_kur') or die ("Nie mozna zlokalizowac bazy danych");
  4.  
  5. function alpha_numeric($str)
  6. {
  7. return ( ! preg_match("/^([-a-z0-9])+$/i", $str)) ? FALSE : TRUE;
  8. }
  9.  
  10. function valid_email($str)
  11. {
  12. return ( ! preg_match("/^([a-z0-9+_-]+)(.[a-z0-9+_-]+)*@([a-z0-9-]+.)+[a-z]{2,6}$/ix", $str)) ? FALSE : TRUE;
  13. }
  14.  
  15. function check_regon($regon)
  16. {
  17. // tworzenie tablicy wag
  18. $steps = array(8, 9, 2, 3, 4, 5, 6, 7);
  19.  
  20. // wycinanie zbędnych znaków
  21. $regon = str_replace('-', '', $regon);
  22. $regon = str_replace(' ', '', $regon);
  23.  
  24. if (strlen($regon) != 9) return 0;
  25.  
  26. // tworzenie sumy iloczynów
  27. for ($x = 0; $x < 8; $x++) $sum_nb += $steps[$x] * $regon[$x];
  28. $sum_m = $sum_nb % 11;
  29.  
  30. if($sum_m == 10) $sum_m = 0;
  31. if ($sum_m == $regon[8]) return 1;
  32. return 0;
  33. }
  34.  
  35. function Sprawdz_nip($str){
  36. if (strlen($str) != 10){
  37. return false;
  38. }
  39.  
  40. $arrSteps = array(6, 5, 7, 2, 3, 4, 5, 6, 7);
  41. $intSum=0;
  42.  
  43. for ($i = 0; $i < 9; $i++){
  44. $intSum += $arrSteps[$i] * $str[$i];
  45. }
  46. $int = $intSum % 11;
  47.  
  48. $intControlNr=($int == 10)?0:$int;
  49. if ($intControlNr == $str[9]){
  50. return true;
  51. }
  52. return false;
  53. }
  54.  
  55. function Sprawdz_kod($str)
  56. {
  57. return ( ! preg_match("^[0-9]{2,2}-[0-9]{3,3}", $str)) ? FALSE : TRUE;
  58. }
  59.  ;
  60.  
  61. if ($_POST['send'])
  62. {
  63. if ($_POST['imie']=='' || strlen($_POST['imie'])<3)
  64. {
  65. $errors[] = 'Musisz wypełnić pole nick - min znaków 3';
  66. }
  67. if ($_POST['nazwisko']=='' || strlen($_POST['nazwisko'])<3)
  68. {
  69. $errors[] = 'Musisz wypełnić pole nazwisko - min znaków 3';
  70. }
  71. if ($_POST['login']=='' || alpha_numeric($_POST['login'])==FALSE)
  72. {
  73. $errors[] = 'Login może zawierać jedynie liczby i litery';
  74. }
  75. if ($_POST['haslo']=='' || alpha_numeric($_POST['haslo'])==FALSE)
  76. {
  77. $errors[] = 'Hasło może zawierać jedynie liczby i litery';
  78. }
  79. if ($_POST['haslo']!=$_POST['haslo2'])
  80. {
  81. $errors[] = 'Hasła nie pasują do siebie';
  82. }
  83. if ($_POST['regon']=='' || check_regon($_POST['regon']))
  84. {
  85. $errors[] = 'Wpisany regon jest nie poprawny lub nie wypełniłeś pola';
  86. }
  87.  
  88. if (valid_email($_POST['email'])==FALSE)
  89. {
  90. $errors[] = 'Wprowadź poprawny adres email';
  91. }
  92.  
  93. Sprawdz_nip($str);
  94. if (Sprawdz_nip==true){
  95.  echo"ok!!!";
  96. }
  97. if(Sprawdz_nip==false){
  98.  echo"zly!!!";
  99. }
  100.  
  101. $login = $_POST["login"];
  102. $check = mysql_query("SELECT * FROM uzytkownicy WHERE `login`= '$login' ") or die(mysql_error());
  103. $exist = mysql_fetch_array($check);
  104. if ($exist["id"]) {
  105. $errors[] = 'Taki sam login istnieje już w bazie';
  106. }
  107. $email = $_POST["email"];
  108. $check2 = mysql_query("SELECT * FROM uzytkownicy WHERE `email`= '$email' ") or die(mysql_error());
  109. $exist2 = mysql_fetch_array($check2);
  110. if ($exist2["id"])
  111. {
  112. $errors[] = 'Taki sam email istnieje już w bazie';
  113. }
  114.  
  115. if(is_array($errors))
  116. {
  117. echo '<p class="error"><b>Formularz napotkał błędy</b></p>';
  118. while (list($key,$value) = each($errors))
  119. {
  120.  
  121. echo '<span class="error">'.$value.'</span>
  122. ';
  123. }
  124. }
  125. else {
  126. $imie = htmlspecialchars($_POST["imie"], ENT_QUOTES);
  127. $nazwisko = htmlspecialchars($_POST["nazwisko"], ENT_QUOTES);
  128. $haslo = htmlspecialchars($_POST["haslo"], ENT_QUOTES);
  129. $login = htmlspecialchars($_POST["login"], ENT_QUOTES);
  130. $email = htmlspecialchars($_POST["email"], ENT_QUOTES);
  131. $regon = htmlspecialchars($_POST["regon"], ENT_QUOTES);
  132. $nip = htmlspecialchars($_POST["nip"], ENT_QUOTES);
  133. $adres = htmlspecialchars($_POST["adres"], ENT_QUOTES);
  134. $kod = htmlspecialchars($_POST["kod"], ENT_QUOTES);
  135.  
  136. $query = "INSERT into uzytkownicy values('', '$login', md5('$haslo'), '$imie', '$nazwisko', '$email', '$regon', '$nip', '$adres', '$kod')";
  137. $wykonaj = mysql_query ($query) or die(mysql_error());
  138. echo '<div style="margin:2px; border:1px solid #ededed; background-color: #f9f9f9;">
  139.  
  140. <span style="color: red; font-weight: bold;">Dziękujemy zostałeś zarejestrowany!</span>
  141.  
  142.  
  143. Od tej chwili możesz korzystać z loginu, nie potrzebna jest żadna aktywacja.
  144.  
  145. </div>';
  146. }
  147.  
  148. }
  149. ?>
nowotny
To jest źle:
  1. <?php
  2. Sprawdz_nip($str);
  3. if (Sprawdz_nip==true){
  4.  echo"ok!!!";
  5. }
  6. if(Sprawdz_nip==false){
  7.  echo"zly!!!";
  8. }
  9. ?>


Powinno być:
  1. <?php
  2. if (Sprawdz_nip($str)==true){
  3.  echo"ok!!!";
  4. }
  5. else{
  6.  echo"zly!!!";
  7. }
  8. ?>


To:
  1. <?php
  2. if(is_array($errors))
  3. ?>

bym zamienił na:
  1. <?php
  2. if(is_array($errors) && !empty($errors))
  3. ?>


To jest jakaś dziwna konstrukcja:
  1. <?php
  2. while (list($key,$value) = each($errors))
  3. {
  4.  
  5. echo '<span class="error">'.$value.'</span>';
  6. }
  7. ?>


  1. <?php
  2. foreach($errors as $key=>$value){
  3. echo '<span class="error">'.$value.'</span>';
  4.  }
  5. ?>


Po deklaracji funkcji Sprawdz_kod($str) masz jakiś zabłąkany średnik... usuń go...
Wyechuj sobie $query dodawania do bazy...

W ogóle jakiś błąd ci pokazuje czy jak...?

BTW, zrezygnowałbym z używania takiej konstrukcji:
  1. <?php
  2. if ($exist["id"])
  3. ?>

Jeśli ci przyjdzie potem pracować z polami, które mogą być puste ten warunek zwróci false...
em-ba
dzięki, pozamieniałem tak jak napisałeś ale dalej jest tak samo, tzn. kiedy wypełnie wszystkie dane i wysyłam formularz to zwraca mi takie inf. jakbym go nie wypełnił, tzn. dokladnie coś takiego:

zly!!!Formularz napotkał błędy

Login może zawierać jedynie liczby i litery
Hasło może zawierać jedynie liczby i litery
Wpisany regon jest nie poprawny lub nie wypełniłeś pola
Wprowadź poprawny adres email
nowotny
Przed if ($_POST['send']) wstaw sobie:
  1. <?php
  2. print_r($_POST);
  3. ?>

po czym wypełnij formularz jakimiś lipnymi danymi, wyślij i wklej tutaj co otrzymałeś...
em-ba
Zwraca mi taki wynik:

Array ( [osobaprywatna] => on [imie] => sdfsa [nazwisko] => sdfsd [haslo] => [haslo2] => [email] => [regon] => [nip] => [adres] => szana [kod] => 10987 [send] => dodaj [nazwafirmy] => ) zly!!!Formularz napotkał błędy

Login może zawierać jedynie liczby i litery
Hasło może zawierać jedynie liczby i litery
Wpisany regon jest nie poprawny lub nie wypełniłeś pola
Wprowadź poprawny adres email
specialplan
W kodzie formularza nie widze pol haslo, login, email, regon...
nowotny
No właśnie... jak nie wypełniasz prawidłowo pól formularza to nic dziwnego że ci nie działa... :/
Wypełnij poprawnie a potem pokaż jeszcze raz co ci napisało...
em-ba
pola są i wypełniam je prawidowo, na forum wkleiłem tylko konstrukcję pierwszego pola i ostatniego, /żeby każdy mógł zobaczyć jak jest zrobione/ ..pozostałe wygladają tak samo, tylko nie mogłem wrzucić na forum bo mi wywalało błąd, że post jest za długi tongue.gif

wypełniam na bank prawidłowo biggrin.gif
tylko tak jak napisałem w temacie - moze przyczyną jest to ze jak są dwa formularze i w obydwu komórki są tak samo ponazywane to moze to sie "gryzie"
specialplan
Hmm... Dane "nie docieraja" do zmiennej $_POST - pokaz reszte tego formularza:))
em-ba
Kod
<form action="form_rej.php" method="POST">
    <fieldset>
      <legend>Wprowadz dane:</legend>
        <div>
          <label for="osobaprywatna">osoba prywatna</label>
          <input id="osobaprywatna" name="osobaprywatna" class="check" type="checkbox" onClick="showDiv('osobaprywatna')"/>&nbsp dane osoby prywatnej
            <div id="a" style="display:none;">
              <div>
                <div>
                  <label for="imie">imię:</label>
                  <input id="imie" name="imie" class="text" type="text" />
                </div>
                <div>
                  <label for="nazwisko">nazwisko:</label>
                  <input id="nazwisko" name="nazwisko" class="text" type="text" />
                </div>
                <div>
                  <label for="haslo">hasło:</label>
                  <input id="haslo" name="haslo" class="password" type="password" />
                </div>
                <div>
                  <label for="haslo">powtórz hasło:</label>
                  <input id="haslo" name="haslo2" class="password" type="password" />
                </div>
                <div>
                  <label for="email">e-mail:</label>
                  <input id="email" name="email" class="text" type="text" />
                </div>
                <div>
                  <label for="regon">regon:</label>
                  <input id="regon" name="regon" class="text" type="text" />
                </div>
                <div>
                  <label for="nip">nip:</label>
                  <input id="nip" name="nip" class="text" type="text" />
                </div>
                <div>
                  <label for="adres">adres:</label>
                  <input id="adres" name="adres" class="text" type="text" />
                </div>
                <div>
                  <label for="kod">kod pocztowy:</label>
                  <input id="kod" name="kod" class="text" type="text" />
                </div>


i dalszy ciąg:
Kod
<div>
                  <input id="submit" name="send" class="submit" type="submit" value="dodaj" />
                </div>
              </div>
            </div>
        </div>
        <div>
          <label for="firma">firma</label>
          <input id="firma" name="firma" class="check" type="checkbox" onClick="showDiv('firma')"/>&nbsp dane firmy
            <div id="b" style="display:none;">
              <div>
                <div>
                  <label for="nazwafirmy">nazwa firmy:</label>
                  <input id="nazwafirmy" name="nazwafirmy" class="text" type="text" />
                </div>
                <div>
                  <label for="haslo">hasło:</label>
                  <input id="haslo" name="haslo" class="password" type="password" />
                </div>
                <div>
                  <label for="haslo">powtórz hasło:</label>
                  <input id="haslo" name="haslo2" class="password" type="password" />
                </div>
                <div>
                  <label for="email">e-mail:</label>
                  <input id="email" name="email" class="text" type="text" />
                </div>
                <div>
                  <label for="regon">regon:</label>
                  <input id="regon" name="regon" class="text" type="text" />
                </div>
                <div>
                  <label for="nip">nip:</label>
                  <input id="nip" name="nip" class="text" type="text" />
                </div>
                <div>
                  <input id="submit" name="send" class="submit" type="submit" value="dodaj" />
                </div>
              </div>
            </div>
        </div>    

    </fieldset>
  </form>
specialplan
Jezeli nadales takie same ID i nazwy w obu formularzach, to nastepuje kolizja nazw i skrypt glupieje. Popraw to i powinno smigac.
em-ba
i to jest całość, dopoki miałem dane /jako jeden formularz/ ..imie, nazwisko, login, haslo, haslo2, regon ..to było ok

ok - juz sprawdzam..

ale jezeli pozmieniam nazwy pol w drugim formularzu to bede musiał także zmienić czy dodać pola w bazie danych.. ?

mnie chodzi o to zeby bez wzgledu na to czy to jest firma, czy os.prw to żeby w rekordzie były dodawane odpowiednie dane...
nowotny
No bo nie masz dwóch formularzy, tylko jeden... albo zrób to co radzi specialplan albo obejmij znacznikiem <form> drugi kawałek...

Cytat(em-ba @ 6.02.2008, 16:00:24 ) *
ale jezeli pozmieniam nazwy pol w drugim formularzu to bede musiał także zmienić czy dodać pola w bazie danych.. ?

Nie... ale musisz wtedy sprawdzać dwa zestawy danych... dlatego lepiej zamiast zmieniania nazw pól, dodaj sobie znacznik <form> j.w....
specialplan
Wlasnie troche mylnie nazwalem to za toba "drugim formularzem"...
em-ba
tak zrobiłem..

..i teraz mi wyrzuca:

Array ( [osobaprywatna] => on [imie] => iza [nazwisko] => sadas [login] => koaslk [haslo] => gtyu [haslo2] => gtyu [email] => gtyu@wp.pl [regon] => 123589043 [nip] => 4672198763 [adres] => szyba [kod] => 78903 [send] => dodaj ) zly!!!Column count doesn't match value count at row 1

tak, tak, z tym <form> rozumiem tylko to też sprawdzałem i nie działo wiec wtedy wykaskowałem biggrin.gif

..ale już dodałem smile.gif
specialplan
Jaka jest struktura tabeli SQL?
nowotny
  1. <?php
  2. INSERT into uzytkownicy values('',
  3. ?>

Zmień sobie te ciapki na NULL...

Cytat(em-ba @ 6.02.2008, 16:10:08 ) *
Column count doesn't match value count at row 1

Czyli podałeś więcej/mniej wartości w zapytaniu niż tabela ma kolumn... moim zdaniem lepiej zawsze robić tak:
  1. "INSERT INTO tabela ( 'nazwa_kolumny_x',...) VALUES ('wartosc_do_wpisania_do_kolumny_x',...)"

Tym sposobem nie musisz podawać wszystkich wartości jak masz jakieś puste...
em-ba
struktura
"uzytkownicy"
id (int11) unsigned auto_increment
login (varchar20)
haslo (varchar32)
imie (varchar20)
nazwisko (varchar50)
email (varchar50)
regon (varchar20)
nip (varchar20)
adres (varchar30)
kod (varchar10)

"ciapek" winksmiley.jpg nie zmieniłem, bo parse error wyrzuca
specialplan
Zrob jak poradzil kolega dwa posty wyzej. Zamiast '' jako wartosci ID daj NULL
nowotny
Cytat(em-ba @ 6.02.2008, 16:28:19 ) *
"ciapek" winksmiley.jpg nie zmieniłem, bo parse error wyrzuca

No to coś źle zmieniłeś... tongue.gif
Tak ma być:
  1. INSERT INTO uzytkownicy VALUES(NULL, '$login',


W ogóle to zapytanie jakieś koślawe... zrób porządnie...
  1. <?php
  2. $query = "INSERT INTO `uzytkownicy` (`login`,`haslo`,`imie`,`nazwisko`,`email`,`regon`,`nip`,`adres`,`kod`) VALUES('".$login."', md5('".$haslo."'), '".$imie."', '".$nazwisko."', '".$email."', '".$regon."', '".$nip."', '".$adres."', '".$kod."')";
  3. ?>
em-ba
czy chodzi o coś takiego:?
Kod
$query = "INSERT into uzytkownicy ('', 'login', md5('haslo'), 'imie', 'nazwisko', 'email', 'regon', 'nip') values('$login', md5('$haslo'), '$imie', '$nazwisko', '$email', '$regon', '$nip')";


..bo wywala mi

Array ( [osobaprywatna] => on [imie] => sdaf [nazwisko] => sdafs [login] => sadfsd [haslo] => asd [haslo2] => asd [email] => sdf@wp.ok [regon] => 109238456 [nip] => 4240987438 [adres] => sdad [kod] => 32432 [send] => dodaj ) zly!!!Something is wrong in your syntax obok ''login', md5('haslo'), 'imie', 'nazwisko', 'email', 'regon', 'ni' w linii 1
nowotny
Cytat(em-ba @ 6.02.2008, 16:46:21 ) *
czy chodzi o coś takiego:?

Nie... podałem ci co i jak... poczytaj moje wcześniejsze posty...
em-ba
ok, nie zauważyłem - już działa - dodaje do bazy ale wywala mi coś takiego:

Array ( [osobaprywatna] => on [imie] => sdfg [nazwisko] => dfgsdfg [login] => gsdfg [haslo] => lolo [haslo2] => lolo [email] => loloasd@wp.pl [regon] => 324432235 [nip] => 3248329108 [adres] => sd [kod] => 23456 [send] => dodaj ) zly!!!
Warning: Invalid argument supplied for foreach() in c:\usr\krasnal\www\eb\form_rej.php on line 278

Dziękujemy zostałeś zarejestrowany!

Od tej chwili możesz korzystać z loginu, nie potrzebna jest żadna aktywacja.


..z tym, ze w 278 mam podany ten kod

foreach($errors as $key=>$value){
echo '<span class="error">'.$imie.'</span>';
'<span class="error">'.$nazwisko.'</span>';

..czy każdej zmiennej mam to przypisać '<span class="error">'.$xxxxxxxx.'</span>';??
phpion
$errors nie jest tablicą.
nowotny
Nie... pokaż jeszcze raz ten cały kod po przeróbkach...
specialplan
Pewnie dlatego, ze tablica errors nie istnieje, jesli wszystko konczy sie powodzeniem.
Dodaj warunek, np taki:

  1. <?php
  2. if (!empty($errors) && is_array($errors))
  3. {
  4. //Twoja petla
  5. }
  6. ?>
em-ba
ostatecznie wyszło cuś takiego biggrin.gif :
  1. <?php
  2. $polaczenie = @mysql_connect ('localhost', 'root', 'krasnal') or die ("nie udało sie połączyć");
  3. mysql_select_db('fi_kur') or die ("Nie mozna zlokalizowac bazy danych");
  4.  
  5. function alpha_numeric($str)
  6. {
  7. return ( ! preg_match("/^([-a-z0-9])+$/i", $str)) ? FALSE : TRUE;
  8. }
  9.  
  10. function valid_email($str)
  11. {
  12. return ( ! preg_match("/^([a-z0-9+_-]+)(.[a-z0-9+_-]+)*@([a-z0-9-]+.)+[a-z]{2,6}$/ix", $str)) ? FALSE : TRUE;
  13. }
  14.  
  15. function check_regon($regon)
  16. {
  17. // tworzenie tablicy wag
  18. $steps = array(8, 9, 2, 3, 4, 5, 6, 7);
  19.  
  20. // wycinanie zbędnych znaków
  21. $regon = str_replace('-', '', $regon);
  22. $regon = str_replace(' ', '', $regon);
  23.  
  24. if (strlen($regon) != 9) return 0;
  25.  
  26. // tworzenie sumy iloczynów
  27. for ($x = 0; $x < 8; $x++) $sum_nb += $steps[$x] * $regon[$x];
  28. $sum_m = $sum_nb % 11;
  29.  
  30. if($sum_m == 10) $sum_m = 0;
  31. if ($sum_m == $regon[8]) return 1;
  32. return 0;
  33. }
  34.  
  35. function Sprawdz_nip($str){
  36. if (strlen($str) != 10){
  37. return false;
  38. }
  39.  
  40. $arrSteps = array(6, 5, 7, 2, 3, 4, 5, 6, 7);
  41. $intSum=0;
  42.  
  43. for ($i = 0; $i < 9; $i++){
  44. $intSum += $arrSteps[$i] * $str[$i];
  45. }
  46. $int = $intSum % 11;
  47.  
  48. $intControlNr=($int == 10)?0:$int;
  49. if ($intControlNr == $str[9]){
  50. return true;
  51. }
  52. return false;
  53. }
  54.  
  55. function Sprawdz_kod($str)
  56. {
  57. return ( ! preg_match('^[0-9]{2,2}-[0-9]{3,3}$', $str)) ? FALSE : TRUE;
  58. }
  59.  
  60. print_r($_POST);
  61. if ($_POST['send'])
  62. {
  63. if ($_POST['imie']=='' || strlen($_POST['imie'])<3)
  64. {
  65. $errors[] = 'Musisz wypełnić pole nick - min znaków 3';
  66. }
  67. if ($_POST['nazwisko']=='' || strlen($_POST['nazwisko'])<3)
  68. {
  69. $errors[] = 'Musisz wypełnić pole nazwisko - min znaków 3';
  70. }
  71. if ($_POST['login']=='' || alpha_numeric($_POST['login'])==FALSE)
  72. {
  73. $errors[] = 'Login może zawierać jedynie liczby i litery';
  74. }
  75. if ($_POST['haslo']=='' || alpha_numeric($_POST['haslo'])==FALSE)
  76. {
  77. $errors[] = 'Hasło może zawierać jedynie liczby i litery';
  78. }
  79. if ($_POST['haslo']!=$_POST['haslo2'])
  80. {
  81. $errors[] = 'Hasła nie pasują do siebie';
  82. }
  83. if ($_POST['regon']=='' || check_regon($_POST['regon']))
  84. {
  85. $errors[] = 'Wpisany regon jest nie poprawny lub nie wypełniłeś pola';
  86. }
  87.  
  88. if (valid_email($_POST['email'])==FALSE)
  89. {
  90. $errors[] = 'Wprowadź poprawny adres email';
  91. }
  92.  
  93. if (Sprawdz_nip($str)==true){
  94.  echo"ok!!!";
  95. }
  96. else{
  97.  echo"zly!!!";
  98. }
  99.  
  100. $login = $_POST["login"];
  101. $check = mysql_query("SELECT * FROM uzytkownicy WHERE `login`= '$login' ") or die(mysql_error());
  102. $exist = mysql_fetch_array($check);
  103. if ($exist["id"]) {
  104. $errors[] = 'Taki sam login istnieje już w bazie';
  105. }
  106. $email = $_POST["email"];
  107. $check2 = mysql_query("SELECT * FROM uzytkownicy WHERE `email`= '$email' ") or die(mysql_error());
  108. $exist2 = mysql_fetch_array($check2);
  109. if ($exist2["id"])
  110. {
  111. $errors[] = 'Taki sam email istnieje już w bazie';
  112. }
  113.  
  114. if(is_array($errors) && !empty($errors))
  115. {
  116. echo '<p class="error"><b>Formularz napotkał błędy</b></p>';
  117. while (list($key,$value) = each($errors))
  118. {
  119.  
  120. echo '<span class="error">'.$value.'</span><br />';
  121. }
  122. }
  123. else {
  124. $imie = htmlspecialchars($_POST["imie"], ENT_QUOTES);
  125. $nazwisko = htmlspecialchars($_POST["nazwisko"], ENT_QUOTES);
  126. $haslo = htmlspecialchars($_POST["haslo"], ENT_QUOTES);
  127. $login = htmlspecialchars($_POST["login"], ENT_QUOTES);
  128. $email = htmlspecialchars($_POST["email"], ENT_QUOTES);
  129. $regon = htmlspecialchars($_POST["regon"], ENT_QUOTES);
  130. $nip = htmlspecialchars($_POST["nip"], ENT_QUOTES);
  131. $adres = htmlspecialchars($_POST["adres"], ENT_QUOTES);
  132. $kod = htmlspecialchars($_POST["kod"], ENT_QUOTES);
  133.  
  134. $query = "INSERT INTO `uzytkownicy` (`login`,`haslo`,`imie`,`nazwisko`,`email`,`regon`,`nip`,`adres`,`kod`) VALUES('".$login."', md5('".$haslo."'), '".$imie."', '".$nazwisko."', '".$email."', '".$regon."', '".$nip."', '".$adres."', '".$kod."')";
  135. $wykonaj = mysql_query ($query) or die(mysql_error());
  136.  
  137. foreach($errors as $key=>$value){
  138. echo '<span class="error">'.$imie.'</span>';
  139.  '<span class="error">'.$nazwisko.'</span>';
  140.  }
  141. echo '<div style="margin:2px; border:1px solid #ededed; background-color: #f9f9f9;"><br>
  142. <span style="color: red; font-weight: bold;">Dziękujemy zostałeś zarejestrowany!</span><br><br>
  143. Od tej chwili możesz korzystać z loginu, nie potrzebna jest żadna aktywacja.<br><br></div>';
  144. }
  145.  
  146. }
  147. ?>


zmieniłem warunek i dalej to samo..
nowotny
A po co to tutaj:
  1. <?php
  2. foreach($errors as $key=>$value){
  3. echo '<span class="error">'.$imie.'</span>';
  4.  '<span class="error">'.$nazwisko.'</span>';
  5.  }
  6. ?>


To się nigdy nie wykona bo warunek:
  1. <?php
  2. if(is_array($errors) && !empty($errors))
  3. {
  4. ...
  5. }
  6. else {
  7. ?>

już to dawno załatwił...
specialplan
Nie zauwazylem go wczesniej.
em-ba
teraz jest chyba ok - ale jeszcze dokladnie sprawdze
działać działa - dodaje ładnie, tylko po wysłaniu danych do formularza wyrzuca mi napis
zły!!!

nie wiem czy ten kod jest na pewno dobry?
  1. <?php
  2. if (Sprawdz_nip($str)==true){
  3.  echo"ok!!!";
  4. }
  5. else{
  6.  echo"zly!!!";
  7. }
  8. ?>


..na poczatku postu zmieniłem na taki, gdyż ktoś mi tak poradził.. nie wiem czy nie zamienić na ten co miałem poprzednio..
a poprzednio był taki:

  1. <?php
  2. Sprawdz_nip($str);
  3. if (Sprawdz_nip==true){
  4.  echo"ok!!!";
  5. }
  6. if(Sprawdz_nip==false){
  7.  echo"zly!!!";
  8. }
  9. ?>
specialplan
A czy takie cos robi jakas roznice? Pytam, bo nie jestem pewny:P

  1. <?php
  2. if (Sprawdz_nip($str)===true)
  3. {
  4.  echo "ok!!!";
  5. }
  6. else
  7. {
  8.  echo "zly!!!";
  9. }
  10. ?>
em-ba
smile.gif działa jeden i drugi to pewnie lepszy jest ten, który podał mi nonwotny..

tylko nie wiem dlaczego wyrzuca mi inf: zły!!! podczas gdy jest wpisany prawidłowo i zostaje dodany do bazy biggrin.gif
specialplan
Z prostego powodu - niezaleznie od tego, co wpiszesz w to pole, nie zostanie ono poddane walidacji, tylko wyswietli string o wartosci 'ok!!!' albo 'zly!!!' dlatego, ze nie nalezy to do array errors[], ktora jest podstawa walidacji i ktora umieszczona w warunku "decyduje" czy dane maja zostac umieszczone w bazie. Co wiecej - zmienna $str, ktora podajesz jako argument funkcji Sprawdz_nip jest pusta. Podaj tam wartosc z $_POST[]

Czyli:

  1. <?php
  2. if (Sprawdz_nip($_POST['nip']) === false)
  3. {
  4.  errors[] = 'NIP jest nieprawidlowy';
  5. }
  6. ?>
em-ba
dodałem ten kod i nie działa

zmieniłem error na $error biggrin.gif

..nie dodaje do bazy i wyświetla inf:
Formularz napotkał błędy

NIP jest nieprawidlowy

..probowałem zmieniać też ten znak równości z === na == //ale tez nic..
specialplan
Moj blad z pospiechu. Pewnie funkcja jest wadliwa. Jesli podajesz prawidlowy NIP, a wyswietla, ze jest nieprawidlowy - przyjrzyj sie funkcji. Ten warunek jest dobrze napisany:) Nie mam czasu sie niestety jej przyjrzec, bo mi sie konczy dzien pracy winksmiley.jpg
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.