2016-07-28 9 views
0

Ich habe diese Webseite HTML-Seite (. PHP-Datei), und irgendwann habe ich dieses PHP-Skript (Sehen Sie sich das onclick-Attribut der Eingabe, da das Problem dort dreht): Das vollständige PHP-Skript ist am unteren Rand auf dem Postweg.Zeichen ersetzt/entfernt, wenn im Browser ausgeführt wird?

<?php 
    require $_SERVER["DOCUMENT_ROOT"]."my-site/Database/db_connection.php"; 
    /*Some code was here.*/ 
    while($Student=$Result->fetch_row()){ 
     echo "<input class='Content_Link' id='".$Student[0]."' type='button' value='".$Student[1]." ".$Student[2]."' onclick='redirecter('.''.')'/>"; 
    } 
/*normally a url would be passed into redirecter. To simplify the code during debugging, 
I have removed the url*/ 
    mysqli_free_result($Result); 
    $Conn->close(); 
    /*a little more code*/ 
?> 

Die Schaltfläche korrekt angezeigt wird, aber ... Wenn die Taste gedrückt wird, erhalte ich ein unerwartetes Token}, einen ziemlich einfachen Fehler, bis ich den Code in meinem Text-Editor, um den Code in dem Browser vergleichen Entwicklerwerkzeug.

Darüber hinaus Adressierung der unerwarteten Token, nach gründlicher Überprüfung aller {} Paare im PHP-Skript und alle erforderlichen/enthaltenen Dateien innerhalb des Skripts (3 + Mal). Alle Paare sind berücksichtigt und abgeschlossen. Es wurden keine zusätzlichen Klammern gefunden.

Bisher habe ich die Website in Microsoft Edge, Google Chrome und Firefox versucht. Sie sind alle zeigen seltsame Dinge mit dem Onclick-Attribut:

Texteditor -

<input class='Content_Link' id='".$Student[0]."' type='button' value='".$Student[1]." ".$Student[2]."' onclick='redirecter('.''.')'/> 

(Mit den PHP-Werte gesetzt direkt in :)

<input class='Content_Link' id='2' type='button' value='Tyler Breau' onclick='redirecter('.''.')'/> 

Chrome -

<input class="Content_Link" id="2" type="button" value="Tyler Breau" onclick="redirecter(" .''.')'> 

Firefox -

<input id="2" class="Content_Link" value="Tyler Breau" onclick="redirecter(" .''.')'="" type="button"></input> 

Microsoft Edge (Weirdest von allen) -

<input class="Content_Link" id="2" onclick="redirecter(" type="button" .''.')'="" value="Tyler Breau" /> 

Die Unterschiede:

Bei

onclick='redirecter('.''.')'/> 

die Entwicklertools Browser angezeigten dies wie folgt gemeinsame Differenz:

onclick="redirector(" .''.')'> 

Die erste einzelne Quotation: 'in den Klammern wird durch eine doppelte Quo gefolgt von einem Leerzeichen gesetzt: ". Außerdem wird der Schrägstrich zum Beenden des Eingabe-Tags entfernt. '/> Wird zu'>

Firefox erhielt wenig Flippigere durch Zugabe = "" bis zum Ende des Redirecter:

"redirecter(" .''.')'="" 

Und Microsoft Edge noch flippig durch den type = Platzierung "Knopfes" in den Seiten die Redirecter-Klammern:

"redirecter(" type="button" .''.')'="" 

Meine Frage ... Was in der Welt ist los? Wie fangen Sie auch diese Debuggen ...

Programme/Version/etc Ich verwende:

Sublime 3

Apache 2.4.17 (alle in Paket von http://www.wampserver.com/en/)

PHP 7

HTML5

Voll PHP-Skript:

enthalten und erforderliche Code werden in Kommentar gesetzt umfassen (Start) umhüllt und 'End einschließen' oder 'Ende erforderlich' (Ende). Ein Beispiel ist zu Beginn des PHP-Skripts vorhanden.

<?php 
    //include $_SERVER["DOCUMENT_ROOT"]."my-site/General/get_user_type.php"; 
     require $_SERVER["DOCUMENT_ROOT"]."my-site/Database/db_connection.php";//No brackets are present in file 
     if(!(isset($_SESSION))){ 
      session_start(); 
     } 
     $Result=mysqli_query($Conn, "SELECT Type FROM user_accounts WHERE ID=".$_SESSION["uid"]); 
     $Type=$Result->fetch_object()->Type; 
     mysqli_free_result($Result); 
     $Conn->close(); 
    //End include 
    if($Type === "Admin"){ 
     echo "<div class='Sub_Content' id='div_Student_List'> 
       <p class='Sub_Content_Title'> Student List </p> 

       <input class='Content_Link_Viewer' id='btn_Student_List' type='button' value='show' name='div_Students' onclick='displayContent(this.id, this.value)'/> 
       <p class='Content_Link_Describer'> - Students </p><br/> 
       <div class='Content_Link_Holder' id='div_Students'>"; 
        //require $_SERVER["DOCUMENT_ROOT"]."my-site/Home_Page/student_list.php"; 
         require $_SERVER["DOCUMENT_ROOT"]."my-site/Database/db_connection.php";//No brackets are present in this file 
         $Result=mysqli_query($Conn,"SELECT Class_Code FROM user_accounts WHERE ID=".$_SESSION["uid"]); 
         if($Result===false){ 
          $Conn->close(); 
          $Student_List="Oops! Failed to get Student List"; 
         }else{ 
          $Class_Code=$Result->fetch_object()->Class_Code; 
          mysqli_free_result($Result); 
          $Result=mysqli_query($Conn,"SELECT Student_ID, Student_First_Name, Student_Last_Name FROM student_list WHERE Class_Code='$Class_Code'"); 
          if($Result===false){ 
           $Conn->close(); 
           $Student_List="Oops! Failed to get Student List"; 
          }else{ 
           while($Student=$Result->fetch_row()){ 
/*Problem button here*/    echo "<input class='Content_Link' id='".$Student[0]."' type='button' value='".$Student[1]." ".$Student[2]."' onclick='redirecter('.''.')'/>"; 
           } 
           mysqli_free_result($Result); 
           $Conn->close(); 
          } 
         } 
        //End Require 
     echo "</div> 
      </div>"; 
    } 
?> 
+0

Was das sein soll: 'redirecter ('.' '.')'? Es ist funky für sich. – beerwin

+0

eine URL ist Post zu da sein, entfernte ich die URL, um es zu vereinfachen. Vergessen, diese kleine Notiz xD hinzuzufügen. Ich werde das jetzt tun. – Tyler

+1

Versuchen Sie, escaped double zitieren 'onclick = \" redirecter (\ ". \" \ ". \") \ "' – sTx

Antwort