2016-07-13 8 views
-3

Ich konnte eine mysteriöse Sache nicht lösen und gerade jetzt habe ich es irgendwie gelöst, also möchte ich dich fragen, wo das Problem war.PHP - gleiche Dinge andere Ausgabe (wenn sonst)

erster Code, den ich schrieb, war dies ein und es funktioniert nicht:

<?php 
    if(! isset($_SESSION['user'])) 
    { 
?> 
    <main> 
     <div class="container"> 
      <form class="login" method="post" action="../login/login.php"> 
       <input type="text" placeholder="Username" name="username"/><br> 
       <input type="text" placeholder="Password" name="password"/><br> 
       <?php 
        if(isset($_SESSION['error'])) 
         echo $error; 
       ?> 
       <input type="submit" value="Login" name="submit"/><br> 
      </form> 
     </div> 
    </main> 
<?php } ?> 

<?php else 
     { 
      unset($_SESSION['error']); 
?> 
    <header> 
     <div class="container"> 
      <h1>PHP Quizzer</h1> 
     </div> 
    </header> 

    <main> 
     <div class="container"> 
      <h2>This is a PHP quizzer.</h2> 
      <p>This is a multiple choice quiz to test your knowledge of PHP</p> 
      <ul> 
       <li><strong>Number of Questions: </strong></li> 
       <li><strong>Type: </strong>Multiple Choice</li> 
       <li><strong>Estimated Time: </strong></li> 
      </ul> 
      <a href="questions.php?n=1" class="start">Start Quiz</a> 
     </div> 
    </main> 
<?php } ?> 

und den zweiten Code, den ich gerade geschrieben habe, ist derjenige, der arbeitet, und ich weiß nicht, warum:

<?php 
    if(! isset($_SESSION['user'])) 
    { 
?> 
    <main> 
     <div class="container"> 
      <form class="login" method="post" action="../login/login.php"> 
       <input type="text" placeholder="Username" name="username"/><br> 
       <input type="text" placeholder="Password" name="password"/><br> 
       <?php 
        if(isset($_SESSION['error'])) 
         echo $error; 
       ?> 
       <input type="submit" value="Login" name="submit"/><br> 
      </form> 
     </div> 
    </main> 
<?php } 
    else 
     { 
      unset($_SESSION['error']); 
?> 
    <header> 
     <div class="container"> 
      <h1>PHP Quizzer</h1> 
     </div> 
    </header> 

    <main> 
     <div class="container"> 
      <h2>This is a PHP quizzer.</h2> 
      <p>This is a multiple choice quiz to test your knowledge of PHP</p> 
      <ul> 
       <li><strong>Number of Questions: </strong></li> 
       <li><strong>Type: </strong>Multiple Choice</li> 
       <li><strong>Estimated Time: </strong></li> 
      </ul> 
      <a href="questions.php?n=1" class="start">Start Quiz</a> 
     </div> 
    </main> 
<?php } ?> 

Können Sie mir sagen, wo war das Problem? Die einzige Sache, die ich tat, ist, dass ich } und else{ unset($_SESSION['error'])) in der Mitte des Codes fusionierte.

BEARBEITEN: Erster Code gibt komplett leere Seite aus. Der zweite Code gibt genau das aus, was im Code geschrieben ist.

+0

Wenn Sie einen Dienst wie Bitbucket.com und SourceTree-Anwendung verwenden, werden Sie nach Speichern/Commits wissen, wo der Code für Situationen wie diese geändert wurde. – Kray

+0

@Levi Danke, ich werde das versuchen. – scarface

+0

Kein Problem. Bitbucket.com ist ähnlich wie Github, so dass Sie Optionen haben können. Bitbucket erlaubt jedoch freie private Repositories, so dass es aus Budgetgründen schön ist. – Kray

Antwort

2

Meine Vermutung ist durch Schließen}?> Sie geben dann Whitespace und dann das else-Schlüsselwort. Es wäre zu

if (condition) { 
    // do stuff 
} 
print ' '; 
else { .... 

ähnlich sein, die keinen Sinn

+0

Nicht wirklich, aber etwas ähnliches. Es gibt nicht wirklich Leerzeichen aus. Ich denke, dass es nur eine Frage der Syntax ist. – scarface

+0

Ja, es gibt Leerzeichen aus. Alles zwischen?> Und svn

1

Die oben genannten Code macht, kann man nicht den Wert der Session-Variablen „user“ gesetzt haben. Aus diesem Grund wird auf der Seite immer der Benutzeranmeldungsseitenabschnitt angezeigt. Der korrekte Code wird unten erwähnt.

<?php 
ob_start(); 
session_start(); 

if(isset($_REQUEST["submit"]) === true) { 
    $_SESSION['user'] = trim($_REQUEST["username"]); 
} 

?> 
<!doctype html> 
<html> 
    <head> 
    <title>Example</title> 
    </head> 
    <body> 

    <?php 
     if(! isset($_SESSION['user'])) 
     { 
    ?> 
     <main> 
      <div class="container"> 
       <form class="login" method="post" action=""> 
        <input type="text" placeholder="Username" name="username"/><br> 
        <input type="text" placeholder="Password" name="password"/><br> 
        <?php 
         if(isset($_SESSION['error'])) 
          echo $error; 
        ?> 
        <input type="submit" value="Login" name="submit"/><br> 
       </form> 
      </div> 
     </main> 
    <?php } 
     else 
      { 
       unset($_SESSION['error']); 
    ?> 
     <header> 
      <div class="container"> 
       <h1>PHP Quizzer</h1> 
      </div> 
     </header> 

     <main> 
      <div class="container"> 
       <h2>This is a PHP quizzer.</h2> 
       <p>This is a multiple choice quiz to test your knowledge of PHP</p> 
       <ul> 
        <li><strong>Number of Questions: </strong></li> 
        <li><strong>Type: </strong>Multiple Choice</li> 
        <li><strong>Estimated Time: </strong></li> 
       </ul> 
       <a href="questions.php?n=1" class="start">Start Quiz</a> 
      </div> 
     </main> 
    <?php } ?> 


    </body> 
</html>