所以,我用 PHP 从 scracth 建立了一个网站,并使用 WAMP 服务器进行测试。
一切都在本地主机上运行,但是在将代码上传到服务器后,使用数据库连接的一切都不起作用。
我检查了 php 中的 POST 是否在服务器上运行,并且它正在运行,我php.ini
在谷歌搜索后更改了一些配置,我已经这样做了:
register_globals = off; (was default)
allow_url_fopen = on; (was default)
magic_quotes_gpc = off; (was default)
表格代码
http://i.imgur.com/k5kMx9N.png
类内的登录功能
function LoginUser($UserName, $Password)
{
//Protect from SQL Injection
$clientusername = stripslashes(mysql_real_escape_string($UserName));
$clientpassword = stripslashes(mysql_real_escape_string($Password));
$clientusername = trim($clientusername);
$clientpassword = trim($clientpassword);
if($clientusername != "" && $clientusername != "Username" && $clientpassword != "" && $clientpassword != "Password")
{
$this->ConnectToMySQL();
$sql = "SELECT * FROM Users WHERE UserName = '" . $clientusername . "' AND Password = '" . $clientpassword . "'";
$result = mysqli_query($this->DBConnection, $sql);
mysqli_close($this->DBConnection);
// Mysql_num_row is counting table row
$count = mysqli_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count == 1){
if(!isset($_SESSION))
session_start();
$row = mysqli_fetch_array($result);
$_SESSION['ID'] = session_id();
$_SESSION['timeout'] = time();
session_write_close();
return("O seu login foi feito com sucesso.</br></br><a href='privatemenu.php'>Ir para o Menu</a>");
}
else return("Não foram encontrados utilizadores com os dados fornecidos.</br></br><a href='login.php'>Voltar á pagina de Login</a>");
}
else return("Ocorreu um erro com a entrada dos seus dados.</br></br><a href='login.php'>Voltar á pagina de Login</a>");
}
所以,问题是这样的,该函数总是在登录函数中返回文本“Ocorreu um erro com a entrada dos seus dados”。
我编写登录数据,按下按钮登录,帖子正在工作我已经使用相同的表单进行了测试,并在另一个页面上从表单中回显帖子,但如果该功能从未通过该功能。
任何帮助将不胜感激,因为我认为这不是来自函数,我有另一个只在数据库中插入并且做完全相同的事情。奇怪的是数据正确地通过页面传递。
如果对此有任何困惑,请问我,以便我更好地解释。
因此,感谢 Paddyd,这里的正确代码完全有效:
function LoginUser($UserName, $Password)
{
//Protect from SQL Injection
$this->ConnectToMySQL();
$clientusername = stripslashes(mysqli_real_escape_string($this->DBConnection, $UserName));
$clientpassword = stripslashes(mysqli_real_escape_string($this->DBConnection, $Password));
$clientusername = trim($clientusername);
$clientpassword = trim($clientpassword);
if($clientusername != "" && $clientusername != "Username" && $clientpassword != "" && $clientpassword != "Password")
{
$sql = "SELECT * FROM Users WHERE UserName = '" . $clientusername . "' AND Password = '" . $clientpassword . "'";
$result = mysqli_query($this->DBConnection, $sql);
mysqli_close($this->DBConnection);
// Mysql_num_row is counting table row
$count = mysqli_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count == 1){
if(!isset($_SESSION))
session_start();
$row = mysqli_fetch_array($result);
$_SESSION['ID'] = session_id();
$_SESSION['timeout'] = time();
session_write_close();
return("O seu login foi feito com sucesso.</br></br><a href='privatemenu.php'>Ir para o Menu</a>");
}
else return("Não foram encontrados utilizadores com os dados fornecidos.</br></br><a href='login.php'>Voltar á pagina de Login</a>");
}
else return("Ocorreu um erro com a entrada dos seus dados.</br></br><a href='login.php'>Voltar á pagina de Login</a>");
}