Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Niechciane wysyłanie formularza
Forum PHP.pl > Forum > Po stronie przeglądarki
robal94
Witam! Stworzyłem formularz, który jest sprawdzany. Jeśli jest dobrze wypełniony to powinien się wysłać po naciśnięcu enter lub zarejestruj, a jeśli źle to nie powinien się wysyłać a się wysyła.

Oto kod js
  1. <script type="text/javascript">
  2. function mistrzostwa(){
  3. var czy = document.forms['nowy'].elements['czy'].checked;
  4. var el;
  5. var el2;
  6. el2 = document.getElementById('textdodaj');
  7. el = document.getElementById('mistrzostwa');
  8.  
  9. if(czy){
  10.  
  11. el.innerHTML='<input type="text" name="miejsce" css="rejestrinput" /><br><input type="text" name="punkty" css="rejestrinput" /><br><input type="text" name="ranking" css="rejestrinput" /><br>';
  12. el2.innerHTML='<br>Najlepsza pozycja:<br>Ilość punktów:<br>Ranking światowy:<br>';
  13. }
  14.  
  15. else{
  16.  
  17. el.innerHTML = '';
  18. el2.innerHTML = '';
  19. }
  20.  
  21.  
  22. }z
  23. function funkcja(){
  24. var error=true;
  25. var wyslij;
  26. var haslo1 = document.forms['nowy'].elements['haslo'].value;
  27. var haslo2 = document.forms['nowy'].elements['haslo2'].value;
  28. var formularz = document.forms['nowy'].elements['login'].value;
  29. var regulamin = document.forms['nowy'].elements['regulamin'].checked;
  30. var ajaxRequest;
  31.  
  32. try{
  33.  
  34. ajaxRequest = new XMLHttpRequest();
  35. } catch (e){
  36.  
  37. try{
  38. ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
  39. } catch (e) {
  40. try{
  41. ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
  42. } catch (e){
  43.  
  44. alert("Twoja ptzeglądarka nie obsługuje AJAX'a!");
  45. return false;
  46. }
  47. }
  48. }
  49.  
  50. ajaxRequest.onreadystatechange = function(){
  51. if(ajaxRequest.readyState == 4){
  52. var zmienna = ajaxRequest.responseText;
  53. if(zmienna == 1){
  54. var el;
  55. el = document.getElementById('zle');
  56. el.innerHTML = 'Nazwa urzytkownika jest już zajęta!';
  57.  
  58. }
  59. else{
  60. if(haslo1==haslo2){
  61. if(regulamin){
  62. var el;
  63. el = document.getElementById('zle');
  64. el.innerHTML = '';
  65. el = document.getElementById('zle1');
  66. el.innerHTML = '';
  67. el = document.getElementById('zle2');
  68. el.innerHTML="" ;
  69. error=false;
  70. }
  71. else{
  72. var el = document.getElementById('zle2');
  73. el.innerHTML="Musisz zaakceptować regulamin!"
  74. }
  75. }
  76. else{
  77. el = document.getElementById('zle1');
  78. el.innerHTML = 'Podane hasła się różnią!';
  79. document.forms['nowy'].elements['login'].disabled="disabled";
  80. }
  81. }
  82.  
  83. }
  84. else{
  85. }
  86. if(error){
  87. return false;
  88. }
  89. if(!error){
  90. return true;
  91. }
  92. }
  93. ajaxRequest.open("GET", 'mysql_uzytkownik.php?login='+formularz+'', error);
  94. ajaxRequest.send(null);
  95.  
  96. }
  97. </SCRIPT>


a oto formularza
  1. <form id="nowy" css="nowyurzyt" method="post" action="koniecrej.php" onsubmit="return funkcja();">
  2. <input type="text" name="login" css="rejestrinput" /><b id="zle" css="zle"></b><br>
  3. <input type="password" name="haslo" css="rejestrinput" /><b id="zle1" css="zle"></b><br>
  4. <input type="password" name="haslo2" css="rejestrinput" /><br>
  5. <input type="text" name="mail" css="rejestrinput" /><br>
  6. <input type="text" name="imie" css="rejestrinput" /><br>
  7. <input type="text" name="nazwisko" css="rejestrinput" /><br>
  8. <input type="text" name="gg" css="rejestrinput" /><br><br>
  9. <input type="checkbox" name="mailczy" value="1" css="rejestrinput" /><br><br>
  10. <input type="checkbox" name="czy" value="1" onclick="mistrzostwa();" css="rejestrinput" /><br><br>
  11. <div id="mistrzostwa"></div>
  12. <input type="checkbox" name="regulamin" value="1" css="rejestrinput" /><b id="zle2" css="zle"></b><br><br><br>
  13. <button type="sumbit" name="button">Zarejestruj</button>
  14.  
  15.  
  16.  
  17. </form>


Prosze o pomoc. Męczę się z tym od wczoraj dostal.gif

Zmieniłem kod ale i tak nie działa. Wykonałem już ok 100 różnych kombinacji. Oto teraźniejszy kod
  1. <?session_start();
  2. ob_start();
  3. $ilpoczta=0;
  4. $login=$_SESSION['login'];
  5. $zamiana = array('ą', 'Ą', 'ć', 'Ć', 'ł', 'Ł', 'ó', 'Ó', 'ś', 'Ś', 'ę', 'Ę', 'ń', 'Ń', 'ż', 'Ż', 'ź', 'Ź', 'ˆ' );
  6. $cenzura = array('^a^', '^A^', '^c^', '^C^', '^l^', '^L^', '^o^',' ^O^', '^s^', '^S^', '^e^', '^E^', '^n^', '^N^','^z^', '^Z^','^x^','^X^', '^*c*^');
  7. $tytul =str_replace( $cenzura, $zamiana, $tytul );
  8. $klucze =str_replace( $cenzura, $zamiana, $klucze );
  9. $opis =str_replace( $cenzura, $zamiana, $opis );
  10. $name='index';
  11. mysql_connect('localhost', 'epamiec_robal94', 'logika94');
  12. mysql_select_db('epamiec_epamiec');
  13. $zapytanie=mysql_query("select * FROM klucze WHERE name='$name'");
  14. while($row = mysql_fetch_array($zapytanie)){
  15. $opis= str_replace( $cenzura, $zamiana, $row['opis']);
  16. $klucze= str_replace( $cenzura, $zamiana, $row['klucze']);
  17. $tytul = str_replace( $cenzura, $zamiana, $row['tytul']);
  18. $tresc = str_replace( $cenzura, $zamiana, $row['tresc']);
  19. }
  20. $cz1 = fread(fopen("index1.php", "r"), filesize("index1.php"));
  21. $cz2 = fread(fopen("index2.php", "r"), filesize("index2.php"));
  22. $cz3 = fread(fopen("index3.php", "r"), filesize("index3.php"));
  23. $log1 = fread(fopen("log1.php", "r"), filesize("log1.php"));
  24. $log2 = fread(fopen("log2.php", "r"), filesize("log2.php"));
  25. $poczta=mysql_query("select status From poczta Where adresat='$login'");
  26. while($row = mysql_fetch_array($poczta)){
  27.  
  28. if($row['status'] == 1){
  29. $ilpoczta++;
  30. }
  31.  
  32. }
  33.  
  34.  
  35. ?>
  36. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//PL">
  37. <HEAD>
  38. <title><?echo $tytul;?></title>
  39. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
  40. <meta name="Description" content="<?echo $opis?>"/>
  41. <meta name="Keywords" content="<?echo $klucze;?>"/>
  42. <meta http-equiv="Content-Language" content="pl" />
  43. <meta name="Author" content="Tobiasz Boral"/>
  44. <meta name="Robots" content="all"/>
  45. <link rel="stylesheet" href="style.css" type="text/css"/>
  46. <link rel="shortcut icon" href="gif/epamiec.ico" type="image/x-icon"/>
  47. <script type="text/javascript" src="moduly.js"></SCRIPT>
  48. <script type="text/javascript">
  49. function mistrzostwa(){
  50. var czy = document.forms['nowy'].elements['czy'].checked;
  51. var el;
  52. var el2;
  53. el2 = document.getElementById('textdodaj');
  54. el = document.getElementById('mistrzostwa');
  55.  
  56. if(czy){
  57.  
  58. el.innerHTML='<input type="text" name="miejsce" css="rejestrinput" /><br><input type="text" name="punkty" css="rejestrinput" /><br><input type="text" name="ranking" css="rejestrinput" /><br>';
  59. el2.innerHTML='<br>Najlepsza pozycja:<br>Ilość punktów:<br>Ranking światowy:<br>';
  60. }
  61.  
  62. else{
  63.  
  64. el.innerHTML = '';
  65. el2.innerHTML = '';
  66. }
  67.  
  68.  
  69. }
  70. function funkcja(){
  71. dobre = false;
  72. var wyslij;
  73. var haslo1 = document.forms['nowy'].elements['haslo'].value;
  74. var haslo2 = document.forms['nowy'].elements['haslo2'].value;
  75. var formularz = document.forms['nowy'].elements['login'].value;
  76. var regulamin = document.forms['nowy'].elements['regulamin'].checked;
  77. var ajaxRequest;
  78.  
  79. try{
  80.  
  81. ajaxRequest = new XMLHttpRequest();
  82. } catch (e){
  83.  
  84. try{
  85. ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
  86. } catch (e) {
  87. try{
  88. ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
  89. } catch (e){
  90.  
  91. alert("Twoja ptzeglądarka nie obsługuje AJAX'a!");
  92. return false;
  93. }
  94. }
  95. }
  96.  
  97. ajaxRequest.onreadystatechange = function(){
  98. if(ajaxRequest.readyState == 4){
  99. zmienna = ajaxRequest.responseText;
  100. return zmienna;
  101.  
  102. }
  103. }
  104. ajaxRequest.open("GET", 'mysql_uzytkownik.php?login='+formularz+'', true);
  105. ajaxRequest.send(null);
  106.  
  107. if(zmienna == 1){
  108. var el;
  109. el = document.getElementById('zle');
  110. el.innerHTML = 'Nazwa urzytkownika jest już zajęta!';
  111. dobre=false;
  112. }
  113. else{
  114. if(haslo1==haslo2){
  115. if(regulamin){
  116. var el;
  117. el = document.getElementById('zle');
  118. el.innerHTML = '';
  119. el = document.getElementById('zle1');
  120. el.innerHTML = '';
  121. el = document.getElementById('zle2');
  122. el.innerHTML="" ;
  123. dobre=true;
  124. }
  125. else{
  126. var el = document.getElementById('zle2');
  127. el.innerHTML="Musisz zaakceptować regulamin!"
  128. dobre=false;
  129. }
  130. }
  131. else{
  132. dobre=false;
  133. el = document.getElementById('zle1');
  134. el.innerHTML = 'Podane hasła się różnią!';
  135. document.forms['nowy'].elements['login'].disabled="disabled";
  136. }
  137. }
  138. return dobre;
  139. }
  140. </SCRIPT>
  141.  
  142. </HEAD>
  143. <BODY onLoad="onload();" >
  144. <?echo $cz1;?>
  145. <div id="logowanie">
  146. <?php
  147. if($_SESSION['status'] == 0){
  148. echo $log1;
  149. }
  150. elseif($_SESSION['status'] > 0){
  151. echo "<b css='log'>Witaj ",$login,"!</b><br><a href='skrzynka.php' css='wiad'>Wiadomości(",$ilpoczta,")</a><br>",$log2;
  152.  
  153. }
  154. ?>
  155. </div>
  156. <?echo $cz2;?>
  157. <div id="srodek">
  158. <div id="text">
  159. <div id="nazwy">Nazwa urzytkownika*:<br>Hasło*:<br>Powtórz hasło*:<br>E-mail*:<br>Imię:<br>Nazwisko:<br>Gadu-gadu:<br>Chcę aby mój mail był<br>widoczny dla innych urzytkowników<br>Brałem udział w "Polish <br>Open Memory Championship"(junior, children)<br><div id="textdodaj"></div><br>Akceptuje <a href="regulamin.php">regulamin</a></div>
  160. <div id="pola">
  161. <form id="nowy" css="nowyurzyt" method="post" action="koniecrej.php" onsubmit="return funkcja();">
  162. <input type="text" name="login" css="rejestrinput" /><b id="zle" css="zle"></b><br>
  163. <input type="password" name="haslo" css="rejestrinput" /><b id="zle1" css="zle"></b><br>
  164. <input type="password" name="haslo2" css="rejestrinput" /><br>
  165. <input type="text" name="mail" css="rejestrinput" /><br>
  166. <input type="text" name="imie" css="rejestrinput" /><br>
  167. <input type="text" name="nazwisko" css="rejestrinput" /><br>
  168. <input type="text" name="gg" css="rejestrinput" /><br><br>
  169. <input type="checkbox" name="mailczy" value="1" css="rejestrinput" /><br><br>
  170. <input type="checkbox" name="czy" value="1" onclick="mistrzostwa();" css="rejestrinput" /><br><br>
  171. <div id="mistrzostwa"></div>
  172. <input type="checkbox" name="regulamin" value="1" css="rejestrinput" /><b id="zle2" css="zle"></b><br><br><br>
  173. <button type="sumbit" name="button">Zarejestruj</button>
  174.  
  175.  
  176.  
  177. </form>
  178. </div>
  179. </div>
  180. </div>
  181. <?echo $cz3;
  182. ob_end_flush();?>
  183.  
  184. </BODY>
  185. </HTML>
DiH
Szczerze przyznam, że nie wgłębiałem się bardzo w Twój kod. Mogę jednak poradzić jak uzyskać ten sam efekt, tyle że przy mniejszym nakładzie kodu, i pracy.

Do wysłania zapytania ajax'em możesz wykorzystać funkcje wbudowane w jQuery. Po kliknięciu na Twój przycisk wykonuje się zdefiniowana przez ciebie funkcja ajaxowa, która wysyła postem cały formularz do pliku php. Plik php sprawdza czy hasla sie zgadzają etc. Jeżeli wszystko jest OK, to zawartość formularza zostaje przeslana, a jeżeli nie, to zwracasz odpowiedni komunikat.

  1. <?session_start();
  2. // zmień na
  3. <?php
  4. session_start();

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.