Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 赢得的数据';不能从HTML表单传递到数据库_Php_Html_Mysql_Forms - Fatal编程技术网

Php 赢得的数据';不能从HTML表单传递到数据库

Php 赢得的数据';不能从HTML表单传递到数据库,php,html,mysql,forms,Php,Html,Mysql,Forms,我是PHP新手,不知道自己做错了什么。我可以打开html表单并提供数据,但当我点击submit时,它会显示php代码,并且数据库(显然)没有更新。我已经尝试过通过phpMyAdmin手动将值插入表中,并且效果很好。我在网上看过,但我的语法看起来不错。我做错什么了吗?如果错误不太明显,是否有有效的调试方法(即查看错误) 我有这个HTML代码 <head> <meta http-equiv="content-type" content="text/html; charset=iso

我是PHP新手,不知道自己做错了什么。我可以打开html表单并提供数据,但当我点击submit时,它会显示php代码,并且数据库(显然)没有更新。我已经尝试过通过phpMyAdmin手动将值插入表中,并且效果很好。我在网上看过,但我的语法看起来不错。我做错什么了吗?如果错误不太明显,是否有有效的调试方法(即查看错误)

我有这个HTML代码

<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<title>Hotel Start Page</title>
</head>

<body>
<form action="customerCreate.php" method="post">
<fieldset><legend>Enter your information in the form below:</legend>
<header align="center">   <b>Customer Sign Up</b></header>
<p><b>Surname:            </b><input type="text" name="surname" size="30" maxlength="40"/></p>
<p><b>Name:               </b><input type="text" name="name" size="30" maxlength="40"/></p>
<p><b>E-mail:             </b><input type="text" name="email" size="30" maxlength="40"/></p>
<p><b>Telephone:          </b><input type="text" name="tel" size="30" maxlength="10"/></p>
<p><b>Password:           </b><input type="password" name="passwd" size="30" maxlength="10"/></p> 
</fieldset>
<div align="center"><input type="submit" name="submit" value="Create Account"/></div>
</form>

</body>

如果您得到php代码,则必须是您的应用程序不在web服务器中,因此浏览器会下载源文件。您应该将您的文件复制/同步到(可能)
/var/www/html


查看此项:

那么,是否出现了任何错误?1。您需要在数据库调用和2中添加错误处理。您不需要进行另一个-sql可注入数据库查询来获取最后一个插入行的ID。您不应该存储纯文本密码,而是对其进行加密和散列。您的Web服务器中是否安装并配置了PHP?@RiggsFolly是的,安装并配置了PHP。然后,您的PHP脚本的文件名是否以
.PHP
扩展名结尾?如果您使用了
.html
或其他任何东西,则不会从您的链接调用PHP“如果您的PHP代码显示在浏览器中,则表示您的服务器尚未设置为提供PHP脚本”,而不是“您的应用程序不在web服务器中”。但是,很好的链接,所以+1“应用程序不在您的web服务器中”部分在最后一节中进行了解释:pIn对@RiggsFolly注释问题的响应,OP回答“是的,PHP已安装并配置”PHP可以安装和配置(通常在某些页面中使用phpinfo()输出进行检查)但是不在服务器中的应用程序与此无关。。。因此,我的回答恐怕我不明白“应用程序不在服务器上”——如果“应用程序”是他的PHP文件,那么它就在服务器上,因为他在试图执行它时看到了它。
<?php

 $host = 'localhost';
 $username = 'root';
 $password = '';
 $db = 'my_hotel';

 $conn = new mysqli($host,$username,$password,$db);

if ($conn->connect_error) {
  die("Connection Error: " .$conn->connect_error);
}

$sname = $_POST['surname'];
$name = $_POST['name'];
$email = $_POST['email'];
$tel = $_POST['tel'];
$passwd = $_POST['passwd'];

$sql = "INSERT INTO Customer (sname, name, email, tel, passwd) VALUES 
(?,?,?,?,?)";

$stmt = $conn->prepare($sql);
$stmt->bind_param("sssss",$sname,$name,$email,$tel,$passwd);
$stmt->execute();

$cid = "SELECT cid FROM Customers WHERE sname='$sname' AND passwd='$passwd' ";
$result = $conn->query($cid);
$row = $result->fetch_assoc();

echo "Customer Added.<br>";
echo "Your Customer ID is ".$row['cid'];

$stmt->close();
$conn->close();

?>
CREATE TABLE Customer (
   cid INT AUTO_INCREMENT,
   sname VARCHAR(15),
   name VARCHAR(15),
   email VARCHAR(15),
   tel VARCHAR(15),
   passwd VARCHAR(15),
   PRIMARY KEY (cid)
);