[英]PHP/MySQL - Update Database/Run PHP Script on Button Click
我在PHP中有一个“注册”页面,我希望在单击HTML按钮时运行该脚本。
PHP基本上检查是否所有字段都已填满,检查密码和电子邮件确认是否相同并保存到数据库。
这是代码:
<?php
$Name = isset($_POST['Name']);
$Surname = isset($_POST['Surname']);
$Username = isset($_POST['Username']);
$Email = isset($_POST['Email']);
$C_Email = isset($_POST['C_Email']);
$Password = isset($_POST['password']);
$C_Password = isset($_POST['c_password']);
$SecQ = isset($_POST['SecQ']);
$SecA = isset($_POST['SecA']);
$con = mysql_connect('localhost', 'admin', 'storefile1234');
mysql_select_db ("storefile");
$check_username = mysql_query("SELECT FROM users WHERE username = '$Username'");
$check_email = mysql_query("SELECT FROM users WHERE Email = '$Email'");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
if ($Name == null || $Surname== null || $Username == null || $Password == null || $C_Password == null || $Email == null || $C_Email == null || $SecQ == null || $SecA == null ) {
echo "Missing details. Please enter all fields.";
} else {
if(mysql_num_rows($check_username) != 0 && mysql_num_rows($check_email) != 0)
{
echo "Username/Email already exists";
}
if ($Email == $C_Email && $Password == $C_Password) {
$query = "INSERT INTO users (Username, Name,Surname, Password, Email, SecQ, SecA) VALUES ('NULL', ".$Username."', ".$Name."', ".$Surname."', ".$Password."', ".$SecQ."', ".$SecA."', ".$Email.')"';
mysql_query($query) or die ('Error registering.');
echo "Greetings, ".$Name.", you have been registered. ";
} else {
echo "Error registering your account. Please try again.";
}
}
?>
还有,推荐吗?
每当我运行此页面时Missing details. Please enter all fields.
Missing details. Please enter all fields.
显示,没有输入任何细节。
你怎么做到这一点?
你想通过isset($_POST['Username']);
获取值isset($_POST['Username']);
并喜欢这个功能......
但是文档说: Returns TRUE if var exists and has value other than NULL, FALSE otherwise.
所以检查true
,坚果null
。 然后转发你的POST数据。
你可以这样做:
$Name = isset($_POST['Name']) ? mysql_real_escape_string($_POST['Name']) : null;
PS请再次。 不要使用mysql_*
函数。 他们已被弃用 。
看看PDO (或mysqli_*)
你误用isset
尝试这样的事情:
$Name = null;
if (isset($_POST['Name'])) {
$Name = $_POST['Name'];
}
isset
仅用于检查是否设置了值。
有关在首次加载页面时打印该消息的问题,请使用array_key_exists函数测试用户是否已经提交了某些内容,然后再检查是否有任何字段为空。 像这样的东西:
if (array_key_exists('Name', $_POST) || array_key_exists('Surname', $_POST) || ... )
if ($Name == null || $Surname== null || ... )
echo "Missing details. Please enter all fields.";
观察:你不能将isset函数用于同一目的,因为根据php文档,它“确定变量是否设置且不是NULL ”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.