2017-02-09 8 views
0

У меня здесь небольшая проблема. Я новичок в PHP и JS. У меня есть PHP-код с базой данных MySQL внутри него. В JS-файле я написал код, который проверяет, введена ли дата пользователя ранее или нет, чем сегодняшняя дата. Теперь он добавляет всех пользователей в базу данных, но мне нужно добавить только пользователей, которые вошли раньше сегодняшней даты (добавьте только пользователей с инструкцией TRUE if). Как мне это сделать? Спасибо за любую помощь.Как не добавлять пользователя в базу данных, если дата более поздняя, ​​чем сегодняшняя дата?

Вот моя часть кода JS:

if (x.getTime() < today.getTime()) { 
    alert ("Employees has been succesfully added to the database"); 
} 
else 
{ 
    alert ("You have entered date which is later than todays date. Re-enter it"); 
} 
} 

Вот мой PHP код:

<?php 
try { 
$db = new PDO('mysql:host=127.0.0.1;dbname=employees;charset=utf8','root',''); 
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

if (isset($_POST['Submit'])) { 
$name = $_POST['name']; 
$surname = $_POST['surname']; 
$employmentDate = $_POST['employmentDate']; 

$insert = $db->prepare("INSERT INTO employee (name,surname,employment_date) VALUES (:name,:surname,:employmentDate)"); 

$insert->bindParam(':name',$name); 
$insert->bindParam(':surname',$surname); 
$insert->bindParam(':employmentDate',$employmentDate); 
$insert->execute(); 
} 
} 
catch (PDOException $e) { 
echo "There is something wrong with the database".$e->getMessage(); 
die(); 
} 
?> 
+0

Вы не должны доверять дата прихода от клиента, вы понятия не имеете, как это было или время и дата, на которые установлен хост. Что такое * x * и * сегодня *? Я думаю, что они даты, но как они сгенерированы? – RobG

+0

Можете ли вы включить немного больше? Я предполагаю, что ваш php-код - это то, где данные фактически вставлены в БД правильно? Что делать, если вы поставили эту проверку в php-код и только назвали вставку sql, если дата была действительной. – mparis

+0

Я добавил свой код PHP – user7435747

ответ

0
var today, someday, text; 
today = new Date(); 
someday = new Date(); 
someday.setFullYear(2100, 0, 14); 

if (someday > today) { 
    alert("Today is before January 14, 2100."); 
return; 
} 
    ...Database insert Code here 

Edited ответить на ваш вопрос, я верю. Вам нужно только вызвать добавление базы данных, если вы в нужном блоке области.

ЗАКАНЧИВАТЬ W3 школы: http://www.w3schools.com/js/js_date_methods.asp

Если вы хотите, чтобы сделать жизнь проще, использовать moment.js https://momentjs.com/

+0

Я сделал это, мой JS-код просто проверяет, введена ли введенная пользователем дата в форме (whch в php-файле) не позже сегодняшнего дня, и если она верна или нет, она печатает результат. Я думаю, вы не поняли мой вопрос. – user7435747

+0

Я не думаю, что здесь есть что-то, чего нет в ответах на [* Сравнение двух дат с JavaScript *] (http://stackoverflow.com/questions/492994/compare-two-dates-with-javascript). – RobG

+0

Вам нужно либо выйти, если проверка даты завершилась неудачно, либо вставить вкладку db в область действия, которая является правильной. Я предполагаю, что у вас есть код базы данных ниже блока IF, поэтому его всегда срабатывает – Dys1