2016-12-06 3 views
-1

Gestern habe ich eine Frage über ein Problem mit meiner Login-Seite, die ich kürzlich auf einen Live-Server hochgeladen hatte, im Grunde, die Seite wurde nur neu geladen, und nichts zu tun. Die Frage ist hier als Referenz:php isset funktioniert nicht in if-Anweisung

Login script not working on live server

Nach dem, was scheint wie immer versuchen, das Problem herauszufinden, ich hatte die Form auf eine andere Seite zu senden, um die PHP ohne isset zu laufen, um dies herauszufinden, und es funktioniert gut. Ich habe herausgefunden, was das Problem verursacht, verstehe aber nicht warum.

Ich möchte nicht meinen gesamten Code von isset zu etwas anderem ändern müssen, wenn es nicht notwendig ist ... könnte es verschiedene Versionen von PHP sein? Mein Localhost ist 5.6.15 und der Live-Server ist 5.6.13. Ich hätte nicht gedacht, dass es so einen Unterschied gemacht hätte.

Als Referenz hier ist der Code (es ist auch in der vorherige Frage enthält):

<?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'); ?> 

gesamten Code in der vorherige Frage enthalten ist ... arbeitet auf localhost, aber nicht auf Live-Server. Ich versuchte auch !empty und && !empty, aber keine Arbeit, aber arbeitet in der unterschiedlichen Akte mit keiner wenn isetset Aussage.

+0

Wie immer: Sie müssen die relevanten Teile Ihres Codes zur Frage hinzufügen. Wie sonst erwarten Sie, dass wir antworten? – arkascha

+0

Nun, was ist dann falsch? Ich sehe ein paar seltsame Dinge in dieser anderen Frage. –

+0

es funktioniert auf meinem localhost wie beabsichtigt, und wenn ich das Formular an eine andere Datei senden, um das Skript ohne das if isetset auszuführen, funktioniert es, meldet mich an und leitet mich zu index.php weiter ... gibt es ein Problem mit der Verwendung von isset ? –

Antwort

0

ok ... Ich habe festgestellt, was das Problem ist, nachdem ich das PHP-Handbuch auf isset gelesen habe, einen var_dump usw. ausgeführt habe, es gab false auf $ _POST ['login'] zurück, was ich denke, mit es einen Knopf und kein Eingang zu sein, lief das gleiche Skript, aber geändert

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

zu:

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

und es funktioniert, wie es sollte.

+0

isset ($ _ POST ['login']) sollte funktionieren, wenn Sie die Schaltfläche wie definiert haben - geben Sie ihr sowohl einen Namen als auch einen Wert . Ohne einen Wert zugewiesen würde der Browser es mit einem scheinbaren Wert (aber nicht in der Post gesendet) von "submit" – ivanivan