Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么我的代码只能在一台服务器上工作,而不能在另一台服务器上工作?_Php_Mysql - Fatal编程技术网

Php 为什么我的代码只能在一台服务器上工作,而不能在另一台服务器上工作?

Php 为什么我的代码只能在一台服务器上工作,而不能在另一台服务器上工作?,php,mysql,Php,Mysql,下面的代码在我的大学服务器上运行良好,但在我付费的私有服务器上不起作用 问题在于: header("Location: products.php"); } } else { echo "Invalid username or password!"; } 如果我输入了错误的名称/密码,代码将按预期进行回音。 但是如果用户正确地输入了他们的详细信息,那么什么也不会发生 我是PHP新手,所以我不知道从哪里开始进行故障排除,但我尝

下面的代码在我的大学服务器上运行良好,但在我付费的私有服务器上不起作用

问题在于:

            header("Location: products.php");
        }
    } else {
        echo "Invalid username or password!";
    }
如果我输入了错误的名称/密码,代码将按预期进行回音。 但是如果用户正确地输入了他们的详细信息,那么什么也不会发生

我是PHP新手,所以我不知道从哪里开始进行故障排除,但我尝试用echo替换“header”(“Location:products.PHP”);”,但仍然无效

我还考虑到PHPmyadmin服务器可能是不同的版本,或者字符编码可能会导致一些问题

这是完整的代码

任何帮助都将不胜感激

<?php

if(isset($_POST["submit"])){
    $user=$_POST['user'];
    $pass=$_POST['pass'];
    $username = "";
    $password = "";
    $hostname = ""; 
    $md5pass = md5($pass);

    //connection to the database
    $dbhandle = mysqli_connect($hostname, $username, $password);

    $con=mysql_connect($hostname, $username, $password) or die(mysql_error());
    $select=mysql_select_db("l1233156", $con) or die("cannot select DB");

    $query=mysql_query("SELECT * FROM login WHERE username='".$user."' AND password='".$md5pass."'");
    $numrows=mysql_num_rows($query);
    if($numrows!=0)
    {
        while($row=mysql_fetch_assoc($query))
        {
            $dbusername=$row['username'];
            $dbpassword=$row['password'];
        }

        if($user == $dbusername && $md5pass == $dbpassword)
        {
            session_start();
            $_SESSION['sess_user']=$user;

            /* Redirect browser */
            header("Location: products.php");
        }
    } else {
        echo "Invalid username or password!";
    }
}
?><!doctype html> 
<html>
<head>
<title>Login</title>
<link rel="stylesheet" href="main.css"/>
</head>
<body>
<div class="center">
<p><a href="register.php">Register</a> | <a href="login.php">Login</a></p>
<h3>Login Form</h3>
<form action="" method="POST">
Username: <input type="text" name="user"><br />
Password: <input type="password" name="pass"><br /> 
<input type="submit" value="Login" name="submit" />
</form>
</div>
</body>
</html>
-尝试使用元标记刷新-



我建议您查看日志,这可能是任何类型的错误。找到一些日志并将它们粘贴到您的问题中。您的服务器和其他服务器的URL是否可能具有不同的结构?例如,通过这种方式从/mysite/index.php重定向到/mysite/products.php可能会给您带来麻烦,而您可能希望它位于/products.php上。为什么您要同时使用
mysqli.*
mysql.*
函数?此外,您还非常容易受到SQL注入攻击。缩进代码使其可读也有助于发现逻辑错误。将会话_start()移到文档顶部。对不起,伙计们,我对PHP非常熟悉!如何查看正在发生的事情的日志?firefox和chromes inspect元素没有显示任何内容。我试过@jim他们提到的日志都在服务器上。假设服务器基于*nix,请尝试在命令提示符下执行
locate php.log
。该日志文件通常是您要查看的位置。再次假设*nix,如果您还没有了解
tail
命令,请了解
tail-f
<?php
if($user == $dbusername && $md5pass == $dbpassword)
{
session_start();
$_SESSION['sess_user']=$user;
?>
<html>
  <head>
    <META http-equiv="refresh" content="5;URL=/<?php echo 'products.php'; ?>">
  </head>
  <body>
  </body>
</html>
<?php
}
?>