Walcze z tym cały dzień i nie wiem jak to zrobić mianowicie:
Metodą prób i błędów napisałem walidację formularza :
function walidacja_id($ID_klienta){ { } $ID_klienta= $_POST['ID_klienta']; } function walidacja_date1($date1){ if(preg_match('/^[0-9]{4}[\-]{1}[0-9]{2}[\-]{1}[0-9]{2}\s{1}[0-9]{2}[\:]{1}[0-9]{2}[\:]{1}[0-9]{2}$/D', trim($_POST['date1']))) { } } $date1= $_POST['date1']; echo <<<lll <form name="formularz" action="data.php" method="post"> <input type"text" name="login_1" value="$login_1" />login<br> <input type"text" name="ID_klienta" value="$ID_klienta" />id<br> <input type"text" name="date1" value="$date1" />data<br> <input type="submit" value="Wyślij" /><br><br></form> lll; if ($date1) walidacja_date1($date1); if ($ID_klienta) walidacja_ID($ID_klienta); ?>
Jak wymusić dodanie rekordu do bazy?
Zmieniając method na GET i podając stronę wstaw.php gdzie napisany jest insert do bazy walidacja nie działa rekord trafia ale walidacja nie jest brana pod uwagę.
Próbując na głównej stronie zostawić sam formularz a walidację umieszczając w pliku wstaw.php jest tak samo
W pliku wstaw.php jak usunąłem
function walidacja_date1($date1){
to pojawia się informacja o błędnym wpisaniu daty czy loginu ale rekord i tak się dodaje
plik wstaw.php { } $ID_klienta= $_GET['ID_klienta']; function walidacja_date1($date1){ if(preg_match('/^[0-9]{4}[\-]{1}[0-9]{2}[\-]{1}[0-9]{2}\s{1}[0-9]{2}[\:]{1}[0-9]{2}[\:]{1}[0-9]{2}$/D', trim($_GET['date1']))) { } } $date1= $_GET['date1']; if (!$db) { exit; } $zapytanie = "INSERT INTO skrzynka (ID, login_1, ID_klienta, date1) VALUES ('', '$login_1', '$ID_klienta', '$date1');";