这可能是一个愚蠢的问题,但我是新手(这是一个家庭作业^^),我找不到解决方案:) 我有一个带有html表单的.php文件以及一些用于执行查询的php代码,并在我的数据库中插入表单中的值。并且它可以工作,但是每次加载页面时都会执行php代码并且在DB中插入一个“空白”行,因为显然表单尚未填充。这是代码
<html>
<head>
<meta charset="utf-8">
<meta name="generator" content="AlterVista - Editor HTML"/>
<title></title>
</head>
<body>
<form action="myPage.php" method="post">
ID: <input type="text" name="id" /> <br />
<input type="submit" name="Submit" value="Go" /> <br />
</form>
<?php
$user = "DB";
$password = "";
$host = "";
$database = "my_DB";
$connessione = mysql_connect($host, $user, $password);
@mysql_select_db($database, $connessione) or die( "Unable to select database");
$id = $_REQUEST['id'];
$query = "INSERT INTO myTable (ID) VALUES ('".$id."')";
mysql_close();
?>
</body>
</html>
只有在执行表单上的“Go”按钮后才能执行php代码吗?
答案 0 :(得分:0)
PHP将在呈现页面之前工作。在提交表单之前,您需要设置一个条件来停止您不想运行的PHP。
if(isset($_POST['myform'])) {
// process the form
}else{
// html for form goes here
}
希望有所帮助。
答案 1 :(得分:0)
尝试:
if(isset($_POST['Submit'])) {
$user = "DB";
$password = "";
$host = "";
$database = "my_DB";
$connessione = mysql_connect($host, $user, $password);
@mysql_select_db($database, $connessione) or die( "Unable to select database");
$id = $_REQUEST['id'];
$query = "INSERT INTO myTable (ID) VALUES ('".$id."')";
mysql_query($query, $connessione);
mysql_close();
}
答案 2 :(得分:0)
假设表单指向脚本本身,有很多选项:)其中:
第一个示例只检查表单是否已过帐。如果收到正常(GET)请求,它将不执行任何操作,因为它不会落入您的if子句
// your form here
if($_SERVER['REQUEST_METHOD'] == 'POST') {
// your php code
}
此示例检查是否已发布名为“Submit”的变量,如果是,则表示其中是否包含值“Go”。这是一个稍微严格的检查,但在你当前的例子中行为是完全相同的(所以你几乎可以选择你最喜欢哪一个;)
// your form here
if(array_key_exists('Submit', $_POST) && $_POST['Submit'] == 'Go') {
// your php code
}