为我的业余问题而烦恼。我编写了这段代码,用于从输入中获取文本并添加到数据库中:
<html xmlns="http://www.w3.org/1999/xhtml" lang="fa">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>My Title</title>
</head>
<body>
<form action="" method="POST">
<label for="name" id="app_name_label" >name</label>
<input type="text" name="name" id="name_textfield">
<input type="submit" name"Submit" value="send" >
</form>
<?php
if(isset($_POST['Submit']))
{
include_once("config.php");
$con = mysql_connect($db_host,$db_user,$db_pass)
or die(mysql_error());
$selected=mysql_select_db($db_name, $con)
or die(mysql_error());
if($selected){
$name = $_REQUEST['name'];
$ins = "INSERT INTO infos (app_name ) VALUES ('$name')";
$saved=mysql_query($ins );
if($saved)
{
echo "Saved!!";
}
else
{
echo "Don't Saved!!";
}
}
mysql_close($con);
}
?>
</body>
</html>
我的数据库没有任何问题
但是当我运行它时,没有任何写入我的数据库! :( 我该怎么办?
我认为问题出在isset($_POST['Submit'])
。
答案 0 :(得分:1)
如果其他一切都没问题,那么我担心您的代码中会出现一个简单的拼写错误。
<input type="submit" name"Submit" value="send" >
应该是
<input type="submit" name="Submit" value="send" >
你错过了等号在姓名后登录你的代码。 :)
在旁注中,您不应使用$_REQUEST['name']
,而是在发布表单方法时使用$_POST['name']
。它更安全。其次,尝试使用mysqli数据库扩展而不是使用mysql。从PHP 5.5开始,不推荐使用mysql扩展。
答案 1 :(得分:1)
为了您的信息,更好地使用正文上方的php标记并显示会话错误,以及为什么在执行submition之后你会包含include_once(&#34; config.php&#34;)而不是在加载实际文件时?这里的脚本与你想要实现的目标相同,但处理要好得多。
<?php
include_once("config.php");
if (isset($_POST['Submit'])){
$err = array();
$name = $_POST['name'];
if(!$name){
$err[] = 'All fields required';
}
if(!count($err)){
$name = mysql_real_escape_string($name); //Make sure you escape unwanted chars
$row = mysql_fetch_assoc(mysql_query("INSERT INTO infos (app_name ) VALUES ('$name')"));
if(mysql_affected_rows() == 1)
{
$_SESSION['msg']['succ'] = 'Sent!';
header("Location: index.php");
} else{
$_SESSION['msg']['err'] = 'Noooooo!';
}
}
?>
<html xmlns="http://www.w3.org/1999/xhtml" lang="fa">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>My Title</title>
</head>
<body>
<form action="" method="POST">
<?php
// Lets output message
if($_SESSION['msg']['err'])
{
echo $_SESSION['msg']['err'];
unset($_SESSION['msg']['err']);
}
if($_SESSION['msg']['succ'])
{
echo $_SESSION['msg']['succ'];
unset($_SESSION['msg']['succ']);
}
?>
<label id="app_name_label">Name</label>
<input type="text" name="name" id="name_textfield">
<input type="submit" name="Submit" value="send">
</form>
</body>
</html>