我在尝试将工作变成php时遇到了麻烦。这是代码:
<?php
$host = "localhost";
$user = "ff";
$pass = "ff";
$db = "ff";
$login = mysqli_connect ($host,$user,$pass,$db);
if (!$login) die ("Connection Error to Database <br/>". mysqli_error());
$username = $_POST["username"];
$password = $_POST["password"];
$result = mysqli_query($login, "SELECT * FROM users WHERE username = '$username'");
if($row = mysqli_fetch_array($result))
{
if($row["password"] == $password)
{
session_start();
$_SESSION['username'] = $username;
header("Location: ../index.php");
}
else
{
?>
<script>
alert("Wrong password");
location.href = "../login.html";
</script>
<?
}
}
else
{
?>
<script>
alert("Wrong username");
location.href = "../login.html";
</script>
<?
}
mysqli_free_result($result);
mysqli_close();
?>
使用localhost没有任何错误,但上传到我的服务器的内容如下:
"The website detected an error in http://****/php/validate.php http://****/php/validate.php. blablabla"
php尝试连接到双重URL(抱歉我的英文不好)。
我做错了什么?
答案 0 :(得分:1)
很可能在您的生产服务器上,它不允许您使用短标签(<?
),就像您在输出Javascript的区域中使用的那样。您的本地服务器可能允许这些,所以您不会注意到。
您应该在此处使用标头重定向,并附带消息或在会话中,并在另一页上输出该消息,但这是另一个问题。
将<?
更改为<?php
以确保。