Php 如果(设置($获取[';提交';]))。。。帮助

Php 如果(设置($获取[';提交';]))。。。帮助,php,sql,get,Php,Sql,Get,早上好。 我有一个在提交时需要值的查询。。给你 <?php $conn = mysql_connect("localhost","root",""); mysql_select_db('irm',$conn); if(isset($_GET['Submit'])){ $customer_date = $_GET['customer_date']; } ?> <?php $tryshow =" SELECT c.customer_date, c.lastname, c.fi

早上好。 我有一个在提交时需要值的查询。。给你

<?php
$conn = mysql_connect("localhost","root","");

mysql_select_db('irm',$conn);

if(isset($_GET['Submit'])){
$customer_date = $_GET['customer_date'];
}
?>
<?php

$tryshow =" SELECT c.customer_date, c.lastname, c.firstname,
   s.room_number, s.date_in, s.date_out
FROM customers c
    INNER JOIN services s
        ON c.customer_date = s.date_in
 WHERE c.customer_date = '$customer_date'";

$result = @mysql_query($tryshow,$conn)
            or die(mysql_error());

if (mysql_num_rows($result) == 0) {
echo "No rows found, nothing to print...";
}
while($row=mysql_fetch_assoc($result)){ 
?>


我认为您的报价是错误的,您的查询发送的是$customer\u date,而不是变量中的值。请尝试以下操作:

$tryshow =' SELECT c.customer_date, c.lastname, c.firstname,
   s.room_number, s.date_in, s.date_out
FROM customers c
    INNER JOIN services s
        ON c.customer_date = s.date_in
 WHERE c.customer_date = "'.$customer_date.'"';

请了解mysql中的引用/转义值,因为当前您的代码需要SQL注入。

与您的问题无关,但您的代码完全可以接受SQL注入。您正在使用未以任何方式清理的用户输入构建查询。至少,您应该使用mysql\u real\u escape\u字符串。我可以用最少的努力列举足够的数据库信息,将“DROP database your DB”语句粘贴到查询字符串中,从而删除您的所有数据。

您确定设置了$\u GET['customer\u date'],只是因为设置了$\u GET['Submit']吗?尝试使用var_转储$_GET参数。您还需要发布用于调用此代码的表单,然后再进一步,了解什么是SQL注入以及如何停止它。现在,幸好你的代码不起作用。清理你的post/get值。@renz:这不是一个愚蠢的问题。只是,就目前的情况而言,您的服务器不需要太多时间就可以被破坏。谢谢您的回复。我试过了,但仍然没有显示行。再次感谢您尝试手动插入日期以查看是否有任何结果,或者尝试回显您的查询,将它复制到phpmyadmin中,看看如果运行它会发生什么。在phpmyadmin上尝试了它,我想我有一个错误的查询,它返回零行。请尝试在phpmyadmin中修复该查询,您的页面将立即启动并运行:)好的,再次感谢,我通过删除isset使其正常工作