2017-02-09 1 views
0

Ich habe ein kleines Problem hier. Ich bin neu in PHP und JS, also. Ich habe einen PHP-Code mit MySQL-Datenbank darin. In JS-Datei habe ich den Code geschrieben, der überprüft, ob das eingegebene Datum des Benutzers früher oder nicht als das heutige Datum ist. Jetzt fügt es alle Benutzer zur Datenbank hinzu, aber ich muss nur die Benutzer hinzufügen, die früher als das heutige Datum eingegeben haben (fügen Sie nur die Benutzer mit der TRUE if-Anweisung hinzu). Wie soll ich das machen? Danke für jede Hilfe.Wie kann der Benutzer nicht zur Datenbank hinzugefügt werden, wenn das Datum später ist als das heutige Datum?

Hier ist mein Teil des Codes 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"); 
} 
} 

Hier ist meine PHP-Code:

<?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

Sie sollten nicht das Datum vom Client kommenden vertrauen, haben Sie keine Ahnung, wie es war generiert, oder auf welche Uhrzeit und für welches Datum der Host eingestellt ist. Was sind * x * und * heute *? Ich denke, sie sind Termine, aber wie werden sie generiert? – RobG

+0

Können Sie ein wenig mehr einbeziehen? Ich nehme an, Ihr PHP-Code ist, wo die Daten tatsächlich in die DB eingefügt werden, richtig? Was ist, wenn Sie diese Prüfung in den PHP-Code eingeben und nur die SQL-Einfügung aufrufen, wenn das Datum gültig war. – mparis

+0

Ich habe meinen PHP-Code hinzugefügt – user7435747

Antwort

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 Ihre Frage zu beantworten ich glaube. Sie müssen nur die Datenbank hinzufügen, wenn Sie im richtigen Bereich blockieren.

Check out W3 Schulen: http://www.w3schools.com/js/js_date_methods.asp

Wenn Sie möchten, um das Leben leichter machen, verwenden moment.js https://momentjs.com/

+0

Ich tat das, mein JS-Code überprüft nur, ob das eingegebene Datum des Benutzers in einem Formular (was in PHP-Datei ist) nicht später als heute und entweder wenn es wahr ist oder nicht, druckt es das Ergebnis. Ich glaube, du hast meine Frage nicht verstanden. – user7435747

+0

Ich glaube nicht, dass es hier etwas gibt, das keine Antworten auf [* Zwei Daten mit JavaScript vergleichen *] (http://stackoverflow.com/questions/492994/compare-two-dates-with-javascript) enthält. – RobG

+0

Sie müssen entweder beenden, wenn die Datumsvalidierung fehlschlägt, oder die DB-Einfügung in den richtigen Bereich einfügen. Ich rate, dass Sie Ihren Datenbankcode unter dem IF-Block haben, so dass er immer feuert – Dys1

Verwandte Themen