Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak zrobić żeby pokazywało text "Zły format daty"
Forum PHP.pl > Forum > Przedszkole
gados82
mam pole formularza w któym wpisuje date w formacie mm-dd-rrrr po wpisaniu wysyłam tą date do tabeli w Mysql.
Jak wpisze w tym formularzu zły foramt daty lub jakieś inne wyrażenie niż data to php wysypuje mi błedy, a chciałbym zrobić tak że po wpisaniu złej wartości w tym polu wyskoczył napis "Zły format daty"
Może mi ktoś pomóc z tym??
nospor
Sprawdzaj format i jak źle to pokazuj komunikat: (pseudokod)
  1. <?php
  2.  
  3. if (isset($_POST['twojinputzdata']) && dobryformatdaty($_POST['twojinputzdata']))
  4. {
  5. //zapis do bazy
  6. }
  7. elseif (isset($_POST['twojinputzdata']) && !dobryformatdaty($_POST['twojinputzdata']))
  8. {
  9. echo &#092;"<input ....\".\"Popraw\";
  10. }
  11. else
  12. echo &#092;"<input ....\";
  13.  
  14. ?>

Do sprawdzania poprawności daty już bylo wiele skryptów
Diwi
@nospor ale istnieje tez wbudowana funkcja w php checkdate" title="Zobacz w manualu PHP" target="_manual() przykładowy kod:

  1. <?php
  2. list ($dzien, $miesiac, $rok) = explode('-', $_POST['data']);
  3.  
  4. if (checkdate ($miesiac, $dzien, $rok)) {
  5.  
  6.  echo 'Data Poprawna';
  7.  
  8. }
  9. else {
  10.  
  11.  echo 'Data niepoprawna musisz to poprawić';
  12.  
  13. }
  14. ?>


UWAGA funkcja checkdate" title="Zobacz w manualu PHP" target="_manual() sprawdza date w formacie MM/DD/RRRR (miesiąc, dzień rok)

Pozdrawiam
nospor
Człowiek uczy się całe życie. Nie wiedziałem o tej funkcji. Jedna trzeba do Twojej metody dodać parę warunków. Wprowadzenie takiej daty: 02-02-12 wyswietli poprawny wynik, choć chyba ona będzie błędna (zakladając format kolegi). Trzeba by dorobić warunek na sprawdzanie dlugości stringa chociażby. Pozatym Twój list (..) trzeba zmienić, gdyż gados ma inny format (mm-dd-rr). Zamiana:
list ($miesiac, $dzien,$rok)
Diwi
@nospor ten skrypt to był tylko przykład żeby gados82-a naprowadzić smile.gif

Pozdrawiam
gados82
dzieki chlopaki za pomoc uzylem skryptu "diwi"

moj problem polegał dokładnie na datach

1.data przybycia
2. data wyjzadu

używanych przy rejestrowaniu klientów hotelu

rozwiązałem to tak:

  1. <?php
  2.  
  3. list ($miesiac, $dzien, $rok) = explode('-', $_POST['data_przybycia']);
  4. if (checkdate ($miesiac, $dzien, $rok))
  5. {
  6. list ($dzien, $miesiac, $rok) = explode('-', $_POST['data_wyjazdu']);
  7. if (checkdate ($miesiac, $dzien, $rok))
  8.  
  9. {
  10.  
  11. ///wykonuje jakiś skrypty jak dwie daty sa poprawne
  12.  
  13. }
  14. else
  15. echo '<p>Podana przez ciebie data jest nieprawidlowa. Poprawny format daty to: mm-dd-rrrr<p>';
  16. }
  17. else 
  18. {
  19. echo '<p>Podana przez ciebie data jest nieprawidlowa. Poprawny format daty to: mm-dd-rrrr<p>';
  20. }
  21.  
  22. ?>



super chodz tylko mam pytanie jeszcze
checkdate sprawdza tylko liczby
a jak znajdzie sie jakiś jełop i tam gdzie trzeba wpisać date on wpisze text (litery)
to wtedy wysypie sie kod
duża przeróbka jest potrzebna zeby to wyeliminować
Diwi
No to funkcja checkdate" title="Zobacz w manualu PHP" target="_manual zwróci FALSE i wyświetli się komunikat (no chyba że jest inaczej sad.gif )

Pozdrawiam
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.