php在自己的主机上本地和远程工作,但不能在客户机上远程工作';s托管
我不擅长PHP,所以请容忍我。我有以下代码:php在自己的主机上本地和远程工作,但不能在客户机上远程工作';s托管,php,mysql,Php,Mysql,我不擅长PHP,所以请容忍我。我有以下代码: <?php $thisPage="designers"; include("phpincludes/header.php") ?> <div id="contentLeft"> <?echo "<h2><a href='designer_display.php?d_name=".$_GET['d_name']."'>" . $_GET['d_name']. "</a></h2&
<?php $thisPage="designers";
include("phpincludes/header.php") ?>
<div id="contentLeft">
<?echo "<h2><a href='designer_display.php?d_name=".$_GET['d_name']."'>" . $_GET['d_name']. "</a></h2>";?>
<?
error_reporting(0);
require_once "phpincludes/connection.php";
$designer = $_GET['d_name'];
// Category Selection Start.
$cat_qry = "SELECT DISTINCT (
`own_category`
)
FROM `products`
WHERE `designer` ='".$designer."' && own_category != ''";
$rs_qry = mysql_query($cat_qry);
$i = 0;
while($rec_qry = mysql_fetch_array($rs_qry))
{
if($i==0)
$first_cat = $rec_qry['cat_name'];
$cat_name[$i]=$rec_qry['cat_name'];
$i++;
}
// Category Selection Start.
$cat_name = $_GET['catName1'];
$cat_qry = "SELECT DISTINCT (
`own_category`
)
FROM `products`
WHERE `designer` ='".$designer."' && own_category != ''";
//"select * from categories";
$rs_qry = mysql_query($cat_qry);
$rec_no = mysql_affected_rows();
/*if($_GET["catName1"]=="")
$catName = $first_cat;
else
$catName = $cat_name;*/
$n1 = 1;
echo "<ul id=\"designers\">";
while($rec_qry = mysql_fetch_array($rs_qry))
{
$cate_name = str_replace('_',' ',$rec_qry['own_category']);
//print_r($cate_name[1]);
if($rec_qry["own_category"]!= $_GET['catName'])
echo "<li><A HREF='d_items.php?no=".$n1."&d_name=".$designer."&catName=".$rec_qry["own_category"]."'>".strtoupper($cate_name)."</A></li>";
else
echo "<li><A HREF='d_items.php?no=".$n1."&d_name=".$designer."&catName=".$rec_qry["own_category"]."'><font color='#8d9354'>".strtoupper($cate_name)."</font></a></li>";
if($rec_qry["own_category"]== $_GET['catName'])
{
$query="SELECT A.photo_filename, A.photo_title, B.dc_cat_name FROM displays A
LEFT JOIN displays_categories B ON B.dc_display_photos = A.photo_filename
WHERE dc_cat_name ='".$rec_qry["cat_name"]."'";
$query="SELECT B.pro_name, B.own_category, B.own_photo_filename from categories as A LEFT JOIN
products as B ON A.cat_name = B.own_category
where cat_name ='".$_GET["catName"]."' and designer ='".$designer."' order by B.pro_name";
$rs1_qry = mysql_query($query);
echo "<ul class=\"items\">";
while($row = mysql_fetch_array($rs1_qry))
{
if ($designer == "Jardan") {
$p1name = str_ireplace($designer,'',$row["pro_name"]);
$pname = substr($p1name, 0, -3);
} else {
$pname = str_ireplace($designer,'',$row["pro_name"]);
}
if($_GET['ProName'] != $row["pro_name"])
echo "<li><A HREF='d_item_details.php?d_name=".$designer."&ProName=".$row['pro_name']."&catName1=".$rec_qry['own_category']."&catName=".$rec_qry['own_category']."'>".$pname."</A></li>";
else
echo "<li><A HREF='d_item_details.php?d_name=".$designer."&ProName=".$row['pro_name']."&catName1=".$rec_qry['own_category']."&catName=".$rec_qry['own_category']."'><font color='#fff'>".$pname."</font></A></li>";
}
echo "</ul>";
}
}
echo "</ul>";
$f=1;
$recnm = $_GET['ProName'];
$owncat = $_GET['catName1'];
$photo_title = $_GET['ptitle'];
$query2="SELECT pro_code, pro_dimensions, own_photo_filename, designer_pdf, palette FROM products
WHERE pro_name ='".$recnm."' and own_category ='".$owncat."'";
$rt2=mysql_query($query2);
echo mysql_error();
?>
</div>
<div id="contentRight">
<?
while($row2 = mysql_fetch_array($rt2))
{
?>
<?$d = explode(' ',$designer);
for($p=0;$p<count($d);$p++)
{
$des.=$d[$p];
}
if ($designer == "Playstar") {
$p2name = str_ireplace($designer,'',$recnm);
$poname = substr($p2name, 0, -3);
} else {
$poname = str_ireplace($designer,'',$recnm);
}
?>
<img class="lighting" src="img/designers/<?echo $des."/".$row2['own_photo_filename'];?>.jpg" />
<div class="mailerBtn"><a href="mailto:info@clientsite.com.au?subject=<?echo $recnm;?>"><h4>ENQUIRE</h4></a>
<a href="pdf/<?echo $des."/".$row2['designer_pdf'];?>.pdf" target="_blank"><h4>Download Product PDF</h4></a></div>
<h3><?echo $poname;?></h3>
<p>
<?
echo "<b>Product code:</b> ". $row2['pro_code']."<BR>";
if ($designer == "Playstar") {
echo $row2['pro_dimensions'];
} else {
echo "<b>Dimensions:</b> ". $row2['pro_dimensions'];
} ?>
</p>
<? if($row2[4]=='yes') {
?>
<img class="palette" src="img/designers/<?echo $des."/".$row2['own_photo_filename'];?>-palette.jpg" />
<? } ?>
<?}?>
<?php include("phpincludes/base.php") ?>
您应该避免使用“短标记”您应该避免使用难以辨别的“短标记”。很明显,这与客户端设置有关
粗略猜测,该客户端仍在运行PHP4。因为在73号线之后,你有一个电话无法接通
你可能会得到一个致命的错误。这是进行调查的正确途径。将此添加到顶部以进行调试(而不是错误报告(0)
,这没有多大帮助):
并询问错误。更好的是,提供一个定制的错误处理程序,为最终用户类型的客户端打印出一些有光泽的东西。否则,要求输入错误。日志
,它同样应该包含准确的错误。这很难说。很明显,这与客户端设置有关
粗略猜测,该客户端仍在运行PHP4。因为在73号线之后,你有一个电话无法接通
你可能会得到一个致命的错误。这是进行调查的正确途径。将此添加到顶部以进行调试(而不是错误报告(0)
,这没有多大帮助):
并询问错误。更好的是,提供一个定制的错误处理程序,为最终用户类型的客户端打印出一些有光泽的东西。否则,请询问错误。日志
,该日志同样应包含准确的错误。很高兴您能让它正常工作,但我不会在您客户的web主机上使用此代码
$f=1;
$recnm = $_GET['ProName'];
$owncat = $_GET['catName1'];
$photo_title = $_GET['ptitle'];
$query2="SELECT pro_code, pro_dimensions, own_photo_filename, designer_pdf, palette FROM products WHERE pro_name ='".$recnm."' and own_category ='".$owncat."'";
这里的查询和所有其他查询都容易受到sql注入的攻击。(如果我传入catName1=';从产品中删除*,其中1=1或'2'='2)
您需要将查询转换为参数化查询,或者使用mysql\u real\u escape\u字符串
即
很高兴您能使用它,但我不会在您的客户机web主机的生产中使用此代码
$f=1;
$recnm = $_GET['ProName'];
$owncat = $_GET['catName1'];
$photo_title = $_GET['ptitle'];
$query2="SELECT pro_code, pro_dimensions, own_photo_filename, designer_pdf, palette FROM products WHERE pro_name ='".$recnm."' and own_category ='".$owncat."'";
这里的查询和所有其他查询都容易受到sql注入的攻击。(如果我传入catName1=';从产品中删除*,其中1=1或'2'='2)
您需要将查询转换为参数化查询,或者使用mysql\u real\u escape\u字符串
即
他们不可能在主机上,是吗?开玩笑的是,许多便宜的主机可能会有奇怪的配置或旧的php版本,这可能会造成干扰。您可以通过添加die(php_info())来比较您的php设置;在本页顶部,查看数据库中的数据与本地主机中的数据有何区别?我的意思完全一样。当你“查看页面源代码”时,它显示的最后一行是什么?谢谢大家-@royrui,是的,数据库是完全一样的@凯青,你说得对-我应该先试试!部分正确。函数中没有下划线。phpinfo()是正确的他们不可能在主机上是吗?开玩笑的是,许多便宜的主机可能会有奇怪的配置或旧的php版本,这可能会造成干扰。您可以通过添加die(php_info())来比较您的php设置;在本页顶部,查看数据库中的数据与本地主机中的数据有何区别?我的意思完全一样。当你“查看页面源代码”时,它显示的最后一行是什么?谢谢大家-@royrui,是的,数据库是完全一样的@凯青,你说得对-我应该先试试!部分正确。函数中没有下划线。没错,马里奥,我可以吻你。非常感谢。我刚刚用str_replace替换了str_ireplace,一切都很好。将在要求的时间后接受回答。在这种情况下,您可能会从设置中受益或复制一些基准PHP5函数。这比重写东西或使用通用性较差的函数要好。马里奥,我可以吻你。非常感谢。我刚刚用str_replace替换了str_ireplace,一切都很好。将在要求的时间后接受回答。在这种情况下,您可能会从设置中受益或复制一些基准PHP5函数。这比重写东西或使用通用性较差的函数要好。酷,谢谢你指出这一点。我正在按照建议修改代码!同样,您也有一些XSS漏洞,您可能希望将其封存。请参见这一行中的一个示例:)。此外,还有很多关于它的帖子,所以你可能想读一下。我想编辑“吃”了我上面的一些标记,但我想你明白了:)酷,谢谢你指出这一点。我正在按照建议修改代码!同样,您也有一些XSS漏洞,您可能希望将其封存。请参见这一行中的一个示例:)。此外,还有很多关于它的帖子,所以你可能想读一下。我想编辑“吃”了我上面的一些标记,但我想你明白了:)
$owncat = mysql_real_escape_string($_GET['ProName']);