我创建了一个应用来接收和统计选票。我试图使选民的选择进入确认页面,以便在确认页面上显示他们投票的候选人的姓名。
我试图对投票者提交的所选候选人的变量使用$ _SESSION,然后在确认页面上调用该变量,但是我仍然遇到未定义的变量错误。
voterSubmit.php:
<?php
$selectedCandidate = $_POST['candidateid'];
session_start();
$selection = $_SESSION[$selectedCandidate];
//Redirect to results page
header("Location: views/confirmation.php");
confirmation.php
<?php
session_start();
$_SESSION[$selectedCandidate] = $selection;
include "views/confirmation.php";
确认视图:
<?php include "../partials/header.php"; ?>
<h1>Thanks For Your Vote!!</h1><br>
//This is where the error occurs (on my selection variable):
<h2>You voted for <?=$selection?>
<a href="results.php">View Results</a>
<?php include "../partials/footer.php"; ?>
我希望通过$ selection变量将所选候选人的姓名显示在确认页面上。但是,我在前端收到的只是一个“未定义的变量”错误。我还想指出,我没有在会话中使用$ selectedCandidate变量,而是尝试通过仅使用单选按钮选择的名称来直接获取名称:
$_SESSION['candidateid'] = $selection
我还想提到我已经尝试过相反的方法:
关于confirmation.php:
session_start();
$selection = $_SESSION[$selectedCandidate];
onvoiceSubmit.php:
session_start();
$_SESSION[$selectedCandidate] = $selection;
答案 0 :(得分:1)
您错误地使用了$ _SESSION变量。
尝试:
voterSubmit.php:
<?php
$selectedCandidate = $_POST['candidateid'];
session_start();
$_SESSION['selectedCandidate'] = $selectedCandidate;
//Redirect to results page
header("Location: views/confirmation.php");
confirmation.php
<?php
session_start();
$selection = $_SESSION['selectedCandidate'];
include "views/confirmation.php";
答案 1 :(得分:0)
我认为session_start()必须是php标签之后的第一行。
$ _ SESSION是一个数组。因此,您需要为其分配值,例如:
$_SESSION['keyname'] = $value;
voterSubmit.php:
<?php
session_start();
$_SESSION['selectedCandidate'] = $_POST['candidateid'];
//Redirect to results page
header("Location: views/confirmation.php");
confirmation.php
<?php
session_start();
$selection = $_SESSION['selectedCandidate'];
include "views/confirmation.php";
答案 2 :(得分:0)
voterSubmit.php看起来还不错...但是我不明白为什么您在Confirmation.php文件中有include "views/confirmation.php";
。
<?php
session_start();
$_SESSION[$selectedCandidate] = $selection;
include "views/confirmation.php";
尝试通过以下方式对HTML / PHP进行编码:
<?php
/* confirmation.php */
session_start();
$_SESSION[$selectedCandidate] = $selection;
require_once("../partials/header.php");
//This is where the error occurs (on my selection variable):
echo <<<_STRT
<h1>Thanks For Your Vote!!</h1><br>
<h2>You voted for $selection</h2>
<p><a href="results.php">View Results</a></p>
_STRT;
require_once("../partials/footer.php");
?>
我基本上消除了很多启动/停止代码。 PHP的开头将调出会话和变量。然后,我进入HTML部分,将结果提供给您的网站访问者。试一试。如果它不能解决您的问题,请对其进行评论,以便我们重新考虑。
答案 3 :(得分:0)
您的代码中有2个问题:
session_start()
定义在错误的位置。答案:
session_start()
应该是您的php 之后定义的第一件事
标签。$_SESSION["selectedCandidate"] = $selectedCandidate;
,其中$selectedCandidate
是要分配给会话变量的值,名为selectedCandidate
。答案 4 :(得分:0)
您在代码中犯了2个错误: 1.会话应在页面开始处定义,这意味着您必须像这样定义它:
<?php
session_start();
//php code goes here.
?>
2。会话变量初始化错误。您应该这样做:
<?php
$_SESSION['selectedCandidate']=$selectedCandidate;
?>