为什么当我使用mamp运行php代码时没有显示任何内容


why is nothing displaying when I run my php code using mamp

我创建了一个页面,其中有一张显示jQuery的图像幻灯片。我还有一个搜索,用户可以从数据库中搜索房子,这个代码可以找到。当我在中添加php代码以允许用户登录并尝试运行它时,页面显示为空白,为什么会这样?

这是我的代码

session_start();
  include "connect.php";
  if (isset($_POST['username']) and isset($_POST['password'])){
$username = $_POST['username'];
$password = $_POST['password'];
$query = ($con "SELECT * FROM login WHERE username='$username' and password= '$password'");
$result = mysqli_query($query) or die(mysqli_error());
$count = mysqli_num_rows($result);
if ($count == 1){
$_SESSION['username'] = $username;
}else {
echo "Invalid Login Credentials.";
}
if (isset($_SESSION['username'])){
$username = $_SESSION['username'];
echo "Hello " . $username . "";
echo "This is the Members Area";
echo "<a href='logout.php'>Logout</a>";
}
?>

首先,您没有将连接传递到查询,并且缺少一个大括号。

if (isset($_POST['username']) and isset($_POST['password']))应该封装整个PHP。

旁注:使用$con作为连接变量的参数。

<?php
session_start();
  include "connect.php";
  if (isset($_POST['username']) and isset($_POST['password'])){
$username = $_POST['username'];
$password = $_POST['password'];
$query = "SELECT * FROM login WHERE username='$username' and password='$password'";
$result = mysqli_query($con, $query) or die(mysqli_error());
$count = mysqli_num_rows($result);
if ($count == 1){
$_SESSION['username'] = $username;
}else {
echo "Invalid Login Credentials.";
}

if (isset($_SESSION['username'])){
$username = $_SESSION['username'];
echo "Hello " . $username . "";
echo "This is the Members Area";
}
} // closing brace for if (isset($_POST['username']) and isset($_POST['password']))
echo "<a href='logout.php'>Logout</a>";
?>

我注意到你可能在以纯文本存储密码。如果是这样的话,我们强烈反对。

我建议您使用CRYPT_BLOWFISH或PHP 5.5的password_hash()函数。对于PHP<5.5使用CCD_ 4。