Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formularz rejestracyjny a data urodzenia.
Forum PHP.pl > Forum > PHP
Przem4S
Witam, otóż mam pewien problem, nie potrafię zarzucić danych z formularza do mysql, w normalnym formacie, unix potrafię ale mnie nie interesuje. Tak więc mój skrypt przedstawia się nastepująco :

plik rejestracja.php

  1. <?php
  2. if ( !defined('TYLKO_STRONA') )
  3. {
  4. die(include "blad403.php");
  5. }
  6. ?>
  7. <html xmlns="http://www.w3.org/1999/xhtml" lang="pl" xml:lang="pl">
  8. <head>
  9. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  10. <title>Rejestracja</title>
  11. <link type="text/css" rel="stylesheet" media="all" href="../style/default.css" />
  12. </head>
  13. <br>
  14. <center><font size="6">Rejestracja</font></center><br>
  15. <br>
  16. <?php
  17. require('config.php');
  18. if (isset($_POST['login']) and isset($_POST['haslo']) and isset($_POST['haslo2']))
  19. {
  20. if ($_POST['haslo']==$_POST['haslo2'])
  21. {
  22. $login = mysql_real_escape_string (trim($_POST['login']));
  23. $haslo = sha1(mysql_real_escape_string (trim($_POST['haslo'])));
  24. $imie = mysql_real_escape_string (trim($_POST['imie']));
  25. $nazwisko = mysql_real_escape_string (trim($_POST['nazwisko']));
  26. $plec = mysql_real_escape_string (trim($_POST['plec']));
  27. $numer_gg = mysql_real_escape_string (trim($_POST['gg']));
  28. $miasto = mysql_real_escape_string (trim($_POST['miasto']));
  29. $data_rejestracji = date("d.m.Y H:i:s");
  30. $adres_ip = $_SERVER['REMOTE_ADDR'];
  31. $data_urodzenia = date($_POST['data_urodzenia[rok]'].'.'.$_POST["data_urodzenia[miesiac]"].'.'.$_POST["data_urodzenia[dzien]"]);
  32. $email = mysql_real_escape_string (trim($_POST['email']));
  33.  
  34. $ile =mysql_query("SELECT * FROM `uzytkownicy` WHERE login = '$login'");
  35.  
  36. $ile = mysql_num_rows($ile);
  37.  
  38. if ($ile==0) {
  39.  
  40. $zapytanie="INSERT INTO uzytkownicy (login,haslo,imie,nazwisko,plec,gg,miasto,data_rejestracji,adres_ip,data_uro
    dzenia,email,aktywacja) VALUES('$login','$haslo','$imie','$nazwisko','$plec','$numer_gg','$miasto','$data_rejestracji','$adres_ip','$data_urodzenia','$email','0')"
    ;
  41.  
  42. mysql_query($zapytanie) or die("Wystąpił błąd: ".mysql_error());
  43.  
  44. echo('<strong>Wynik:</strong><br><font color="green">Konto '.$login.' zostało utworzone.</font><br><br><br>');
  45.  
  46.  
  47.  
  48. }
  49.  
  50. else
  51.  
  52. {
  53.  
  54. echo('<strong>Wynik:</strong><br><font color="red">Taki użytkownik instnieje już w bazie danych. Kliknij wstecz aby zarejestrować sie ponownie.</font><br><br><br>');
  55.  
  56. }
  57.  
  58. }
  59.  
  60. else echo ('<strong>Wynik:</strong><br><font color="red">Podane hasła nie zgadzają się.</font><br><br><br>');
  61.  
  62. }
  63.  
  64. else{
  65. }
  66. ?>
  67. <strong>Wypełnij poniższy formularz aby dodać nowego użytkownika:</strong><br>
  68. <br>
  69. <div style="text-align:left; width:400px; margin-left:25px;">
  70. <form action="index.php?pokaz=rejestracja" method="post">
  71. <strong>Login:</strong><br><input name="login" type="text" value="" size="35"/><br>
  72. <strong>Hasło:</strong><br><input name="haslo" type="password" value="" size="35"/><br>
  73. <strong>Powtórz hasło:</strong><br><input name="haslo2" type="password" value="" size="35"/><br>
  74. <strong>Imię:</strong><br><input name="imie" type="text" value="" size="35"/><br>
  75. <strong>Nazwisko:</strong><br><input name="nazwisko" type="text" value="" size="35"/><br>
  76. <strong>Płeć:</strong><br><select name="plec"><option value="Mężczyzna">Mężczyzna</option><option value="Kobieta">Kobieta</option></select><br>
  77. <strong>Numer GG:</strong><br><input name="gg" type="text" value="" size="35"/><br>
  78. <strong>Miasto:</strong><br><input name="miasto" type="text" value="" size="35"/><br>
  79. <strong>Data urodzenia:</strong><br>
  80. <select name="data_urodzenia[dzien]"><?php for ($i=1; $i<=31; $i++){echo "<option value='$i'>$i</option>";}?></select> - <select name="data_urodzenia[miesiac]"><?php for ($i=1; $i<=12; $i++){echo "<option value='$i'>$i</option>";}?> - <select name="data_urodzenia[rok]"><?php for ($i=2010; $i>=1900; $i=$i-1){echo "<option value='$i'>$i</option>";} ?></select>
  81. <br>
  82. <strong>Email:</strong><br><input name="email" type="text" value="" size="35"/><font color="red">*</font><br><br>
  83. <center><input type="submit" value="Zarejestruj" /></center>
  84. </form><br><br>
  85. </div>
  86. </html>


Wszystkie rzeczy po za datą urodzenia działają poprawnie. Obecnie tylko w pole daty są wprowadzane 2 kropki (".."). Z góry dziękuje za pomoc i zainteresowanie. smile.gif
osl
dlaczego przy dacie urodzenia używasz date? przecież już masz tę datę...
Przem4S
Jedna data jest pobierana do daty_rejestracji której użytkownik wgl nie narusza, druga zaś jest ustawiana przez użytkownika - próbowałem date, lecz nie wiem jak to skonstruować aby data_urodzenia miała normalny format w mysql?
osl
dodaj sobie rekord przez phpMyAdmin i zobacz jak wygląda data w tym konkretnym przypadku wink.gif
Przem4S
W tabeli teoretycznie mam format:
(typ:date)
np. 2011-03-22
Tylko jak to wstawić w formularz oraz podpiąć pod query.
osl
no widzisz, 2011-03-22, a według kodu który masz byłoby 2011.03.22, chyba widzisz różnice? smile.gif
Przem4S
Jasne rozumiem Cię - tylko akurat to już wcześniej zmieniłem po czym niestety i tak występuje błąd: "Incorrect date value: '--' for column 'data_urodzenia' at row 1".
osl
dopiero co zwróciłem uwagę na pewien drobiazg wink.gif
Kod
   $data_urodzenia = date($_POST['data_urodzenia[rok]'].'.'.$_POST["data_urodzenia[miesiac]"].'.'.$_POST["data_urodzenia[dzien]"]);


nazwy pól z posta są tu błędnie podane. zrób sobie var_dump($_POST); i zobacz jak to wygląda od strony php po wysłaniu formularza.
Przem4S
  1. $data_urodzenia = var_dump($_POST['data_urodzenia[rok]'].'-'.$_POST['data_urodzenia[miesiac]'].'-'.$_POST['data_urodzenia[dzien]']);


Coś takiego wywala mi: string(2) "--" Wystąpił błąd: Incorrect date value: '' for column 'data_urodzenia' at row 1
JoShiMa
bo powinno być:

$_POST['data_urodzenia']['rok'].'-'.$_POST["data_urodzenia']['miesiac'].'-'.$_POST["data_urodzenia']['dzien']

Ale żeby to zobaczyć to powinieneś dać var_dump($_POST)
Przem4S
Naturalnie po raz kolejny otrzymałem konkretną pomoc wink.gif Właśnie tak myślałem iż funkcja date tutaj powinna śmigać. Dziękuję i leci pomógł.
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.