首页 / PHP / 提交表单,mysql和php
提交表单,mysql和php
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了提交表单,mysql和php,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3905字,纯文字阅读大概需要6分钟。
内容图文
![提交表单,mysql和php](/upload/InfoBanner/zyjiaocheng/889/15e8cca8f98044d1a63caca6e7bca2c3.jpg)
我是php和sql以及所有这些东西的新手,我正在关于php的论坛上关于youtube的教程,并想知道为什么这段代码在提交表单时没有回应“成功”.我也想知道为什么它在我提交表格之前就会回复失败.我已成功连接到数据库.
<!DOCTYPE HTML>
<html>
<head>
<title>Register</title>
</head>
<body>
<form action="register.php" method="POST">
Username: <input type="text" name="username">
<br/>
Password: <input type="password" name="password">
<br/>
Confirm Password: <input type="password" name="confirmPassword">
<br/>
Email: <input type="text" name="email">
<br/>
<input type="submit" name="submit" value="Register"> or <a href="login.php">Log in</a>
</form>
</body>
</html>
<?php
require('connect.php');
$username = $_POST['username'];
$password = $_POST['password'];
$confirmPassword = $_POST['confirmPassword'];
$email = $_POST['email'];
if(isset($_POST["submit"])){
if($query = mysql_query("INSERT INTO users ('id', 'username', 'password', 'email') VALUES('', '".$username."', '".$password."', '".$email."')")){
echo "Success";
}else{
echo "Failure" . mysql_error();
}
}
?>
Connect.php
<?php
$connect = mysqli_connect("localhost", "root", "") or die("Could not connect to server!");
mysqli_select_db($connect, "php_forum") or die("Could not connect to database!");
?>
解决方法:
这里有一些问题.
您在列中使用了错误的identifiers(并且是引号):
('id', 'username', 'password', 'email')
删除它们
(id, username, password, email)
或使用反引号
(`id`, `username`, `password`, `email`)
mysql_error()应该抛出一个错误,但它没有因为:
>您将MySQL API与mysqli_混合连接,然后在查询中混合使用mysql_.
这两种不同的API不会相互混合.
使用mysqli_ exclusive并将您当前的查询更改为:
if($query = mysqli_query($connect, "INSERT...
并将mysql_error()更改为mysqli_error($connect)
作为该块的重写:
if(isset($_POST["submit"])){
if($query = mysqli_query($connect,"INSERT INTO users ('id', 'username', 'password', 'email') VALUES('', '".$username."', '".$password."', '".$email."')")){
echo "Success";
}else{
echo "Failure" . mysqli_error($connect);
}
}
只是为了测试错误,按照我上面的概述进行更改,同时按照现在的方式保留列的引号.然后,您将看到My??SQL将抛出的错误.然后,您可以执行上面已经概述的操作并删除列名称周围的引号,或者用反引号替换它们.
您看到的教程可能很好地使用了反引号,但可能无法区分足以让您告诉它们确实是反引号而不是单引号.
但是,您目前的代码对SQL injection开放.使用mysqli with prepared statements或PDO with prepared statements,它们更安全.
我注意到你可能用纯文本存储密码.如果是这种情况,则非常气馁.
我建议你使用CRYPT_BLOWFISH或PHP 5.5的password_hash()功能.对于PHP< 5.5使用password_hash() compatibility pack.
而且,而不是做:
$connect = mysqli_connect("localhost", "root", "") or die("Could not connect to server!");
mysqli_select_db($connect, "php_forum") or die("Could not connect to database!");
您应该检查错误,就像手册所述
$link = mysqli_connect("myhost","myuser","mypassw","mybd")
or die("Error " . mysqli_error($link));
> http://php.net/manual/en/function.mysqli-connect.php
所以在你的情况下:
$connect = mysqli_connect("localhost", "root", "","php_forum")
or die("Error " . mysqli_error($connect));
编辑:我将action =“register.php”更改为action =“”,因为您在同一页面内使用了整个代码.
<!DOCTYPE HTML>
<html>
<head>
<title>Register</title>
</head>
<body>
<form action="" method="POST">
Username: <input type="text" name="username">
<br/>
Password: <input type="password" name="password">
<br/>
Confirm Password: <input type="password" name="confirmPassword">
<br/>
Email: <input type="text" name="email">
<br/>
<input type="submit" name="submit" value="Register"> or <a href="login.php">Log in</a>
</form>
</body>
</html>
<?php
require('connect.php');
$username = $_POST['username'];
$password = $_POST['password'];
$confirmPassword = $_POST['confirmPassword'];
$email = $_POST['email'];
if(isset($_POST["submit"])){
if($query = mysqli_query($connect,"INSERT INTO users (`id`, `username`, `password`, `email`) VALUES ('', '".$username."', '".$password."', '".$email."')")){
echo "Success";
}else{
echo "Failure" . mysqli_error($connect);
}
}
?>
内容总结
以上是互联网集市为您收集整理的提交表单,mysql和php全部内容,希望文章能够帮你解决提交表单,mysql和php所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。