我对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');?>
答案 0 :(得分:0)
当我导航到下一页时,我的$ id3未设置。
PHP不会在不同请求之间保存数据。您可以访问的唯一数据是GET(来自url)和POST(隐藏)变量(+外部源,如用户和服务器变量,cookie,数据库,文件等)。 你的&#34; $ id3&#34;将用户重定向到game.php?id = $ id3 location后,变量位于$ _GET [&#39; id&#39;]中。
此外,您应该使用POST方法发送该数据量。