2014-12-09 4 views
-3

Помогите пожалуйста!Звонок на неопределенную функцию session_register() line 15

HTML код & PHP:

<?php 

    if ($_POST['email']) { 

     //Connect to the database through our include 
     include_once "connect_to_mysql.php";    
     $email = stripslashes($_POST['email']); 
     $email = strip_tags($email); 
     $email = mysql_real_escape_string($email);   
     $password = ereg_replace("[^A-Za-z0-9]", "", $_POST['password']); // filter everythnumbers and letters 
     $password = md5($password);   
     $sql = mysql_query("SELECT * FROM members WHERE email='$email' AND password='$password' AND emailactivated='1'"); 
     $login_check = mysql_num_rows($sql); 
     if($login_check > 0){ 
      while($row = mysql_fetch_array($sql)){ 
       $id = $row["id"]; 
       session_register("id"); 
       $_SESSION['id'] = $id;     
       $username = $row["username"]; 
       session_register("username"); 
       $_SESSION['username'] = $username; 
       mysql_query("UPDATE members SET lastlogin=now() WHERE id='$id'"); 
       header("location: member_profile.php?id=$id"); 
       exit(); 
      } 
     } else { 
      print '<br /><br /><font color="#FF0000">No match in our records, try again </font><br /><br /><a href="login.php">Click here</a> to go back to the login page.'; 
      exit(); 
     } 

    } 
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<title>Login to your profile</title> 
<script type="text/javascript"> 
    <!-- Form Validation --> 
    function validate_form () { 
     valid = true; 
     if (document.logform.email.value == "") { 
      alert ("Please enter your User Name"); 
      valid = false; 
     } 
     if (document.logform.pass.value == "") { 
      alert ("Please enter your password"); 
      valid = false; 
     } 
     return valid; 
    } 
    <!-- Form Validation --> 
</script> 
</head> 
<body> 
    <div align="center"> 
     <h3><br /><br />Log in to your account here<br /><br /></h3> 
    </div> 
    <table align="center" cellpadding="5"> 
     <form action="login.php" method="post" enctype="multipart/form-data" name="logform" id="logform" onsubmit="return validate_form ();"> 
      <tr> 
       <td class="style7"><div align="right">Email Address:</div></td> 
       <td><input name="email" type="text" id="email" size="30" maxlength="64" /></td> 
      </tr> 
      <tr> 
       <td class="style7"><div align="right">Password:</div></td> 
       <td><input name="password" type="password" id="password" size="30" maxlength="24" /></td> 
      </tr> 
      <tr> 
       <td>&nbsp;</td> 
       <td><input name="Submit" type="submit" value="Login" /></td> 
      </tr> 
     </form> 
    </table> 
</body> 
</html> 
+0

Тьфу это сглаженным, и техника его подводит позвольте мне запостить – OldGoldie

+0

Помощь с чем? Пожалуйста, дайте [Как задать хороший вопрос] (http://stackoverflow.com/help/how-to-ask) прочитанное. – skrrgwasme

+0

Пожалуйста, [не используйте 'mysql_ *' функции] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php), они больше не поддерживаются и [официально устарели] (https://wiki.php.net/rfc/mysql_deprecation). Узнайте о [подготовленных заявлениях] (http://en.wikipedia.org/wiki/Prepared_statement) и используйте [PDO] (http://us1.php.net/pdo) или [MySQLi] (http: // us1.php.net/mysqli).Prevent SQL Injection!] (http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) –

ответ

0

Согласно PHP документации относительно функции session_register():

Предупреждение: Эта функция была устаревшей, так как PHP 5.3.0 и удалены с PHP 5.4.0.

Там нет эффективности в то, что вы делаете, вместо этого, просто назначить так:

while($row = mysql_fetch_array($sql)){ 
     $_SESSION['id']  = $row["id"]; 
     $_SESSION['username'] = $row["username"]; 
     mysql_query("UPDATE members SET lastlogin=now() WHERE id='".$row["id"]."'"); 
     header("location: member_profile.php?id=".$row['id']); 
     exit(); 
    } 

Кроме того, как все остальные уже упоминалось, лучше не использовать mysql_ как это ТАКЖЕ осуждается.

Для справки (session_register()): http://php.net/manual/en/function.session-register.php

Для справки (PDO Database Library): http://php.net/manual/en/pdo.connections.php

+0

пока мы на нем , ereg_ * также лишается> = 5.3 – birdspider

Смежные вопросы