2016-12-06 8 views
-1

昨日、ログインページで問題が発生したことを昨日、ライブサーバーにアップロードしましたが、基本的にはページがリロードされていて、何もしていませんでした。質問は、参考のためにここにある:if文でphp issetが動作しない

Login script not working on live server

永遠に問題を把握しようとしているように思えるものをした後、私は、これを理解するために、ISSETなしでPHPを実行するために別のページにフォームを送信する必要がありましたそれはうまく動作します。問題の原因を見つけましたが、理由を理解できません。

私のコードをすべてissetから別のものに変更する必要はありませんが、PHPのバージョンが違うのですか?私のlocalhostは5.6.15で、ライブサーバーは5.6.13で、私はそれがこのような違いを作ったとは思わなかった。 ...

<?php 
session_start(); 
$page_title = "Love Deals Login"; 
require('../inc/connect/config.php'); 
if($user->is_loggedin()!="") { 
    header("Location: index.php"); 
} 

if(isset($_POST['login'])) { 
    $uname = $_POST['txt_uname']; 
    $upass = $_POST['txt_upass']; 

    if($user->login($uname,$upass)) { 
     header("Location: index.php"); 
    } else { 
     $error = "Login failed. Please try again, or register"; 
    } 
} 

include('inc/admin-header.php'); 
?> 
<div class="container" style="padding: 100px 0 0 0;"> 
<div class="form-container"> 
    <form method="post" id="login" action="form-test.php"> 
     <h3>Please login</h3> 
     <?php if(isset($error)) { ?> 
      <div class="alert alert-danger"> 
       <i class="glyphicon glyphicon-warning-sign"></i> &nbsp; <?php echo $error; ?> 
      </div> 
     <?php } else if(isset($_GET['joined'])) { ?> 
       <div class="alert alert-info"> 
        <i class="glyphicon glyphicon-ok"></i> &nbsp; Thanks! You are now registered. You may now login below 
       </div> 
     <?php } else if(isset($_GET['pass-update'])) { ?> 
       <div class="alert alert-info"> 
        <i class="glyphicon glyphicon-ok"></i> &nbsp; Success! Your password has been updated. You may now login below 
       </div> 
     <?php } ?> 
     <div class="form-group col-xs-12 col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3 login"> 
      <input type="text" class="form-control" name="txt_uname" placeholder="Username" required /> 
     </div> 
     <div class="form-group col-xs-12 col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3 login"> 
      <input type="password" class="form-control" name="txt_upass" placeholder="Password" required /> 
     </div> 
     <div class="clearfix"></div> 
     <div class="form-group col-xs-12 col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3 login"> 
      <p class="small text">Forgotten <a href="forgot-user.php">Username</a>/<a href="forgot-pass.php">Password?</a></p> 
      <button type="submit" name="login" class="btn btn-primary pull-right"> 
       <i class="glyphicon glyphicon-log-in"></i>&nbsp;Login</button> 
     </div> 
     <div class="col-xs-12 col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3" style="text-align: center;"> 
      <label>Don't have an account yet? <a href="agree.php">Register now</a></label> 
     </div> 
    </form> 
</div> 
</div> 
<?php include('inc/admin-footer.php'); ?> 

コードのすべてが前の質問に含まれているローカルホスト上ではなく、ライブサーバー上で動作します:ここに参考のため

コード(それはまた、前の質問に含まれている)です。私も!empty&& !emptyを試しましたが、動作しませんでしたが、ifetet文なしの別ファイルで動作します。

+0

いつものように、コードに関連する部分を質問に追加する必要があります。あなたは他にどんな答えを期待していますか? – arkascha

+0

さて、何が間違っていますか?私は他の質問にいくつか変わったことがあるのを見ました。 –

+0

これは意図したとおりに私のlocalhost上で動作し、ifetetを付けずにスクリプトを実行するためにフォームを別のファイルに送ると、動作し、ログインしてindex.phpにリダイレクトされます... isset ? –

答えて

0

ok ...私はissetのphpマニュアルを読んだ後、var_dumpなどを実行した後、$ _POST ['login']にfalseを返していました。それはボタンではなく入力され、同じスクリプトを実行したが、これに

if(isset($_POST['login'])) 

を変更:

if(isset($_POST['txt_uname'], $_POST['txt_upass'])) 

、それはそれが必要として動作します。

+0

のようなボタンが定義されている場合、isset($ _ POST ['login'])は動作します - 基本的には名前と何らかの値。値を指定しないと、ブラウザは「送信」の見かけの値(ただし投稿では送信されません)でレンダリングします。 – ivanivan

関連する問題