Php变量不保存数据

时间:2016-02-24 04:28:15

标签: php html mysql variables

我对php很新。我有一个php页面,其中包含一个使用GET发送数据的表单。提交表单时,我有一些查询数据库的PHP。我的问题:我设置了一个名为'$ id3'的变量,当我立即回显var_dump时显示正确的值。如果我在数据库查询后回显var_dump,它返回0.什么可能导致此变量失去其值?谢谢。

编辑:我想我发现在加载页面时id3被设置一次,然后在按下表单的提交按钮时再次设置。第二次重写变量。我现在在if (isset($_GET('1'])){上添加了其他内容,但是当我导航到下一页时,我的$id3未设置。

<?php  require_once('includes/connection.php'); ?>
<?php   



$pos = strpos($_SERVER['REQUEST_URI'],"=");
$pos2 = $pos - strlen($_SERVER['REQUEST_URI'])+1;

$fin = substr($_SERVER['REQUEST_URI'], $pos2);

$id3 = intval($fin);


echo var_dump($id3);


$error = array();

if ( isset($_GET['1']) ) {

    if ( sizeof($error) == 0 ) {
$q1 = mysqli_real_escape_string($mysqli, $_GET['1']);
$q2 = mysqli_real_escape_string($mysqli, $_GET['2']);
$q3 = mysqli_real_escape_string($mysqli, $_GET['3']);
$q4 = mysqli_real_escape_string($mysqli, $_GET['4']);
$q5 = mysqli_real_escape_string($mysqli, $_GET['5']);
$q6 = mysqli_real_escape_string($mysqli, $_GET['6']);
$q7 = mysqli_real_escape_string($mysqli, $_GET['7']);
$q8 = mysqli_real_escape_string($mysqli, $_GET['8']);
$q9 = mysqli_real_escape_string($mysqli, $_GET['9']);
$q10 = mysqli_real_escape_string($mysqli, $_GET['10']);
$q11 = mysqli_real_escape_string($mysqli, $_GET['11']);
$q12 = mysqli_real_escape_string($mysqli, $_GET['12']);
$q13 = mysqli_real_escape_string($mysqli, $_GET['13']);
$q14 = mysqli_real_escape_string($mysqli, $_GET['14']);
$q15 = mysqli_real_escape_string($mysqli, $_GET['15']);
$q16 = mysqli_real_escape_string($mysqli, $_GET['16']);
$q17 = mysqli_real_escape_string($mysqli, $_GET['17']);
$q18 = mysqli_real_escape_string($mysqli, $_GET['18']);
$q19 = mysqli_real_escape_string($mysqli, $_GET['19']);
$q20 = mysqli_real_escape_string($mysqli, $_GET['20']);
$q21 = mysqli_real_escape_string($mysqli, $_GET['21']);
$q22 = mysqli_real_escape_string($mysqli, $_GET['22']);
$q23 = mysqli_real_escape_string($mysqli, $_GET['23']);
$q24 = mysqli_real_escape_string($mysqli, $_GET['24']);
$q25 = mysqli_real_escape_string($mysqli, $_GET['25']);

$sql = "UPDATE ms2 SET 
q1='$q1',
q2='$q2',
q3='$q3',
q4='$q4',
q5='$q5',
q6='$q6',
q7='$q7',
q8='$q8',
q9='$q9',
q10='$q10',
q11='$q11',
q12='$q12',
q13='$q13',
q14='$q14',
q15='$q15',
q16='$q16',
q17='$q17',
q18='$q18',
q19='$q19',
q20='$q20',
q21='$q21',
q22='$q22',
q23='$q23',
q24='$q24',
q25='$q25' WHERE id=$id3";

$mysqli->query($sql);

//Check here of $id3 returns 0

header('Location: game.php?id='.$id3);        

        }
    }
?>

<!DOCTYPE HTML>
<html>
    <head>
        <title>Mobile Security Notifications</title>
        <meta name="apple-mobile-web-app-capable" content="yes" />
        <meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1.0, maximum-scale=1.0" />
    <link rel="stylesheet" href="css/bootstrap.min.css" />
    <link rel="stylesheet" href="css/bootstrap-responsive.min.css" />
</head>
<body>
    <div class="container">
        <div class="row">
            <div class="span12">
                <form class="form-horizontal" action="" method="GET">
                    <!--25 question form here-->    
                    <div class="form-actions">
                        <button type="submit" class="btn btn-success">Agree</button>
                            <a href="javascript:window.history.back();"class="btn">Cancel</a>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </body>
</html>

<?php require_once('includes/connection_end.php');?>

1 个答案:

答案 0 :(得分:0)

  

当我导航到下一页时,我的$ id3未设置。

PHP不会在不同请求之间保存数据。您可以访问的唯一数据是GET(来自url)和POST(隐藏)变量(+外部源,如用户和服务器变量,cookie,数据库,文件等)。 你的&#34; $ id3&#34;将用户重定向到game.php?id = $ id3 location后,变量位于$ _GET [&#39; id&#39;]中。

此外,您应该使用POST方法发送该数据量。