2014-03-30 36 views
0

感谢您的答案! 我得到了很多反馈,我有一个答案,我修好了。谢谢!MySQL函数不工作

我正在为我的网站制作用户登录系统。我希望更新速度更快,因此我将确切的文件移至本地服务器(Apache/2.2.22(Ubuntu)),并且它突然不起作用。数据库是外部的,所以它不需要更改主机名。有任何想法吗?我没有得到任何错误,它只是不解析MySQL位。

连接文件:

<?php 
    $host = "xxxxxxx.xxxxxxxxx.xx.xx"; 
    $user = "sh0u_xxxxxx"; 
    $pass = "xxxxx"; 
    $db = "sh0u_1xxxxx_store"; 
    mysql_connect($host,$user,$pass) or die("Unable To Connect To Database"); 
    mysql_select_db($db) 
?> 

登录文件:

<?php 
    session_start(); 
    session_destroy(); 
    include('connect.php'); 
    $email = $_POST['email']; 
    $pass = md5($_POST['password']); 
    $query = mysql_query("SELECT * FROM users WHERE email='".$email."' AND password='".$pass."'"); 
    $numrows = mysql_num_rows($query); 
    if($numrows === 1) { 
     session_start(); 
     $_SESSION['sid'] = "".$email.":".$pass.""; 
     header('Location:../index.php'); 
    }else { 
     include('../login.php'); 
     echo "<script>alert('Incorrect Username and/or Password');</script>"; 
    } 
?> 
+1

我不认为你应该建立一个到数据库服务器的http连接。 – andrewsi

+0

你运行的是什么版本的PHP? – putvande

+0

没有它也不行。 – user3478443

回答

0

大多数托管提供商不允许他们有他们的计划数据库的外部访问。不仅如此,它们中的大多数都使用本地主机作为数据库服务器来强制套接字连接(这样它们甚至可以完全禁用与其数据库的网络连接)。

要在本地测试脚本和站点,您需要下载数据库的转储并自行创建本地版本。

与您的代码

其他问题在注释中提到你:

  • 你应该使用MySQL Improved Extension,而不是旧的(和不建议使用)MySQL扩展
  • 你不消毒您使用的查询数据(使用准备好的语句)
  • MD5对密码不安全,您应该使用新的而不是
+0

那么,这可能会有所帮助。我如何在我的Ubuntu CPU上安装MySql? – user3478443

+0

'sudo apt-get install mysql-server' – Toote