2016-05-31 105 views
-5

我已经创建了使用php的基本登录。我已经修好了我以前的错误感谢您的帮助,但我现在在线路36上接收到新的错误:如何在PHP中调试“调用未定义的函数session_register()”?

电话/应用程序/ XAMPP/xamppfiles/htdocs中/游戏开发/ checklogin未定义功能了session_register()。 php on line 36

我不知道为什么。有想法该怎么解决这个吗?

<?php 

      ob_start(); 
      $host="localhost"; // Host Name 

      $username="root"; // Mysql Username 

      $password=""; // Mysql Password 

      $db_name="DylansDB"; // Database Name 

      $tbl_name="members"; 

      // Connect to server and select databse. 
      mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
      mysql_select_db("$db_name")or die("cannot select DB"); 

      // Define $myusername and $mypassword 
      $myusername=$_POST['myusername']; 
      $mypassword=$_POST['mypassword']; 

      // To protect MySQL injection 
      $myusername = stripslashes($myusername); 
      $mypassword = stripslashes($mypassword); 
      $myusername = mysql_real_escape_string($myusername); 
      $mypassword = mysql_real_escape_string($mypassword); 
      $sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'"; 
      $result=mysql_query($sql); 

      // Mysql_num_row is counting table row 
      $count=mysql_num_rows($result); 

      // If result matched $myusername and $mypassword, table row must be 1 row 
      if($count==1){ 

      // Register $myusername, $mypassword and redirect to file "login_success.php" 
      session_register("myusername"); 
      session_register("mypassword"); 
      header("location:login_success.php"); 
      } 
      else { 
      echo "Wrong Username or Password"; 
      } 
      ob_end_flush(); 
    ?> 
+3

停止使用** mysql _ **方法。他们被弃用和不安全。切换到mysqli_ *或PDO! – Peon

+0

现在不推荐使用原始MySQL扩展,并在连接到数据库时生成E_DEPRECATED错误。而是使用MYSQLi或PDO_MySQL扩展。 – JYoThI

+0

您的查询包含许多错误 –

回答

-1
$host="localhost"; // Host Name 

$username="root"; // Mysql Username 

$password=""; // Mysql Password 

$db_name="DylansDB"; // Database Name 

    $tbl_name="members"; // Table Name 
+0

尽管此代码可能会回答问题,但提供 有关_why_和/或_how_的其他上下文,它将回答 该问题将显着提高其长期值 。请[编辑]你的答案,添加一些解释。 –

+0

我修复了上面的问题。我现在在第36行接收到一个致命错误 - '调用未定义函数session_register()在/ Applications/XAMPP/xamppfiles/htdocs/game development/checklogin.php on line 36'我不知道为什么。有想法该怎么解决这个吗? –

+0

session_register deprecated.use session_start(); $ _SESSION [ '名为myUsername'] = $名为myUsername; –

-1

原来的MySQL扩展现在已经过时,并连接到数据库时,会产生E_DEPRECATED错误。而是使用MYSQLi或PDO_MySQL扩展。

使用mysqli的准备语句来避免SQL注入

1)检查您的MySQL用户权限

<?php 

     session_start(); 

     global $conn; 

     $servername = "localhost"; //host name 

     $username = "username"; //username 

     $password = "password"; //password 

     $mysql_database = "dbname"; //database name 

    //mysqli prepared statement 

     $conn = mysqli_connect($servername, $username, $password) or die("Connection failed: " . mysqli_connect_error()); 

     mysqli_select_db($conn,$mysql_database) or die("Opps some thing went wrong"); 



     // Define $myusername and $mypassword 
     $myusername=$_POST['myusername']; 
     $mypassword=$_POST['mypassword']; 

     // To protect MySQL injection 
     $myusername = stripslashes($myusername); 
     $mypassword = stripslashes($mypassword); 
     $myusername = mysql_real_escape_string($myusername); 
     $mypassword = mysql_real_escape_string($mypassword); 

     $tbl_name="members"; // Table name 


     $stmt = $conn->prepare("SELECT * FROM $tbl_name WHERE username=? and password=? "); 

      $stmt->bind_param('ss',$myusername,$mypassword); 

      $stmt->execute(); 
      $get_result =$stmt->get_result(); 

      $row_count= $get_result->num_rows; 

      if($row_count>0) 
      { 

       // If result matched $myusername and $mypassword, table row must be 1 row 
       $final_result =$get_result->fetch_assoc(); 

       $_SESSION['myusername']=$final_result['username']; 

       header("location:login_success.php"); 
       exit(); 

      } 
      else 
      { 
       echo "Wrong Username or Password"; 
      } 

      $stmt->close(); 
      $conn->close(); 


     ob_end_flush(); 
     ?> 
+0

可以接受的有效理由 – JYoThI

+0

因为您认为用户必须是'root'(点1),所以投票才是可接受的。 – Progrock

+0

我说的必须是根? – JYoThI

0

没有功能session_register()了;它已从PHP 5.3.0弃用,并从PHP 5.4.0完全删除,according to the official documentation.您应该使用超全局的$_SESSION[]

您还有评论中提到的所有问题。

相关问题