Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL] Formularz edycji danych - nie zapisuje w bazie.
bartekm1
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 18.03.2012

Ostrzeżenie: (10%)
X----


Witam,

mam taki błąd, mam połączenie z bazą, zrobiony formularz (niżej podany kod), i po wypełnieniu danych, nie zapisuje ich w mysql.

Co może być nie tak?

  1. <?php
  2. if(!empty($_POST["imienazwisko"]) && !empty($_POST["adres"]) && !empty($_POST["kodpocztowy"]) && !empty($_POST["miasto"]) )
  3. {
  4. $_GET['id'] = (int)$_GET['id'];
  5. $sql = "select * from gracze where gracz = ".$_GET['id']."";
  6. $res = mysql_query($sql);
  7. $num = mysql_num_rows($res);
  8. if($num > 0)
  9. {
  10. //tutaj możesz dać walidację danych z formularza
  11. //następnie zapytanie sql
  12. $sql="UPDATE gracze SET imienazwisko='".$_POST["imienazwisko"]."',adres='".$_POST["adres"]."',kodpocztowy='".$_POST["kodpocztowy"]."',miasto='".$_POST["miasto"]."' WHERE id=$id";
  13. $result = mysql_query($sql)
  14. or die("blad");
  15. {
  16. echo'update ok';
  17. }
  18. //oczywiście zmienne $adres, $kod,$miasto to przefiltrowane zmienne pochodzące z formularza
  19. }
  20. }
  21. else
  22. {
  23. $body = '<center>
  24. <h3>Edytuj Swoje Dane Osobowe</h3>
  25. <table>
  26. <tr>
  27. <td>
  28. <form action="vprofil" method="post">
  29. <h4>Imię i nazwisko</h4>
  30. <input type="text" name="imienazwisko" id="input" maxlength="30" value="'.$_POST['imienazwisko'].'" />
  31. <h4>Adres</h4>
  32. <input type="text" name="adres" id="input" maxlength="30" value="'.$_POST['adres'].'" />
  33. <h4>Kod pocztowy</h4>
  34. <input type="text" name="kodpocztowy" id="input" maxlength="30" value="'.$_POST['kodpocztowy'].'" />
  35. <h4>Miasto</h4>
  36. <input type="text" name="miasto" id="input" maxlength="30" value="'.$_POST['miasto'].'" /><br /></td></tr>
  37. <tr><td align="right">
  38. <input type="submit" id="button" value="Zapisz" />
  39. </form>
  40. </td></tr>
  41. </table>
  42. </center>' ;
  43. echo $body;
  44. }
  45. ?>


A struktura tej bazy wygląda tak:


  1. CREATE TABLE `gracze` (
  2. `gracz` int(6) NOT NULL AUTO_INCREMENT,
  3. `haslo` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
  4. `email` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
  5. `data` datetime NOT NULL,
  6. `telefon` int(15) NOT NULL,
  7. `imienazwisko` varchar(99) COLLATE utf8_unicode_ci NOT NULL,
  8. `adres` varchar(99) COLLATE utf8_unicode_ci NOT NULL,
  9. `kodpocztowy` varchar(99) COLLATE utf8_unicode_ci NOT NULL,
  10. `miasto` varchar(99) COLLATE utf8_unicode_ci NOT NULL,
  11. PRIMARY KEY (`gracz`)
  12. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ROW_FORMAT=DYNAMIC AUTO_INCREMENT=735 ;

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
bartekm1
post
Post #2





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 18.03.2012

Ostrzeżenie: (10%)
X----


To może innaczej (IMG:style_emoticons/default/smile.gif)

Będzie łatwiej jak udostępnie Wam plik rejestracji, ponieważ ja tego nie robiłem i sie za bardzo nie orientuje.

  1. <h3>Rejestracja</h3>
  2. <?
  3. if($oGracz[gracz] > 0){
  4. header("Location: ?a=konto");
  5. }
  6. $akcja = trim($_REQUEST["akcja"]);
  7. if ($akcja=="rejestracja") {
  8. $login = htmlspecialchars(stripslashes(trim($_POST["login"])), ENT_QUOTES);
  9. $haslo = htmlspecialchars(stripslashes(trim($_POST["haslo"])), ENT_QUOTES);
  10. $email = htmlspecialchars(stripslashes(trim($_POST["email"])), ENT_QUOTES);
  11. $in = htmlspecialchars(stripslashes(trim($_POST["in"])), ENT_QUOTES);
  12. $adres = htmlspecialchars(stripslashes(trim($_POST["adres"])), ENT_QUOTES);
  13. $kodpocztowy = htmlspecialchars(stripslashes(trim($_POST["kodpocztowy"])), ENT_QUOTES);
  14. $miasto = htmlspecialchars(stripslashes(trim($_POST["miasto"])), ENT_QUOTES);
  15. $plec = htmlspecialchars(stripslashes(trim($_POST["plec"])), ENT_QUOTES);
  16. $telefon = htmlspecialchars(stripslashes(trim($_POST["telefon"])), ENT_QUOTES);
  17. $data_urodzenia = date($_POST['data_urodzenia']['rok'].'-'.$_POST['data_urodzenia']['miesiac'].'-'.$_POST['data_urodzenia']['dzien']);
  18.  
  19. if (strlen($login)<3 or strlen($login)>24
  20. or !eregi("^[a-zA-Z0-9_.]+$",$login)) { $blad++;
  21. echo "<div class='alert'><div class='inner'>Login musi mieć od 3 do 24 znaków bez polskich znaków i spacji!</div></div>";
  22. } else {
  23. if ($baza = mysql_connect($host_bazy_danych, $uzytkownik_bazy_danych, $haslo_bazy_danych)) {
  24. if (mysql_select_db($nazwa_bazy_danych)) {
  25. $wynik=mysql_query("SELECT * FROM gracze WHERE login='$login'");
  26. $wynik2=mysql_query("SELECT email FROM gracze WHERE email='$email'");
  27. } else echo "Nie można połączyć się z bazą.";
  28. mysql_close($baza);
  29. } else echo "Nie można połączyć się z bazą.";
  30. if (mysql_num_rows($wynik)<>0) { $blad++;
  31. echo "<div class='alert'><div class='inner'>Taki login już jest w naszej bazie!</div></div>";
  32. }
  33. if (mysql_num_rows($wynik2)<>0) { $blad++;
  34. echo "<div class='alert'><div class='inner'>Taki e-mail już jest w naszej bazie danych!</div></div>";
  35. }
  36. }
  37.  
  38. if (strlen($haslo)<6 or strlen($haslo)>50
  39. or !eregi("^[a-zA-Z0-9]+$",$haslo)) { $blad++;
  40. echo "<div class='alert'><div class='inner'>Hasło musi mieć od 6 do 50 znaków bez polskich znaków i spacji!</div></div>";
  41. }
  42.  
  43. if (!eregi("^[0-9a-z_.-]+@([0-9a-z-]+\.)+[a-z]{2,4}$",$email)) { $blad++;
  44. echo "<div class='alert'><div class='inner'>E-mail nie został podany prawidłowo!</div></div>";
  45. }
  46. if (strlen($in)<3) {$blad++;
  47. echo "<div class='alert'><div class='inner'>Podaj prawidłowo imię i nazwisko!</div></div>";
  48. }
  49. if (strlen($adres)<3) {$blad++;
  50. echo "<div class='alert'><div class='inner'>Podaj prawidłowo adres!</div></div>";
  51. }
  52. if (strlen($kodpocztowy)<3) {$blad++;
  53. echo "<div class='alert'><div class='inner'>Podaj prawidłowo kod pocztowy!</div></div>";
  54. }
  55. if (strlen($miasto)<3) {$blad++;
  56. echo "<div class='alert'><div class='inner'>Podaj prawidłowo miasto!</div></div>";
  57. }
  58. if(isset($_POST['regulamin']) &&
  59. $_POST['regulamin'] == '0') {
  60. }
  61. else
  62. { $blad++;
  63. echo "<div class='alert'><div class='inner'>Musisz zaakceptować regulamin!</div></div>";
  64. }
  65. require_once('var/recaptchalib.php');
  66. $privatekey = "6LcTWM4SAAAAAASgWIbHpdar89ZQDZPShyE8pT_B";
  67. $resp = recaptcha_check_answer ($privatekey,
  68. $_SERVER["REMOTE_ADDR"],
  69. $_POST["recaptcha_challenge_field"],
  70. $_POST["recaptcha_response_field"]);
  71. if (!$resp->is_valid) {
  72. echo "";
  73. }
  74. if ($blad==0) {
  75. $kod = uniqid(rand());
  76. $haslo = md5($haslo);
  77. if ($baza = mysql_connect($host_bazy_danych, $uzytkownik_bazy_danych, $haslo_bazy_danych)) {
  78. if (mysql_select_db($nazwa_bazy_danych)) {
  79. $polecony = $_COOKIE['strona'];
  80. $wynik = mysql_query("INSERT INTO gracze SET login='$login', haslo='$haslo', kod='$kod', status='1', imienazwisko='$in', adres='$adres', kodpocztowy='$kodpocztowy', miasto='$miasto', telefon='$telefon', data_ur='$data_urodzenia', plec='$plec', polecony='$polecony', data=NOW(), email='$email'");
  81. } else echo "Nie można połączyć się z bazą.";
  82. mysql_close($baza);
  83. } else echo "Nie można połączyć się z bazą.";
  84.  
  85. if ($wynik) {
  86. $list="
  87. Aby potwierdzić Twoją rejestrację, kliknij w poniższy link lub skopiuj go do paska adresu Twojej przeglądarki i potwierdź klawiszem Enter.
  88.  
  89. <a href="http://strona.pl/potwierdz:$kod" target="_blank">http://strona.pl/potwierdz:$kod</a>
  90.  
  91. Jeżeli nie rejestrowałeś się w serwisie, zignoruj ten list.
  92. ";
  93. mail($email, "Rejestracja", $list, "From: strona.pl <admin@strona.pl>");
  94. echo "<div class='ok'><div class='inner'>Aby dokończyć proces rejestracji, kliknij w link wysłany na Twój e-mail.</div></div>";
  95. }
  96. } else $akcja="";
  97. }
  98.  
  99. if ($akcja=="") {
  100. ?>
  101. <script type="text/javascript">
  102. var RecaptchaOptions = {
  103. theme : 'custom',
  104. custom_theme_widget: 'recaptcha_widget'
  105. };


Część druga pliku rejestracji:

  1. </script>
  2. <table width="100%"><tr><td><form action="?a=rejestracja" method="post">
  3. <input type="hidden" name="akcja" id="input" value="rejestracja" />
  4. <h4>Login</h4>
  5. <input type="text" name="login" id="input" maxlength='24' value="<?php $login ?>" />
  6. <h4>Hasło</h4>
  7. <input type="password" name="haslo" id="input" maxlength='50' value="<?php $haslo ?>" />
  8. <h4>E-mail</h4>
  9. <input type="text" name="email" id="input" maxlength='50' value="<?php $email ?>" />
  10. <h4>Imię i nazwisko</h4>
  11. <input type="text" name="in" id="input" maxlength='30' value="<?php $in ?>" />
  12. <h4>Adres</h4>
  13. <input type="text" name="adres" id="input" maxlength='30' value="<?php $adres ?>" />
  14. <h4>Kod pocztowy</h4>
  15. <input type="text" name="kodpocztowy" id="input" maxlength='30' value="<?php $kodpocztowy ?>" />
  16. <h4>Miasto</h4>
  17. <input type="text" name="miasto" id="input" maxlength='30' value="<?php $miasto ?>" />
  18. <h4>Płeć</h4>
  19. <select name="plec" id="select"><option value="1">Mężczyzna</option><option value="2">Kobieta</option></select>
  20. <h4>Data urodzenia</h4>
  21. <select name="data_urodzenia[dzien]" id="styled"><?php for ($i=1; $i<=31; $i++){echo "<option value='$i'>$i</option>";}?></select> -
  22. <select name="data_urodzenia[miesiac]" id="select"><?php for ($i=1; $i<=12; $i++){echo "<option value='$i'>$i</option>";}?></select> -
  23. <select name="data_urodzenia[rok]" id="select"><?php for ($i=1998; $i>=1900; $i=$i-1){echo "<option value='$i'>$i</option>";} ?></select>
  24. <h4>Numer telefonu</h4>
  25. <input type="text" name="telefon" id="input" maxlength='15' value="<?php $telefon ?>" />
  26. </td><td align="right"><script type="text/javascript"><!--
  27. google_ad_client = "ca-pub-1157982378110244";
  28. /* Duży kwadrat */
  29. google_ad_slot = "8564127234";
  30. google_ad_width = 300;
  31. google_ad_height = 250;
  32. //-->
  33. </script>
  34. <script type="text/javascript"
  35. src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
  36. </script></td></tr></table>
  37. <table cellspacing="20" width="600"><tr><td><h4>Przepisz kod potwierdzający</h4>
  38.  
  39. <div id="recaptcha_widget" style="display:none">
  40. <div class="recaptcha_only_if_incorrect_sol" style="color:red">Kod potwierdzający jest nieprawidłowy!</div>
  41. <input type="text" id="recaptcha_response_field" class="input" name="recaptcha_response_field" /></td><td>
  42. <br /><div id="recaptcha_image" style="border: 3px solid #043a4b"></div>
  43. <div><a href="java script:Recaptcha.reload()">Przeładuj obrazek</a></div>
  44. </div>
  45. </td></tr></table>
  46.  
  47. <script type="text/javascript"
  48. src="http://www.google.com/recaptcha/api/challenge?k=6LcTWM4SAAAAAPQJ1kkwj8pYwa9avtqhQK658mLw ">
  49. </script>
  50. <noscript>
  51. <iframe src="http://www.google.com/recaptcha/api/noscript?k=6LcTWM4SAAAAAPQJ1kkwj8pYwa9avtqhQK658mLw "
  52. height="300" width="500" frameborder="0"></iframe><br>
  53. <textarea name="recaptcha_challenge_field" rows="3" cols="40">
  54. </textarea>
  55. <input type="hidden" name="recaptcha_response_field"
  56. value="manual_challenge">
  57. </noscript>
  58. <input name="regulamin" type="checkbox" name="regulamin" value="0">Zapoznałem/am się z <a href="?a=regulamin" target="_blank">regulaminem</a> serwisu<br />
  59. <input type="submit" id="button" value="Dalej" />
  60. </form>
  61. <?php
  62. KONIEC;
  63. }
  64.  
  65.  
  66. if ($akcja=="potwierdz") {
  67. $kod = htmlspecialchars(stripslashes(trim($_GET["kod"])), ENT_QUOTES);
  68. if ($kod<>"") {
  69. if ($baza = mysql_connect($host_bazy_danych, $uzytkownik_bazy_danych, $haslo_bazy_danych)) {
  70. if (mysql_select_db($nazwa_bazy_danych)) {
  71. $wynik = mysql_query("DELETE FROM gracze
  72. WHERE data<=DATE_SUB(NOW(),INTERVAL 2 DAY) and status=1");
  73. $wynik = mysql_query("UPDATE gracze
  74. SET status='2', data=NOW() WHERE kod='$kod' and status=1");
  75. $wynik = mysql_query("SELECT * FROM gracze
  76. WHERE kod='$kod' and status=2");
  77. } else echo "Nie można połączyć się z bazą";
  78. mysql_close($baza);
  79. } else echo "Nie można połączyć się z bazą";
  80. if (mysql_num_rows($wynik)==1) {
  81. $dane = mysql_fetch_array($wynik);
  82. echo "<div class='ok'><div class='inner'>Dziękujemy. Rejestracja została zakończona poprawnie.</div></div>";
  83. }
  84. }
  85. if ($kod=="" or mysql_num_rows($wynik)<>1) {
  86. echo "<div class='error'><div class='inner'>Rejestracja nie może zostać dokończona - sprawdź czy link jest poprawny!</div></div>";
  87. }
  88. }
  89.  
  90.  
  91.  
  92. if ($akcja=="przypomnij") {
  93. echo <<<KONIEC
  94. Aby skorzystać z funkcji przypominania hasła, należy wpisać swój adres email podany przy rejestracji.<br /><br />
  95. <table width="100%"><tr><td><br /><br /><br /><form action="vrejestracja&akcja=wyslijhaslo" method="post">
  96. <input type="hidden" name="akcja" value="wyslijhaslo" />
  97. <h4>E-mail</h4>
  98. <input type="text" name="email" id="input" value="$email" /><br />
  99. <input type="submit" id="button" value="Dalej" />
  100. </form></td>
  101. <td align="right"><script type="text/javascript"><!--
  102. google_ad_client = "ca-pub-1157982378110244";
  103. /* Duży kwadrat */
  104. google_ad_slot = "8564127234";
  105. google_ad_width = 300;
  106. google_ad_height = 250;
  107. //-->
  108. </script>
  109. <script type="text/javascript"
  110. src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
  111. </script></td></tr></table>
  112. KONIEC;
  113. }
  114.  
  115.  
  116. function haslo() {
  117. $min = 6; $max = 12;
  118. for($i=0;$i<rand($min,$max);$i++) {
  119. $znak=chr(rand(48,122));
  120. if (eregi("[0-9a-zA-Z]",$znak)) $haslo .= $znak;
  121. else $i--;
  122. }
  123. return $haslo;
  124. }
  125.  
  126.  
  127. if ($akcja=="wyslijhaslo") {
  128.  
  129.  
  130. $email = htmlspecialchars(stripslashes(trim($_POST["email"])), ENT_QUOTES);
  131. $hasloczytelne = haslo();
  132. $haslo = md5($hasloczytelne);
  133. if ($email<>"") {
  134. if ($baza = mysql_connect($host_bazy_danych, $uzytkownik_bazy_danych, $haslo_bazy_danych)) {
  135. if (mysql_select_db($nazwa_bazy_danych)) {
  136. $wynik = mysql_query("UPDATE gracze SET haslo='$haslo' WHERE email='$email'");
  137. $wynik = mysql_query("SELECT * FROM gracze WHERE email='$email'");
  138. } else echo "Nie można połączyć się z bazą";
  139. mysql_close($baza);
  140. }
  141. if (mysql_num_rows($wynik)==1) {
  142. $dane = mysql_fetch_array($wynik);
  143. $email = $dane["email"];
  144. $list="Twoje nowe hasło to: $hasloczytelne";
  145. mail($email, "Przypomnienie hasła", $list,"From: strona.pl <admin@strona.pl>");
  146. echo "<div class='ok'><div class='inner'>Hasło zostało wyslane na Twój adres e-mail.</div></div>";
  147. } else {
  148. echo "<div class='alert'><div class='inner'>Podałeś nieprawidłowy adres e-mail!</div></div>";
  149. }
  150. }
  151. }


Byłby ktoś w stanie pomóc??

Jakoś się odwdzięcze
Go to the top of the page
+Quote Post

Posty w temacie


Closed TopicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 6.10.2025 - 09:54