php
  • html
  • mysql
  • 2015-08-14 58 views -3 likes 
    -3

    晚上所有,只是想弄清楚爲什麼我的一些變量沒有從我的MYSQL數據庫回顯。起初,他們都將是會話變量,而我發現沒有工作,於是我改成一個MySQL查詢我的發票頁上面PHP變量沒有迴應

    $OrderID = $_SESSION[OrderID]; 
    $LName = mysql_result(mysql_query("SELECT LName FROM customers WHERE  Username = '$Username'"), 0); 
    $Fname = mysql_result(mysql_query("SELECT FName FROM customers WHERE Username = '$Username'"), 0); 
    
    $Date = mysql_result(mysql_query("SELECT Date FROM orders WHERE OrderID = '$OrderID'"), 0); 
    

    我的查詢。訂單ID和日期正在工作,但Lname和Fname不是所有內容都正確命名的地方,因爲它們在數據庫中。

    下面的完整代碼,我試圖迴應他們。

    <div id='containter' style='position:absolute;width:750px;height:800px; left:50% ; margin-left: -375px; border-style: solid;border-width: 1px;'> 
    
         <div id='heading' style='position:absolute;width:650px;height:100px; left:50% ; margin-left: -325px;top:20px; border-style: solid;border-width: 1px;'> 
          <div style='position:absolute;left:500px;text-align:center;font-size:36px;'> <p>INVOICE </p></div> 
          <div style='position:absolute;text-align:center;font-size:38px;width:250px;left:-20px;'> OzScopes</div> 
          <div style='position:absolute;text-align:center;font-size:16px;width:250px;left:-37px;top:45px;'> ozscopes.com.au</div> 
    
           <div id='headingbottom' style='position:absolute;width:100%;height:20px;top:80px;'> 
            <table> 
              <tr> 
                <td style='position:absolute;left:5%;'>Invoice Number </td> 
                <td style='position:absolute;left:25%;'> <?php echo $OrderID;?> </td> 
                <td style='position:absolute;left:77%;'><?php echo $Date ;?></td> 
              </tr> 
    
            </table> 
          </div> 
         </div> 
    
         <div id='invoicecontent' style='position:absolute;width:650px;height:600px; left:50% ; margin-left: -325px;top:140px; border-style: solid;border-width: 1px;'> 
          <div id='information'> 
           <div id='customerinfo' style='position:absolute;width:255px;height:75px;top:-210px;padding:10px; border-bottom: 2px solid;border-right:1px solid; display:inline'> 
            <table> 
                  <tr> 
                   <th>Customer Information</th> 
                  </tr> 
                  <tr> 
                   <td> <?php echo $LName;?> lnametest</td> 
                  </tr> 
                 </table> 
    
    
    
           </div> 
           <div id='mailinginfo' style='position:absolute;width:355px;height:75px;left:275px;top:-210px;padding:10px;border-bottom: 2px solid; display:inline'> 
           Mailing Information 
           </div> 
    
    
          </div> 
    
          <div id='products' style='position:absolute;top:97px;width:650px;height:503px;'> 
    <?php 
         echo "<table border=\"0\" cellspacing=\"0\" padding=\"0\" width=\"650px\">"; 
           echo "<tr style='font-weight: bold; font-size:16px;'>"; 
         echo "<td colspan=\"2\" align=\"center\" style='border-bottom: 2px solid;font-family:'Ek Mukta';color:#464d48;'>Description</td>"; 
         echo "<td align=\"left\" style='border-bottom: 2px solid;font-family:'Ek Mukta';color:#464d48;'>Quantity</td>"; 
         echo "<td colspan=\"3\" align=\"center\" style='border-bottom: 2px solid ;font-family:'Ek Mukta';color:#464d48;'>Price (Per Unit)</td>"; 
         echo "<td align=\"center\" style='border-bottom: 2px solid;font-family:'Ek Mukta';color:#464d48;'>Total</td>"; 
         echo "</tr>"; 
    
    
         echo "</table>"; 
    
    ?> 
              </div> 
    
    
          <div id='payment'> 
    
    
          </div> 
    
    
         </div> 
    
    </div> 
    

    +0

    [您的腳本存在SQL注入攻擊風險。](http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) –

    +0

    如果可以,您應該[停止使用'mysql_ *'函數](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php)。他們不再被維護,並[正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。瞭解[準備](http://en.wikipedia.org/wiki/Prepared_statement)[聲明](http://php.net/manual/en/pdo.prepared-statements.php),並考慮使用PDO ,[這真的不難](http://jayblanchard.net/demystifying_php_pdo.html)。 –

    +0

    PHPMyAdmin *不是*數據庫。它是您的MySQL數據庫的Web界面。 –

    回答

    0

    你在哪裏獲得$用戶名?你應該先從會話中得到它嗎? 像這樣:

    $Username = $_SESSION[Username]; 
    

    否則該字符串是空的,select語句會回來爲空,因爲在where子句基於用戶名= $的用戶名(在這種情況下是空的)。

    先獲取會話變量的用戶名,然後在where子句中使用它。除此之外,正如其他人所說的,請避免使用mysql查詢,而是使用mysqli。 希望它有幫助。

    +0

    哦,我..現在我感到很傻..我忘了添加,當我從會議變量移動到局部變量...是的,這修復了它。許多很多非常感謝 –

    +0

    也因爲它們是從同一個數據庫表中檢索出來的,所以你可以使用單一的select語句對名字和姓氏(提高性能,減少訪問數據庫)並將它們保存到數組中,然後當回顯它們時像這樣:例如array_name [0] .fname。 – pokrak94

    +0

    沒問題,它總是發生在我身上:) – pokrak94

    0

    成員們已經提到你的腳本是爲SQL Injection以及XSS風險。請使用msqli/PDO。此外,避免過度使用inline-CSS。根據您的<head></head>標籤制定一個單獨的.css文件或獨立的<style</style>標籤,研究class'和id的標籤來實現此目的。

    $LName = mysql_result(mysql_query("SELECT LName FROM customers WHERE  Username = '$Username'"), 0); 
    $Fname = mysql_result(mysql_query("SELECT FName FROM customers WHERE Username = '$Username'"), 0); 
    

    這是你搞亂的地方,你從哪裏得到變量$Username

    +0

    您所做的只是將雙引號切換爲單引號,當引用沒有問題時。 – Zsw

    +0

    感謝您使用css表單的提示,實際上我對網站的其他部分有所瞭解,儘管我必須經歷的界面並不包含非常體面的編輯器(其學校項目並且必須使用此界面),以便內聯單個頁面在這一點上只是更快。關於SQL注入預防,它不是我真的不必擔心的事情,該網站將永遠不會生活和超出標準。儘管我計劃在未來實施更多'真正'的項目。 –

    +0

    @Zsw,很抱歉,我誤解了這個問題。請檢查編輯。 – user5173426

    相關問題