PHP变量无法回应

时间:2015-08-14 12:44:53

标签: php html mysql

晚上全部,只是想弄清楚为什么我的一些变量没有从我的MYSQL数据库回显。起初他们将成为我发现不起作用的Session变量,所以我在发票页面上更改为mysql查询

$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>

2 个答案:

答案 0 :(得分:0)

正如成员已经提到过,您的脚本面临SQL Injection以及XSS的风险。请使用msqli/PDO。此外,避免过度使用inline-CSS。在.css代码下单独制作<style</style>个文件或不同的<head></head>,研究classid即可实现此目标。

$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

答案 1 :(得分:0)

你在哪里得到$用户名?你应该先从会议中得到它吗? 像这样:

$Username = $_SESSION[Username];

否则此字符串为空,select语句将返回为空,因为where子句基于username = $ Username(在本例中为空)。

首先获取会话变量的用户名,然后在where子句中使用它。除此之外,正如其他人所说,请避免使用mysql查询,而是使用mysqli。 希望它有所帮助。