Что я пытаюсь сделать, это вставить данные кредитной карты из формы в мою базу данных mysql. Прежде всего, Формат ввода для даты истечения срока действия будет MM/YY
(с или без пробелов) в форме, и я пытаюсь выполнить строку "20"
в год, но в результате я всегда получаю "20 YY"
, что не может быть признанный из mysql как дата.от php string до mysql date
Я хочу получить дату истечения срока годности, чтобы она соответствовала формату, поэтому позже ее можно изменить в формате MySQL. Есть идеи?
Это мой код до сих пор:
<?php
$cc_number="";
$cc_expire="";
$cc_cvc="";
$cc_number=$_POST['number'];
$cc_expire=$_POST['expiry'];
$cc_cvc=$_POST['cvc'];
$cc_pid=$_SESSION['pid'];
/*edit the expire date*/
$pieces=explode("/", $cc_expire);
$expire_dd="01";
$expire_mm=$pieces[0];
$expire_yy="20".$pieces[1];
$expire_yy=trim($expire_yy, "\x00..\x1F");
//$cc_expire = $expire_yy.$expire_mm.$expire_dd;
//$cc_expire = date('Y-m-d', strtotime(str_replace('-', '/', $cc_expire)));
echo "expire_yy = ".$expire_yy;
//echo "cc_expire = ".$cc_expire;
if (isset($_POST["submit"])) {
if (empty($cc_number) || empty($cc_cvc) || empty($cc_expire)) {
echo "<p align='center'><font color='red'><br><br><br><br>All fields are mandatory.</font></p>";
}
else {
$cc_expire = date('Y-m-d', strtotime($cc_expire));
$sql = "INSERT INTO credit_card (credit_card_number, cvc, expiration_date, pid)
VALUES ('$cc_number', '$cc_cvc', '$cc_expire', $cc_pid)";
if ($dbconn->query($sql)) {
//echo "<script> window.location.assign('../card.php'); </script>";
}
else {
echo "<p align='center'><font color='red'><br><br><br><br>Something went wrong.</font></p>";
}
}
}
?>
Я хочу, чтобы все карты, чтобы получить дату формат MySql, который будет 01-MM-YYYY.
Что выводит 'print_r ($ _ POST);'? – AnkiiG
Формат даты Mysql - yyyy-mm-dd, а не '01-MM-YYYY'. Что такое 'expiration_date', varchar? Что такое '$ cc_expire' в вашем примере кода? Вы также открыты для инъекций SQL с этим .. – chris85