在其他php文件中没有收到$ _REQUEST

时间:2014-11-10 10:41:30

标签: php html session request

我试图将a.php中的$ _REQUEST数据发送到b.php php文件。

但是在b.php $ _REQUEST总是空的。

我的代码中有什么问题?我希望有人可以帮我解决这个错误

$ _request与$ _session相同吗?

这个a.php

<?php
    include('config.php');
    $name=$_POST['txtName'];
    $location=$_POST['txtLocation'];
    $status=$_POST['txtStatus'];
    $description=$_POST['txtDescription'];
    $spesification=$_POST['txtSpesification'];
    $lokasi_file=$_FILES['file']['tmp_name'];
    $nama_file=$_FILES['file']['name'];
    $folder="images/qrcode/$nama_file";
    $folder2="images/qrcode/$nama_file";

    $query="INSERT INTO perangkat(name,location,status,description,spesification,qrcode) VALUES ('$name','$location','$status','$description','$spesification','$folder2')".mysql_error();
    $upload=move_uploaded_file($lokasi_file,$folder);
    $hasil=mysql_query($query);
    if($hasil & $upload)
    {
        echo("<br>Input data berhasil!");
        $result= mysql_query("SELECT device_id FROM perangkat where name='$name'") or die (mysql_error());
        while ($row = mysql_fetch_assoc($result)) {
        $qrcode=$row['device_id'];
        $_REQUEST['data'] = $qrcode;
        //echo $qrcode;
        header('location:b.php');
        }
    }
    else
    {
        echo("Maaf input data gagal");
    }
?>

这个b.php

if (isset($_REQUEST['data'])) { 

    $filename = $PNG_TEMP_DIR.($_REQUEST['data']).'.png';
    QRcode::png($_REQUEST['data'], $filename, $errorCorrectionLevel, $matrixPointSize, 2);    

    } else {    

    //default data
    echo 'You can provide data in GET parameter: <a href="?data=like_that">like that</a><hr/>';    
    QRcode::png('PHP QR Code :)', $filename, $errorCorrectionLevel, $matrixPointSize, 2);    

}

2 个答案:

答案 0 :(得分:0)

您需要通过查询字符串,会话或使用其他方法将数据发送到其他页面

使用查询字符串: -

header('location:b.php?data='.$qrcode);

然后上b.php

$data = $_GET['data'];

使用会话: -

session_start()
$_SESSION['data'] = $qrcode;

获取b.php

session_start()
$data = $_SESSION['data'];

答案 1 :(得分:0)

$_REQUEST$_SESSION不同。

$_REQUEST是一个关联数组,默认情况下包含$_GET$_POST$_COOKIE的内容。

不要忘记,因为$_REQUEST是一个与$_GET$_POST不同的变量,所以在PHP中也会这样做 - 修改$_GET或{ {1}}运行时的元素不会影响$_POST中的元素,反之亦然。

e.g:

$_REQUEST

要使用会话,您必须使用<?php $_GET['foo'] = 'a'; $_POST['bar'] = 'b'; var_dump($_GET); // Element 'foo' is string(1) "a" var_dump($_POST); // Element 'bar' is string(1) "b" var_dump($_REQUEST); // Does not contain elements 'foo' or 'bar' ?> 启动您的php文件 然后您可以使用以下会话:session_start();