PHPBB登录脚本

标签 php mysql html authentication

在尝试了大家给我的所有帮助后,我遇到了另一个问题,当我单击登录表单上的“登录”时,它显示: 页面没有正确重定向 Firefox 已检测到服务器正在以永远不会完成的方式重定向对此地址的请求。 现在我承认我不是脚本专家,但这是我能找到的关于如何在外部站点上使用 phpbb 论坛数据库的唯一脚本。所以我的问题是我要向您展示的所有 .php 文件有什么问题以及如何修复它们?

登录.php

<?php

//ob
ob_start();

//session
session_start();

if (isset($_SESSION['username']))
{
header("Location: main.php");
exit();
}

//connect
$error = 'Zaoby Database ERROR! connection failture!';
mysql_connect('localhost','root','') or die ($error);
mysql_select_db('phpbbtest') or die($error);

//include functions.php php script
require 'forums/includes/functions.php';

if (isset($_POST['login'])) 
{
 //get form data
 $username = addslashes(strip_tags(strtolower($_POST['username'])));
 $password = addslashes(strip_tags($_POST['password'])); 

 if (!$username||!$password)
 echo "please enter a username and password<p />";
 else
 {
  //find username
  $find = mysql_query("SELECT * FROM phpbb_users WHERE username_clean='$username'");
  if (mysql_num_rows($find)==0)
  echo "username not found<p />";
  else
  {
  while ($find_row = mysql_fetch_assoc($find))
  {
  // grab password hash for user
  $password_hash = $find_row['user_password'];
  }

  $check = phpbb_check_hash($password, $password_hash);
  if ($check==FALSE)
  echo "Incorrect password<p />";
 else if ($check==TRUE)
 {
  $_SESSION['username']=$username;
  header("Location: main.php");
  exit();
 }

  }
 }
}
?>

<form action="login.php" method="POST">
Username:<br />
<input type="text" name="username"><p />
Password:<br />
<input type="password" name="password"><p />
<input type="submit" name="login" value="Log in">
</form>

main.php

<?php

//ob
ob_start();

//session
session_start();

$session_username = $_SESSION['username'];

if (!isset($_session_username))
{
 header("Location: login.php");
exit();
}
else
{
echo "hello, ".$_session_username." <a href='logout.php'>Log out</a>";
}
ob_end_flush();
?>

注销.php

<?php

session_start();
session_destroy();

header("Location: login.php")

?>

P.S 在我关于这个问题的最后一个问题中,有人提出了一些关于使用 MySQLi 而不是 mysql_query 的内容,并且我应该在某处放置一个 ob_end_flush

最佳答案

尝试使用ob_start();就在之后

例如<?php ob_start();

关于PHPBB登录脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16788764/

相关文章:

php - 多个表和查询

mysql - 具有玩家排名(和周围玩家)的快速 mySQL 排行榜

html - 全局类 CSS 中的文本阴影覆盖

javascript - 点击事件并不总是触发

html - 除了单个元素外,我网站上的所有内容都针对移动设备正确调整了大小,但我不明白为什么?

php - 如何在不损失图像质量的情况下从 JPG 中删除 exif?

php - 用什么替换 HTTP_GET_VARS?

mysql - sql中如何进行嵌套排序?

MySql 在使用带有模式的函数 WEEK() 时返回错误

php - 如何使用mysql停止php中的空组