Smirnoff
V2EX  ›  PHP

PHP5 的代码升级到 PHP7 遇到的问题

  •  
  •   Smirnoff · Jul 15, 2016 · 10831 views
    This topic created in 3772 days ago, the information mentioned may be changed or developed.

    准备把 PHP5 的代码升级带 PHP7 ,其他的代码基本修改完成,但是下面这段代码数组存取就是不显示内容, 大家帮忙看看指出错误谢谢。。。

               <?php 
    			$echo=1;
    			$search="";
    			if(isset($_POST['search'])){$search="and url like '%{$_POST['search']}%'";
    			}
    			$query=mysqli_query($conn,"select count(*) as row from sqlmap where hash!='' {$search} and userhash='{$hash}' order by pr desc");
    			while($row=mysqli_fetch_array($query)){
    			if($row['status']=='running') {$class='active';}
    			else{$class='success';}
    			preg_match_all('/ => \'(.*)\n\'/',$row['data'],$match);
    			$match=$match[1];
    			$last=@$match[count($match)-1];
    			$key=$row['key'];
    			$stat=$row['status'];
    			$url=$row['url'];
    			$pr=$row['pr'];
    			$dbtype=$row['dbtype'];
                $node=$row['apiserver'];
    			if(stripos($last,"back-end") and stripos($last,"--dbms")==false){
    				$class='danger';
    				$stat='Inject';
    				mysqli_query($conn,"update sqlmap set status='{$stat}' where `key`='{$key}' and userhash='{$hash}'");
    				
    			}
    			preg_match_all('/ => \'(.*)\n\'/',$row['data'],$match);
    			$data='';
    			foreach($match[1] as $m){
    						$m=stripcslashes($m);
    						$data.=$m."\n";
    					
    						
    					}
    				
    			if(@$_GET['vul']==1 and $stat!='Inject'){
    				//echo $stat."<br>";
    				$echo=0;
    			}else{$echo=1;}
    			if($echo){
    			?>
    		
    				<tr class="<?php echo $class?>">
    
    					<td>
    						<?php echo $key?>
    						<?php echo test?>
    						<?php echo $row?>
    						<?php print_r ($key);?>
    					</td>
    					<td>
    						<?php echo substr($url,0,60)?>..
    					</td>
    					<td>
    					
    						<?php echo $stat;?>
    						
    					</td>
                            <td>
    					
    						<?php echo $node;?>
    						
    					</td>
    
    44 replies  •  2016-07-17 12:25:18 +08:00
    lynnworld
    lynnworld
    Jul 15, 2016
    1
    把 @ 错误抑制都去掉,看看什么报错
    chaegumi
    chaegumi
    Jul 15, 2016
    2
    写的很糟糕的代码
    Felldeadbird
    Felldeadbird
    Jul 15, 2016
    3
    and url like '%{$_POST['search']}%'
    好大一个注入。。
    BOYPT
    BOYPT
    Jul 15, 2016
    4
    (看出错误!
    Smirnoff
    Smirnoff
    OP
    Jul 15, 2016
    5
    @lynnworld
    @chaegumi
    @Felldeadbird
    $query=mysqli_query($conn,"select count(*) as row from sqlmap where hash!='' {$search} and userhash='{$hash}' order by pr desc");
    代码不是我写的
    貌似是这段写的出现了问题
    z5864703
    z5864703
    Jul 15, 2016
    6
    debug 啊,排版这样的代码看出错误。。。
    killall
    killall
    Jul 15, 2016
    7
    我勒个擦!!!!恕知识浅薄,看第一眼 $echo 这变量就不敢往下看了!
    hoythan
    hoythan
    PRO
    Jul 15, 2016
    8
    你这代码我都看懵逼了.
    saeed
    saeed
    Jul 15, 2016
    9
    mysql_query(query,connection)
    saeed
    saeed
    Jul 15, 2016
    10
    看错了!
    aprikyblue
    aprikyblue
    Jul 15, 2016 via Android
    12
    这什么鬼玩意。。
    initialdp
    initialdp
    Jul 15, 2016
    13
    php7 默认把这个 mysql 接口库移除了吧?话说 PDO 很多年前就已经出了,这年头居然还在用拼接。。。
    darluc
    darluc
    Jul 15, 2016
    14
    可以参考一下这个噢: https://log.zvz.im/2015/10/24/PHP7-1/
    "对于不一致性的修复" 这个部分有说明 "表达式求值上严重的不一致问题"
    500miles
    500miles
    Jul 15, 2016
    15
    第一行就炸裂! boom boom boom
    genffy
    genffy
    Jul 15, 2016
    16
    那些说 PHP 是世界上最好的语言的 programer 你们幸苦了。
    lhbc
    lhbc
    Jul 15, 2016 via Android
    17
    那么问题来了,入侵楼主网站需要多长时间?
    cxbig
    cxbig
    Jul 15, 2016
    18
    惨不忍睹。。。重写吧。。。
    cevincheung
    cevincheung
    Jul 15, 2016
    19
    不吐槽了。

    mysqli_fetch_array 第二个参数默认是 MYSQLI_BOTH ,改成 MYSQLI_ASSOC 。
    notgod
    notgod
    Jul 15, 2016❤️1
    20
    只能帮你到这里来少年

    简单修复过 无测试
    https://blog.cnlabs.net/4721.html


    很优雅的语言
    怎么被写成这样
    sql 那块 尽量使用 pdo
    实在不习惯 使用 sql 的封装也可以的 比如 adodb 封装好的
    Asimov
    Asimov
    Jul 15, 2016
    21
    block 楼主了。
    Volio
    Volio
    Jul 15, 2016
    22
    看到$echo=1 ...
    看不下去了
    hljjhb
    hljjhb
    Jul 15, 2016
    23
    黑人问号???
    shiny
    shiny
    Jul 15, 2016
    24
    @initialdp 移除的是 mysql 不是 mysqli
    mahone3297
    mahone3297
    Jul 15, 2016
    25
    虽然代码写的确实很糟。。。
    但是,大部分公司,特别是小公司,代码可能就是这样的吧。。。
    大家的代码都写的那么赞的?可能是 v2 上的人技能比较好,所以所处的公司也比较好,代码质量比较高。
    explon
    explon
    Jul 16, 2016 via iPhone
    26
    这种狗屎代码你还不重构?
    smallpath
    smallpath
    Jul 16, 2016
    27
    太惨了
    caola
    caola
    Jul 16, 2016
    28
    这代码,我也看不下去了!
    gzelvis
    gzelvis
    Jul 16, 2016
    29
    哈哈,这贴可以用来给将来公司挖 PHP 大神
    yxzblue
    yxzblue
    Jul 16, 2016
    30
    我以为是科普贴
    pubby
    pubby
    Jul 16, 2016
    31
    如果是十年前的代码我就不说啥了

    不过,这么大一个漏洞,数据库里估计都有脏东西了
    thanksir
    thanksir
    Jul 16, 2016
    32
    这代码完全看不下去
    dxwwym
    dxwwym
    Jul 16, 2016 via iPhone
    33
    sprintf 整合好字符串再一下打印出能好一些吧?这样一个劲的 echo ……
    wzxjohn
    wzxjohn
    Jul 16, 2016 via iPhone
    34
    作为一个业务选手我都看不下去了。。。这就是没有代码安全意识的典范。。。
    Smirnoff
    Smirnoff
    OP
    Jul 16, 2016
    35
    @notgod 测试了,还是有错误,不显示内容
    notgod
    notgod
    Jul 16, 2016 via iPhone❤️1
    36
    @Smirnoff
    一点一点的 var_dump
    看看哪里没返回数据吧 代码看不下去
    Smirnoff
    Smirnoff
    OP
    Jul 16, 2016
    37
    @notgod 这是一个 git 的开源项目,我最近想移至到 PHP7 上运行,本身不是 phper ,感谢你的帮助
    zchzch1014
    zchzch1014
    Jul 16, 2016
    38
    @notgod 看了下你博客的在线工具好像都用不了了
    ragnaroks
    ragnaroks
    Jul 16, 2016
    39
    @Smirnoff 你应该早说是 gayhub 上的,我估计好多人都屏蔽你了
    Smirnoff
    Smirnoff
    OP
    Jul 16, 2016
    40
    @ragnaroks 一个 sqlmapAPI 的项目, webserver 主要是代理和查看数据用,不在外网用,登录无验证,细节不在代码质量和 SQL 注入上,主要是我在搭建 DOCKER images ,想尝试吧 web 部分移植到 PHP7 , PHP5 是正常的
    aristotll
    aristotll
    Jul 16, 2016
    41
    最好语言躺枪...
    summersky92
    summersky92
    Jul 16, 2016
    42
    这个。。。 xdebug 一行行走也能找到了吧。。。。
    ychongsaytc
    ychongsaytc
    Jul 17, 2016
    43
    久未见惨状,忽然感觉有点亲切
    Aaron99
    Aaron99
    Jul 17, 2016 via Android
    44
    @initialdp 他用的 mysqli
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4236 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 86ms · UTC 09:23 · PVG 17:23 · LAX 01:23 · JFK 04:23
    ♥ Do have faith in what you're doing.