php - 使用 HTML 表单向 mysql 数据库发送空字符串
问题描述
总是评估为假,当if(isset($_POST['submit']) && !empty($_POST['submit']))
我摆脱 if 语句时,程序将空字符串发送到数据库的属性。我是 PHP 新手,所以我不确定将我的 php 代码段放置在 HTML 代码中的什么位置以及放置是否重要。任何帮助或建议将不胜感激。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name= "viewport" content="width=device-width">
<meta name= "descriptions" content="User friendly online animal shelter">
<meta name= "keywords" content="animal, shelter, animal shelter, dogs, cats, adoption, donation, pets">
<meta name= "author" content="">
<title>Animal Shelter | About</title>
<link rel="stylesheet" href= "./style.css">
</head>
<body>
<header>
<div class= "container">
<div id= "branding">
<h1><span class= "highlight">DJ's</span> Animal Shelter</h1>
</div>
<nav>
<ul>
<li><a href= "index.php">Home</a></li>
<li><a href= "about.php">About</a></li>
<li><a href= "login.php">Sign In</a></li>
</ul>
</nav>
</div>
</header>
<section id= "Create">
<div class="container">
<div class="dark">
<form>
<h1>Create Account</h1>
<div class="form-input">
<input type="text" name = "fname" placeholder="First Name"/>
</div>
<div class="form-input">
<input type="text" name = "lname" placeholder="Last Name"/>
</div>
<div class="form-input">
<input type="text" name = "username" placeholder="Username"/>
</div>
<div class="form-input">
<input type="email" name = "email" placeholder="Email"/>
</div>
<div class="form-input">
<input type="text" name = "phone_number" placeholder="Phone Number"/>
</div>
<div class="form-input">
<input type="password" name = "pwd" placeholder="Password"/>
</div>
<input type="submit" name="submit" value = "Create Account"/>
<nav id= "create">
<button type = "submit" class= "button_2"><a href= "login.php" style="color:white">Already Have An Account? Sign In!</a></button>
</nav>
</form>
</div>
</div>
</section>
<footer>
<p>DJ's Animal Shelter, Copyright © 2019</p>
</footer>
<!--Sending new profile data to database-->
<?php
// TODO: Add some sort of input validation if we have the time
if(isset($_POST['submit']) && !empty($_POST['submit']))
{
// Variables
$user = 'root';
$password = 'root';
$db = 'animal_shelter';
$host = 'localhost';
$first_name = $_POST['fname'];
$last_name = $_POST['lname'];
$phone_number = $_POST['phone_number'];
$email = $_POST['email'];
$username = $_POST['username'];
$pwd = $_POST['pwd'];
// Connect to database
$con = mysqli_connect($host, $user, $password, $db);
// Insert new profile in to database
$sql = "INSERT INTO profile (First_Name, Last_Name, Mobile_Number, Email, Username, Pwd, Join_Date)
VALUES ('$first_name', '$last_name', '$phone_number', '$email', '$username', '$pwd', NOW())";
if(!mysqli_query($con, $sql))
header('Location: error.php');
}
?>
</body>
</html>
解决方案
您需要定义您使用的方法。喜欢发布或获取。如果您未定义,则默认情况下将使用 get 。像这样使用
<form method="post" action="">
</form>
推荐阅读
- google-cloud-platform - 批处理或流处理的数据流部分中的 FlexRS 类型在哪里?
- c - 为什么 Valgrind 会给我这么多错误?
- python - 如何用矩阵制作一个大的三对角矩阵?
- r - 不为因子列运行的情况
- ldap - 在 Zeppelin 上使用 Shiro 进行身份验证:主要参数不能为空
- javascript - 常量 JSON 对象值在循环中更改,同时在 javascript 中动态创建新对象
- r - 食谱包无法在 step_interact 中创建交互项
- python - UnboundLocalError:分配前引用的局部变量“ff_cog”,未解决
- r - 将数据框拆分为嵌套数据框和矩阵的列表
- c++ - SDL_GetCurrentDisplayMode 未返回正确的窗口大小