繁体   English   中英

HTML注册表格不保存数据在MySQL

[英]html sign up form not saving data in mysql

我写了一个非常基本的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);

在页面中插入数据后,当我单击“提交”按钮时,它将向我显示code_exec.php文件的代码,而不是将数据存储在MySQL中。

我确实看到了几个有关此的StackOverflow帖子,但是似乎没有一个可以为我的问题提供有效的解决方案。

为什么会这样呢?

介绍

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

  1. XAMPP无法正常工作,或者;
  2. 您没有导航到网址127.0.0.1的文件。

由于您已经确认XAMPP正在运行,因此我将介绍最有可能的情况二。

您没有导航到网址为127.0.0.1的文件

在XAMPP安装的内部,您应该找到一个名为htdocs的文件夹。 该文件夹应包含您创建的所有网站及其所有 PHP代码-它充当Web服务器的根目录(如果使用专用服务器,则它等效于/var/www/html/ )。 服务器仅处理该文件夹中包含的文件。

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

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

转到URL 127.0.0.1localhost来访问本地托管的网站。 仅当XAMPP运行时,您才能在计算机上访问此文件,并且它会在htdocs文件夹中显示文档。 您可以在该列表中选择一个文件来访问它,该文件现在应该在您的Web服务器上运行。

摘要

从现在开始,使用本地Web服务器上的文件应该相当容易。 当然,您的代码中仍然可能存在PHP错误(我迅速检查了它-一切似乎都很好,但是我可能错过了一些东西)-如果是这种情况,并且您陷入调试的困境,您总是可以询问另一个关于StackOverflow的问题!

另外,您应该能够运行XAMPP来访问127.0.0.1/phpmyadmin/ ,以通过Web界面管理MySQL表和数据库。

请注意,在这种情况下,您不能使用php内置服务器。 因为您的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");

尝试像这样建立连接:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM