php - 使用 HTML 和 PHP 时无法将电子邮件插入 MySQL 表

标签 php html mysql

我有以下 HTML 表单。

<!DOCTYPE html>
<meta charset="UTF-8">
<html>
<head>
<title>Registreerimine</title>
</head>
<body>
<strong>Registreerimiseks täida järgnevad väljad: </strong><br>
<br>
<form method="POST" action="registreerimine3.php">
<table>
<tr><td>Sinu Tieto e-maili aadress: </td><td><input type="text" name="email"></td></tr>
<tr><td>Eesnimi: </td><td><input type="text" name="eesnimi"></td></tr>
<tr><td>Perekonnanimi: </td><td><input type="text" name="perekonnanimi"></td></tr>
<tr><td>Parool: </td><td><input type="text" name="parool"></td></tr>
<tr><td>Parool uuesti: </td><td><input type="text" name="parooluuesti"></td></tr>
</table>
<br>
<input type="submit" value="Registreeri">
</form>
</body>
</html>

以及以下 PHP 代码:

<?php

$con = mysql_connect("localhost","root","password");

if (!$con)

  {

  die('Could not connect: ' . mysql_error());

  }

 mysql_select_db("tieto", $con);


$email = mysql_real_escape_string($_POST['email']);
$eesnimi = mysql_real_escape_string($_POST['eesnimi']);
$perekonnanimi = mysql_real_escape_string($_POST['perekonnanimi']);
$parool =  $_POST['parool'];
$parool_uuesti =  $_POST['parooluuesti'];

$salt = rand(1000000,99999999);
$hashed_pwd = sha1('$parool'.$salt);
$sql="INSERT INTO kasutajad6 (email, eesnimi, perekonnanimi, parool, salt ) VALUES ('$email','$eesnimi', '$perekonnanimi', '$parool', '$salt')";

 if (!mysql_query($sql,$con))

  {

  die('Error: ' . mysql_error());

  }

echo "Kasutaja loodud";

 mysql_close($con)

?>

当我尝试将 HTML 表单中的数据插入 MySQL 数据库时,我收到以下消息:

Notice: Undefined index: email in C:\xampp2\htdocs\registreerimine\registreerimine3.php on line 17

除了电子邮件之外,我需要的一切都在数据库中。 我的数据库是使用以下 SQL 命令创建的:

mysql> create table kasutajad6 ( userID int(9) NOT NULL auto_increment,email var
char(45) NOT NULL, eesnimi varchar(45) NOT NULL, perekonnanimi varchar(45) NOT N
ULL, parool varchar(45), salt int(8), PRIMARY KEY(userID));
Query OK, 0 rows affected (0.73 sec)

奇怪的是,有一段时间一切都工作正常,但我更改了一些代码,它就不再工作了。即使我撤消更改。

这是一个很长的问题,如果有人回答我,我将非常感激。

最佳答案

未设置变量时会发生此错误。检查变量 $email 是否设置(使用 isset())并执行以下 link .

我发现您尚未命名用于提交表单的输入标记。给它起个名字 <input type='submit' name='submit' value='Registreeri'>并将用于插入值的整个脚本放入 if(isset($_POST['submit'])) {} 中其中,submit 是分配给输入(提交)标记的名称。

关于php - 使用 HTML 和 PHP 时无法将电子邮件插入 MySQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22813677/

相关文章:

jquery - jQuery 中的 slideDown() 是否不适用于 body 和 html 元素?

MySQL 从具有一行的表中选择

php - 如何在 prestashop 的产品页面上显示自定义表格字段

用于 double 的 PHP 模数运算符

javascript - Polymer CSS 内联元素对齐

html - 'display: block; float: left' 与 'display: inline-block; float: left' 之间的区别?

php - 更好的写法?增速?

mysql - 如何处理不同的答案类型

javascript - PHP:strtotime 崇敬返回奇怪的日期?

JavaScript 从 target=_blank 提交的表单中检索窗口句柄