Jump to content

Recommended Posts

Hello,

 

I made this login script from some book that uses cookies to log a registered user in. It consists of login.php, and 2 include files. It works, but the thing is i wanna rewrite it so that it is all one file (login.php) WITHOUT using custom functions in order to understand it better.

 

I have tried to rewrite it on my own but failed and cannot figure it out. can someone help out?

 

Here are the working scripts:

 

login_functions.inc.php

<?php

  function check_login($dbc, $email = '', $pass = '') {
  
  if (empty($email)) {
  
     $errors[] = "you didnt enter EMAIL<br />";
 }
 else {
 $e = trim($email);
 }

 if (empty($pass)) {

    $errors[] = "Didnt enter PASS<br />";
	}
	else {
	$p = trim($pass);
	}

	if (empty($errors)) {

	   $q = "SELECT user_id, first_name FROM users WHERE email='$e' AND pass=SHA1('$p')";
	   
	   $r = mysqli_query($dbc, $q);
	   
	   if (mysqli_num_rows($r) == 1) {
	   
	      $row = mysqli_fetch_array($r);
		  
		  return array(true, $row);
		  
		  } else {
		  echo "Youre not in the DB";
		  }
		  
		  }
		  
		  
		  return array(false, $errors);
		  }
		  ?>

 

login_page.inc.php

 


<?php

if (!empty($errors)) {

echo "The following errors occured<br />";

foreach ($errors as $msg) {
  
   echo $msg."<br />";
   }
   }
   
   
   ?>
   
   <h1>Login</h1>
   
   <form action="login.php" method="post">
   <p>Email address <input type="text" name="email" /></p>
   
   <p>Password <input type="text" name="pass" /></p>
   
   <p><input type="submit" name="submit" /></p>
   
   </form>

 

and login.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>

<?php

if (@$_POST['submit']) {

   require_once('includes/login_functions.inc.php');
   
   require_once('db_connect.php');
   
   list ($check, $data) = check_login($dbc, $_POST['email'], $_POST['pass']);
   
   if ($check) {
   
      setcookie('user_id', $data['user_id']);
  
  setcookie('first_name', $data['first_name']);
  
  header("Location: index.php");
  
  exit();
  
  }
  
  else {
  $errors = $data;
  }
  
  }
  include('includes/login_page.inc.php');
  ?>
      









</body>
</html>


 

All of that works, but i would like to have it all in one file without custom funcstions as i have already said, so  i tried to write it as:

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>

<?php

if ($_POST['submit']) {

   require_once('db_connect.php');
   
   if (empty($_POST['email'])) {
   
      echo "didnt enter email";
  } else {
  $e = trim($_POST['email']);
  }
  
if (empty($_POST['pass'])) {

   echo "Didnt enter pass";
   } else {
   $p = trim($_POST['pass']);
   
   }
   
   
   if (@$e && @$p) {
   
      $q = "SELECT user_id, first_name FROM users WHERE email='$e' ANd pass=SHA1('$e')";
	  $r = mysqli_query($dbc, $q);
	  
	  if (mysqli_num_rows($r) == 1) {
	  
	     $row  = mysqli_fetch_array($r);

		 } else {
		 echo "youre not in the db";
		 }
		 }
		 }//end of if post submit
		  
		  
		 //How do i rewrite the following ?
		 $data = ($dbc, $_POST['email'], $_POST['pass']);

		  if ($data) {
   
      setcookie('user_id', $data['user_id']);
  
  setcookie('first_name', $data['first_name']);
  
  header("Location: index.php");
  
  exit();
  
  }
  
  ?>
  <h1>Login</h1>
   
   <form action="login.php" method="post">
   <p>Email address <input type="text" name="email" /></p>
   
   <p>Password <input type="text" name="pass" /></p>
   
   <p><input type="submit" name="submit" /></p>
   
   </form>

		    


		 ?>
</body>
</html>

 

But i messed up on line 49 (which i knew would happen  :'( )

 

So can someone help me with this one ?

 

Thanks

Link to comment
https://forums.phpfreaks.com/topic/165530-solved-cant-rewrite-a-working-script/
Share on other sites

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>

<?php

if ($_POST['submit']) {

   require_once('db_connect.php');
   
   if (empty($_POST['email'])) {
   
      echo "didnt enter email";
     } else {
     $e = trim($_POST['email']);
     }
     
   if (empty($_POST['pass'])) {
   
      echo "Didnt enter pass";
      } else {
      $p = trim($_POST['pass']);
      
      }
      
      
      if (@$e && @$p) {
      
         $q = "SELECT user_id, first_name FROM users WHERE email='$e' ANd pass=SHA1('$e')";
        $r = mysqli_query($dbc, $q);
        
        if (mysqli_num_rows($r) == 1) {
        
           $row  = mysqli_fetch_array($r);
          
          } else {
          echo "youre not in the db";
          }
      }
   }//end of if post submit
           
           
   if (empty($email)) {
  
     $errors[] = "you didnt enter EMAIL<br />";
    }
   else {
    $e = trim($email);
   }
    
   if (empty($pass)) {
    
      $errors[] = "Didnt enter PASS<br />";
   }
   else {
       $p = trim($pass);
   }
      
   if (empty($errors)) {
  
     $q = "SELECT user_id, first_name FROM users WHERE email='$e' AND pass=SHA1('$p')";
     
     $r = mysqli_query($dbc, $q);
     
     if (mysqli_num_rows($r) == 1) {
     
        $row = mysqli_fetch_array($r);
       
       $data=array(true, $row);
       
     } else {
        echo "Youre not in the DB";
        $data= array(false, $errors);
     }
   }
            
           if ($data) {
   
      setcookie('user_id', $data['user_id']);
     
     setcookie('first_name', $data['first_name']);
     
     header("Location: index.php");
     
     exit();
     
     }
     
     ?>
     <h1>Login</h1>
   
   <form action="login.php" method="post">
   <p>Email address <input type="text" name="email" /></p>
   
   <p>Password <input type="text" name="pass" /></p>
   
   <p><input type="submit" name="submit" /></p>
   
   </form>
         
            
         
         
          ?>
</body>
</html>



This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.