繁体   English   中英

PHP后重定向获取在某些特定的Android设备中失败

[英]PHP Post-Redirect-Get failing in some specific Android devices

我引用了一篇文章(底部提供了参考链接)来实现PHP中的Post-Redirect-Get(PRG)模式(底部提供了实现链接)。 在大多数设备中都能完美地工作 ; 但是它不适用于某些特定设备 在一些用户报告说他们无法注册新帐户之后,我发现了这一点(我在那儿使用了PRG的同一实现)。 该问题仅限于某些特定的Android设备尚未在其他任何平台上报告

面对此问题的用户在其设备的所有浏览器中都面临着该问题。

最初,我怀疑此问题与PHP SESSION有关 ,因此我对这些设备中的会话进行了全面测试。 但是,它们工作得很好 (PRG实施链接中提供了“会话测试实施”链接)。

我没有任何设备存在此问题,因此我无法自己重现此问题。 我在遇到此问题的朋友的帮助下尝试进行调试,因此,我仍然能够间接复制它。

您也可能无法重现此问题 ,在这种情况下,请查看代码,看看有什么问题。

在2000个用户中,只有30-50个用户面临此问题。

报告此问题的某些用户的设备列表-

  • Moto Z Play,Android 7.0
  • Moto M,Android 7.0
  • 小米Mi 4i,Android 5.0.2
  • OnePlus 5,Android 7.0

注意 -我尚未在上述型号的多个设备中测试此问题,也就是说,除了报告该问题的那个型号外,所有其他OnePlus 5型号都可能使用相同的PRG实现。

PRG模式实施参考-
http://wordsideasandthings.blogspot.in/2013/04/post-redirect-get-pattern-in-php.html
演示问题的实现( 仅在那些特定设备中 )-
http://witch-hunt-crewmemb.000webhostapp.com/stackoverflow/prg/echochamber.php

PRG实施-

<?php
session_start();

$echoedShout = "";

if(count($_POST) > 0) {
    $_SESSION['shout'] = $_POST['shout'];

    header("HTTP/1.1 303 See Other");
    header("Location: http://witch-hunt-crewmemb.000webhostapp.com/stackoverflow/prg/echochamber.php");
    die();
}
else if (isset($_SESSION['shout'])){
    $echoedShout = $_SESSION['shout'];

    /*
        Put database-affecting code here.
    */

    session_unset();
    session_destroy();
}
?>

会话测试实施-

<?php
session_start();
if(isset($_SESSION['y'])){
    $x=$_SESSION['y'];
    unset($_SESSION['y']);
}
else{
    $_SESSION['y']='b';
    $x='a';
}
echo $x;
?>

启用了chrome数据保护程序的设备出现了问题。 禁用它可以立即解决问题。 它仅在android设备上发生,因为chrome android上显示“启用chrome数据保护程序”提示,但在台式机上则需要从chrome网上商店中明确安装。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM