开发者

PHP login authenication

<?php
 session_start();

 if($_GET["log"] == "out") {
 session_unset();
 session_destroy();
 echo "done";
 }
 $username = $_POST["user_login"];
 $password = $_POST["user_pass"];

 if($_SESSION['LoggedIn']) {
 $_SESSION['LoggedIn'] = 1;
 $_SESSION['user_login'] = $username;
 $_SESSION['user_pass'] = $password;
 echo $_SESSION['user_login']."<br />".$_SESSION['user_pass'];
 $ftp_server = "127.0.0.1";
 $gName = $_GET["name"];

 require_once "ftp.class.php";
 $ftp =& new FTP();

 if ($ftp->connect($ftp_server)) {
  if ($ftp->logi开发者_StackOverflown($_SESSION['user_login'],$_SESSION['user_pass'])) {
   echo "\n".$ftp->sysType() . "\n";
   echo $ftp->pwd() . "\n";
   if($gName)
   $ftp->chdir("$gName");
   else
   $ftp->chdir("Downloads");
   print_nice($ftp->nlist());
   echo "\n";
  } else {
   echo "login failed: ";
   print_r($ftp->error_no);
   print_r($ftp->error_msg);
  }
  $ftp->disconnect();
  print_r($ftp->lastLines);
 } else {
  echo "connection failed: ";
  print_r($ftp->error_no);
  print_r($ftp->error_msg);
 }
}
else
{
?>
<form method="POST" style="margin: 20px 10px; padding: 15px 25px 25px 20px; border: 1px solid #EEE8E1; background: #FAF7F5;"> 
    <p>Login Form</p>
   <?php echo $_SESSION['user_login']."<br />".$_SESSION['user_pass']; ?>
    <p> 
     <label for="name">Username</label><br />
     <input id="name" name="user_login" value="" type="text" tabindex="97" />
    </p>

    <p>
     <label for="email">Password</label><br />
     <input id="email" name="user_pass" value="" type="password" tabindex="98" />
    </p>

    <p><input type="checkbox" value="1" name="rmb"> Remember Me <br /><a href="#">Forgot Password</a><br /><a href="index.php?page=register">Don't have an Account?</a></p>

    <p class="no-border">
    <input class="button" name="submit" type="submit" value="Submit" tabindex="14" />
           <input class="button" type="reset" value="Reset" tabindex="15" /> 
    </p>
<?php
}
?>


Maybe you can first check whether it is login or not:

if(isset($_SESSION['LoggedIn']) &&$_SESSION['LoggedIn']==1)
{
   // proceed to do the login stuff
}
else if (isset($_POST['submit'])) 
{
    $username = $_POST["user_login"];
    $password = $_POST["user_pass"];

    $_SESSION['LoggedIn'] = 1;
    $_SESSION['user_login'] = $username;
    $_SESSION['user_pass'] = $password;
    // some coding about ftp login
}
else
{
}


Try

if ((isset($_POST['submit'])) OR ($_SESSION['LoggedIn'] == 1)) {

  // Logged in stuff...

}


Did you add a check for if the user was already logged in?

if (isset($_POST['submit']) || (isset($_SESSION['LoggedIn']) && $_SESSION['LoggedIn'])) 


Change first line with this:

if (isset($_POST['submit']) || (isset($_SESSION['user_login']) && $_SESSION['user_login'] != '') 
{


I dont use sessions but you can use like this

if (isset($_POST['submit']))  {
     //....
}

if($_SESSION['LoggedIn']) {
    //actual coding
}


I tend to do a check to see if there's a logged in session present then redirect to the main content for the user (ie. page.php) or show you the login box if you need to log in, I have a similar thing (only redirect to login.php or show content) for all other log in requiring pages as an include on so that it constantly checks that you're meant to be logged in or not and send you to login if you need to, stops you going to page.php and seeing nothing.


You need to call session_start(); on the first line of each page.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜