Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][PHP]Sprawdzanie poprawności daty
Dreiven
post
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 27.05.2014

Ostrzeżenie: (0%)
-----


Witam,

Mam problem z takim oto kodem:

  1. <!DOCTYPE html>
  2. <meta charset="UTF-8">
  3. <title>DATA</title>
  4. </head>
  5. <form action="data.php" method="get">
  6. <div><label for="firstname">Imię:
  7. <input type="text" required="required" name="firstname" id="firstname" placeholder="Imię"></label>
  8. </div>
  9. <div><label for="date">Data urodzenia:
  10. <input type="text" required="required" name="date" id="date" placeholder="MM/DD/RRRR"</label>
  11. </div>
  12. <div><input type="submit" value="Wyślij"></div>
  13. </form>
  14. </body>
  15. </html>


  1. <?php
  2. $firstName = $_POST['firstname'];
  3. $Date = $_POST['date'];
  4. if (bool checkdate ( int $month , int $day , int $year )) {
  5. echo "Data jest poprawna";
  6. } else {
  7. echo "Data jest niepoprawna";
  8. }
  9. ?>


Pojawia się błąd: Parse error: syntax error, unexpected T_STRING in /data.php on line 4

Czy ktoś może pomóc i powiedzieć co jest nie tak? Szukałem już chyba wszędzie i nie mogę dojść co nie tak.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
johny_s
post
Post #2





Grupa: Zarejestrowani
Postów: 594
Pomógł: 122
Dołączył: 17.07.2005
Skąd: P-na

Ostrzeżenie: (0%)
-----


1) nie int a (int)

2) nie masz zdefiniowanych $month, $day, $year
Go to the top of the page
+Quote Post
robertpiaty
post
Post #3





Grupa: Zarejestrowani
Postów: 113
Pomógł: 18
Dołączył: 7.10.2007
Skąd: Pruszków

Ostrzeżenie: (0%)
-----


Spróbuj coś takiego
  1. $data = explode('/',$date);
  2. $year = array_key_exists(2,$data) ? 0 : (int)$data[2];
  3. $day = array_key_exists(1,$data) ? 0 : (int)$data[1];
  4. $month = array_key_exists(0,$data) ? 0 : (int)$data[0];
  5.  
  6. if ( checkdate ( $month , $day , $year )) {
  7.  
  8. dalej twój kod
Go to the top of the page
+Quote Post
Dreiven
post
Post #4





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 27.05.2014

Ostrzeżenie: (0%)
-----


Czyli wychodzi kod:

  1. <?php
  2. $firstName = $_POST['firstname'];
  3. $Date = $_POST['date'];
  4. $data = explode('/',$date);
  5. $year = array_key_exists(2,$data) ? 0 : (int)$data[2];
  6. $day = array_key_exists(1,$data) ? 0 : (int)$data[1];
  7. $month = array_key_exists(0,$data) ? 0 : (int)$data[0];
  8.  
  9. if ( checkdate ( $month , $day , $year )) {
  10.  
  11. echo "Data jest poprawna";
  12. } else {
  13. echo "Data jest niepoprawna";
  14. }
  15. ?>



W każdej konfiguracji jest "Data jest nie poprawana".
Go to the top of the page
+Quote Post
robertpiaty
post
Post #5





Grupa: Zarejestrowani
Postów: 113
Pomógł: 18
Dołączył: 7.10.2007
Skąd: Pruszków

Ostrzeżenie: (0%)
-----


Ale się walnąłem (IMG:style_emoticons/default/smile.gif)

Zamień
  1. $data = explode('/',$date);
  2. $year = array_key_exists(2,$data) ? 0 : (int)$data[2];
  3. $day = array_key_exists(1,$data) ? 0 : (int)$data[1];
  4. $month = array_key_exists(0,$data) ? 0 : (int)$data[0];

na
  1. $data = explode('/',$Date);
  2. $year = !array_key_exists(2,$data) ? 0 : (int)$data[2];
  3. $day = !array_key_exists(1,$data) ? 0 : (int)$data[1];
  4. $month = !array_key_exists(0,$data) ? 0 : (int)$data[0];
Go to the top of the page
+Quote Post
Dreiven
post
Post #6





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 27.05.2014

Ostrzeżenie: (0%)
-----


Poprawiony:

  1. <?php
  2. $firstName = $_POST['firstname'];
  3. $Date = $_POST['date'];
  4. $data = explode('/',$Date);
  5. $year = !array_key_exists(2,$data) ? 0 : (int)$data[2];
  6. $day = !array_key_exists(1,$data) ? 0 : (int)$data[1];
  7. $month = !array_key_exists(0,$data) ? 0 : (int)$data[0];
  8.  
  9. if ( checkdate ( $year , $day , $month )) {
  10.  
  11. echo "Data jest poprawna";
  12. } else {
  13. echo "Data jest niepoprawna";
  14. }
  15. ?>


Wyskakuje: Data jest niepoprawna

Format daty to np: 20150222 (taką datę wpisuje)

Ten post edytował Dreiven 23.02.2015, 00:25:28
Go to the top of the page
+Quote Post
robertpiaty
post
Post #7





Grupa: Zarejestrowani
Postów: 113
Pomógł: 18
Dołączył: 7.10.2007
Skąd: Pruszków

Ostrzeżenie: (0%)
-----


Bo data jest niepoprawna. W kodzie HTML w paceholder masz format MM/DD/RRRR Czyli powinno być 02/22/2015
Go to the top of the page
+Quote Post
Dreiven
post
Post #8





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 27.05.2014

Ostrzeżenie: (0%)
-----


Nadal komunikat Data jest niepoprawna.

Kombinowałem z różnymi konf. daty przy wpisywaniu.

Ten post edytował Dreiven 23.02.2015, 00:33:15
Go to the top of the page
+Quote Post
robertpiaty
post
Post #9





Grupa: Zarejestrowani
Postów: 113
Pomógł: 18
Dołączył: 7.10.2007
Skąd: Pruszków

Ostrzeżenie: (0%)
-----


Sprawdź kolejność parametrów jakie przekazujesz do funkcji checkdate http://php.net/manual/en/function.checkdate.php
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.09.2025 - 19:36