我一直在这里和谷歌搜索如何从一开始就将我的所有MYSQL脚本更改为MYSQLI或PDO。问题是由于某种原因我无法理解,因为我没有经验,我不能做一个简单的会话工作。以下是我将要开始做的事情,因为我想学习新的MYSQLi:
我选择了注册表(我不会在公开场合使用它,我的网站仅供朋友使用,我选择的人不会成为会员,我会签名)
<?php
/* instantiate our class, and select our database automatically */
$sql = mysqli('localhost','user','password','database');
/*
let's assume we've just received a form submission.
so we'll receive the information, and we'll escape it
this step is not necessary, but why not.
*/
$name = $_POST['name'];
$age = $_POST['age'];
$email = $_POST['email'];
/* build the query, we'll use an insert this time */
$query = $sql->prepare("INSERT INTO `tablename` VALUES ('?','?','?');");
/*
bind your parameters to your query
in our case, string integer string
*/
$query->bind_param("sis",$name,$age,$email);
/* execute the query, nice and simple */
$query->execute();
?>
这对我来说很容易理解,现在我找不到用户登录的好例子,我找到的所有示例都来自专家开发人员,他们主要创建如此复杂的脚本,我甚至不需要它。已经安装了很多现成的例子,感觉它们并不是很好。
我一直在等待和寻找并每天12小时搜索一周是:
我希望用户只需登录,然后脚本会有这样简单的东西:
PAGE START
HELLO <PHP ECHO USERNAME> <PHP ECHO AGE> <PHP ECHO ANYTHING FROM DB>
THANKS
<?php
ELSE
IF USER IS NOT LOGGED IN
REDIRECT TO THE PAGE NOTMEMBER.PHP
?>
PAGE END
为什么呢?因为这是我用来在MYSQL中编码的简单方法,所有站点结构都是这样的。
示例或演示网站也会有所帮助。
非常感谢
答案 0 :(得分:1)
我建议您学习 PDO(PHP数据对象)而不是 MySQLi ,因为PDO支持 12个不同的数据库驱动程序,而MySQLi仅支持MySQL数据库。
要了解 PDO 和 MySQLi 之间的 差异 ,请访问PDO vs. MySQLi: Which Should You Use? >
要了解 PDO ,请访问这个非常好的教程 -
1。Why you Should be using PHP's PDO for Database Access
2。PHP Database Access: Are You Doing It Correctly?
答案 1 :(得分:0)
你的桌子也需要有一个密码栏。
HTML登录表单:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="text" name="email" />
<input type="text" name="password" />
<input type="submit" name="submit" value="Log in" />
</form>
在PHP文件中抓住它:
if(isset($_POST['submit'])) {
$email = $_POST['email'];
$pass = $_POST['password'];
if($email != '' && $pass != '') { //both not empty, proceed
$checkUser = $sql->prepare("SELECT * FROM `users` WHERE `email` = ? AND `pass` = ?");
$checkUser->bind_param('ss', $email, $pass);
$checkUser->execute();
if($checkUser->num_rows() > 0) { //if user exists with given email and pass
$_SESSION['logged-in'] = 1;
}
}
}
确保将session_start();
放在每个PHP文件的顶部。然后你只需使用
if($_SESSION['logged-in'] == 1) {
echo 'this is for logged in users';
} else {
header("Location: notMember.php");
exit();
}