html注册表单不保存mysql中的数据

时间:2017-08-14 17:21:53

标签: php html mysql xampp

我写了一个非常基本的HTML注册表单:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Registration</title>
</head>
<body>

<form name="reg" action="code_exec.php" onsubmit="return validateForm()" method="post">
  <table width="274" border="0" align="center" cellpadding="2" cellspacing="0">
    <tr>
      <td colspan="2">
        <div align="center">
          <?php 
          // $remarks=$_GET['remarks'];
          if (!isset($_GET['remarks']))
          {
            echo 'Register Here';
          }
          if (isset($_GET['remarks']) && $_GET['remarks']=='success')
          {
            echo 'Registration Success';
          }
          ?>  
        </div></td>
      </tr>
      <tr>
        <td width="95"><div align="right">First Name:</div></td>
        <td width="171"><input type="text" name="fname" /></td>
      </tr>
      <tr>
        <td><div align="right">Last Name:</div></td>
        <td><input type="text" name="lname" /></td>
      </tr>
      <tr>
        <td><div align="right">Gender:</div></td>
        <td><input type="text" name="gender" /></td>
      </tr>
      <tr>
        <td><div align="right">Address:</div></td>
        <td><input type="text" name="address" /></td>
      </tr>
      <tr>
        <td><div align="right">Contact No.:</div></td>
        <td><input type="text" name="contact" /></td>
      </tr>
      <tr>
        <td><div align="right">Username:</div></td>
        <td><input type="text" name="username" /></td>
      </tr>
      <tr>
        <td><div align="right">Password:</div></td>
        <td><input type="text" name="password" /></td>
      </tr>
      <tr>
        <td><div align="right"></div></td>
        <td><input name="submit" type="submit" value="Submit" /></td>
      </tr>
    </table>
  </form>
</body>
</html>

我正在使用PHP将我的HTML页面连接到本地安装/配置的XAMPP服务器上的MySQL数据库。

我已将我的连接和数据存储逻辑划分为2个不同的.php文件:

connection.php

<?php
$mysql_hostname = "localhost";
$mysql_user = "amitesh";
$mysql_password = "amitesh";
$mysql_database = "sign_up_form";
$prefix = "";

$bd = mysqli_connect($mysql_hostname, $mysql_user, $mysql_password) or die("Could not connect database");
mysqli_select_db($mysql_database,$bd) or die("Could not select database");
?>

code_exec.php

<?php
session_start();

include('connection.php');

$fname=$_POST['fname'];
$lname=$_POST['lname'];
$mname=$_POST['mname'];
$address=$_POST['address'];
$contact=$_POST['contact'];
$username=$_POST['username'];
$password=$_POST['password'];

mysqli_query($bd, "INSERT INTO member(fname, lname, gender, address, contact, username, password)VALUES('$fname', '$lname', '$mname', '$address', '$contact','$username', '$password')");

header("location: index.php?remarks=success");

mysqli_close($bd);

在页面中插入数据后,当我点击&#34;提交&#34;它显示了code_exec.php文件的代码,而不是将数据存储在MySQL中。

我确实看到了几篇有关此内容的StackOverflow帖子,但它们似乎都没有为我的问题提供可行的解决方案。

为什么会发生这种情况?

3 个答案:

答案 0 :(得分:1)

简介

如果页面上显示<?php代码和实际网站代码,则只有两种情况:

  1. XAMPP无效,或;
  2. 您没有导航到网址127.0.0.1的文件。
  3. 由于您已确认XAMPP正在运行,我将介绍第二种情况,这是最有可能的。

    您没有导航到网址127.0.0.1

    的文件

    在XAMPP安装中,您应找到名为htdocs的文件夹。这个文件夹应该包含您所做的任何网站,以及所有的PHP代码 - 它充当您的网络服务器的根目录(如果您使用的是专用服务器,它相当于/var/www/html/)。服务器仅处理该文件夹中包含的文件。

    如果您的文件不在该文件夹中,请将其移入该文件夹中(并删除/移动到该目录中之前所有文件的其他文件夹)。

    接下来,您只能在网络浏览器中打开这些文件 - 您必须通过本地托管的网站导航到这些文件。

    转到网址127.0.0.1localhost访问您当地托管的网站。这只能在您的计算机上访问,而XAMPP正在运行,并且它会在htdocs文件夹中显示这些文档。您可以选择该列表中的文件来访问它,现在它应该在您的Web服务器上运行。

    摘要

    从现在开始,您可以非常轻松地使用本地Web服务器上的文件。当然,你的代码中仍然可能存在PHP错误(我快速检查过它 - 一切似乎都很好,但我可能错过了一些东西) - 如果是这样的话你会遇到调试问题,你总是可以问StackOverflow上的另一个问题!

    作为奖励,您应该能够在运行XAMPP的情况下访问127.0.0.1/phpmyadmin/,以通过Web界面管理您的MySQL表和数据库。

答案 1 :(得分:0)

  

请注意,在这种情况下你不能使用php builtin服务器。因为你的index.php文件不是前端控制器。将您的代码复制到XAMPP htdocs目录中,并使用localhost / your_directory_name url访问您的代码。

并注意您的connection.php文件中有错误。

在mysqli_select_db()函数中,第一个参数是mysqli链接,第二个参数是dbname。

替换

mysqli_select_db($mysql_database,$bd) or die("Could not select database");

mysqli_select_db($bd, $mysql_database) or die("Could not select database");

答案 2 :(得分:0)

尝试建立这样的连接:

Mysqli_connect($ mysql_hostname,$ mysql_user,$ mysql_password,$ mysql_database)或死(mysqli_error)