php/mysql:信用卡验证是';行不通
我试图使这个程序,采取一个信用卡号码,并检查它是否有效,并让用户知道它,但在我的程序中,我没有得到回显消息在所有点击提交php/mysql:信用卡验证是';行不通,php,html,Php,Html,我试图使这个程序,采取一个信用卡号码,并检查它是否有效,并让用户知道它,但在我的程序中,我没有得到回显消息在所有点击提交 <?php session_start(); if (isset($_POST['submit'])){ $number=$_POST['cc']; $total=0; $i=1; $last4= substr($number,-4,4); $number=$str_split($number); $number=arra
<?php
session_start();
if (isset($_POST['submit'])){
$number=$_POST['cc'];
$total=0;
$i=1;
$last4= substr($number,-4,4);
$number=$str_split($number);
$number=array_reverse($number);
foreach($number as $digit){
if(i%2==0){
$digit*=2;
if($digit>9){
$digit -=9;
}
}
$total += $digit;
$i++;
}
if($total%10==0){
echo "Your credit card number ending in ".$last4." is valid";
}
else
{
echo "Your credit card number ending in ".$last4." is invalid";
}
}
?>
<html>
<head>
<title>Credit Card Number</title>
</head>
<body>
<form action="cards.php">
<input type="text" name="cc">
<input type="submit" name="submit">
</form>
</body>
</html>
信用卡号码
让我们一步一步地看一下
首先,以下条件永远不会得到满足,因为您正在对一个表单使用POST数组,而该表单中(特别地)不包含“POST”方法
由于表单在未暗示“POST”时默认为“GET”方法,因此需要包含它
<form action="cards.php" method="post">
需要删除它:
$number= str_split($number);
然后我们有以下错误(也从注释中提取并声明):
未定义常数i的使用-假定为“i”
这是由于中的“i”(i%2==0)
缺少$
,并且首先在$i=1;
中声明
它查找了一个同名的,但由于没有找到,所以它向您抛出了那个错误
因此,应改为:
if($i%2==0)
在PHP中捕获post参数时,在表单标记中指定method,例如method='post'。NikunjSardhara现在我收到通知:未定义变量:第8行C:\xamppp\htdocs\cpu5001\cards.PHP中的str_split。致命错误:函数名必须是第8行C:\xamppp\htdocs\cpu5001\cards.PHP中的字符串。我很好奇,这是活动的吗?如果是,在SSL?t下他看起来非常危险的$str_split是错误的,应该是str_split。@Fred ii-lol不,我只需要为我的作业做这个。创建信用验证表格。谢谢你,顺便说一句,我有另一个问题,我希望你能帮助我?我不能在这里发布,因为我必须等待90分钟,但我真的需要我的答案:/现在验证工作,但什么时候我尝试将卡号输入我的phpmyadmin数据库,它显示0或array@DavidAdam不客气,大卫。开火吧,我看看我能做什么。$my_query=“插入
卡(否,用户名,信用卡,到期日期,持卡人姓名,国家/地区)值(空,“$ids”、“$number”、“$expiray”、“$carden”、“$country”)";这是我把它添加到我的数据库中的内容..我在C:\xamppp\htdocs\cpu5001\cards.php中得到一条关于数组到字符串转换的通知38@DavidAdam如果看不到完整的代码,我就无能为力了。请使用错误报告以及查询本身检查错误。因为您处理的是数组,所以有些地方不对劲,和/或未被视为数组。看到此$expiray
表明存在拼写错误;$expiry
可能吗?您可能需要等待并发布另一个问题。请确保db列类型正确且长度足够长,我能为您做的就是David。
$number= str_split($number);
if($i%2==0)