为了账号安全,请及时绑定邮箱和手机立即绑定

为什么它只显示变量“voornaam”的值?

为什么它只显示变量“voornaam”的值?

互换的青春 2023-10-24 21:22:42
第一次在 PHP 中使用会话。我试图在另一个页面上打印出部分付款信息,它将您重定向到该页面,但它告诉我当我们在下一页上时,会话变量未定义。对于第一个会话变量AKA voornaam(荷兰语的名字),它并没有这样说付款页面(bestellingmaken.php):session_start();?><!DOCTYPE html><html><head>    <meta charset="UTF-8">    <title>Bestellen</title>    <link rel="stylesheet" type="text/css" href="css/styles.css" /></head><body><div class="sushipic"><img src="images/sushipic.jpg"></div><div class="bestellingpagina"><h1>Maak hier uw bestelling</h1>//Form to make the order with.<form action="bestellingoverzicht.php" method="post">    <p>Voornaam <input type="text" name="voornaam"/></p>    <p>Achternaam <input type="text" name="achternaam"/></p>    <p>Email-adres <input type="text" name="emailadres"/></p>    <p>Straatnaam <input type="text" name="straatnaam"/></p>    <p>Postcode <input type="text" name="postcode"/></p>    <p>Woonplaats <input type="text" name="woonplaats"/></p>    <p>Telefoonnummer <input type="text" name="telefoonnummer"/></p>    <p>Te bestellen drankjes:</p>    <p>Cola <input type="checkbox" name="cola"/><select name="colahvl">            <option value="1">1</option>            <option value="2">2</option>            <option value="3">3</option>            <option value="4">4</option>            <option value="5">5</option>            <option value="6">6</option>            <option value="7">7</option>            <option value="8">8</option>        </select></p>    <p>Sprite <input type="checkbox" name="sprite"/><select name="spritehvl">            <option value="1">1</option>            <option value="2">2</option>            <option value="3">3</option>            <option value="4">4</option>            <option value="5">5</option>            <option value="6">6</option>            <option value="7">7</option>            <option value="8">8</option>        </select></p>
查看完整描述

2 回答

?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

在当前代码中,您将表单提交到 bestellingoverzicht.php (您已action在表单中设置了该表单)。因此,bestellingmaken.php 永远不会获得这些值。


要解决此问题,您可以将代码从bestellingmaken.php移至bestellingoverzicht.php。


此外,在当前的代码中bestellingmaken.php,您有if (isset($_POST){,您可以在“voornaam”部分之后将其关闭。然后你有更多的设置器(将 achternaam 移动到会话等),但该语法不正确,也需要放置在if $_POST.


由于这是某种形式的家庭作业,因此需要学习一些额外的东西:


使用正确的缩进。里面的所有东西都{}必须向右移动 1tab/4spaces。如果您有ifin an if,则需要缩进 2 个制表符。

如果您在当前代码中执行此操作,则在没有我们帮助的情况下您将在上面的代码中遇到问题:)


另外,您不需要将 分配$_POST给变量,并将其分配给会话:


$voornaam = $_POST['voornaam'];

$_SESSION["voornaam"] = $voornaam;


// This is also fine, possible even better:

$_SESSION['voornaam'] = $_POST['voornaam'];

这节省了一行代码,而您有 8 行代码,因此您节省了 8 行,从而产生更小、更清晰的代码。


最后,您可能需要阅读一些函数,这将使您的代码以最少的努力变得更加易于管理。


查看完整回答
反对 回复 2023-10-24
?
杨__羊羊

TA贡献1943条经验 获得超7个赞

您在第一次分配后立即关闭 if 条件:


$voornaam = $_POST['voornaam'];

$_SESSION["voornaam"] = $voornaam;

} // <-- this is your problem

这是您的实际代码吗?它应该抛出一个解析错误。这应该有效(大写的评论):


if (isset($_POST['input'])){

//Sets the Session variables for all variables with the input value, so we get to use it on the next page.

//Voornaam

$voornaam = $_POST['voornaam'];

$_SESSION["voornaam"] = $voornaam;

//} <-- THIS IS A PROBLEM AND SHOULD PARSE ERROR

//Achternaam

$achternaam = $_POST['achternaam'];

$_SESSION["achternaam"] =$achternaam;

//} <-- THIS TOO

//EmailAdres

$emailadres = $_POST['emailadres'];

$_SESSION["emailadres"] = $emailadres;

//Straatnaam

$straatnaam = $_POST['straatnaam'];

$_SESSION["straatnaam"] = $straatnaam;

//Postcode

$postcode = $_POST['postcode'];

$_SESSION["postcode"] = $postcode;

//Woonplaats

$woonplaats = $_POST['woonplaats'];

$_SESSION["woonplaats"] =$woonplaats;

//Telefoonnummer

$telnmmr = $_POST['telefoonnummer'];

$_SESSION["telefoonnummer"] =$telnmmr;

//Cola

$colaselect = $_POST['cola'];

$_SESSION["colaselect"] =$colaselect;

$colaAantal = $_POST['colahvl'];

//Pepsi

$spriteselect = $_POST['sprite'];

$spriteaantal = $_POST['spritehvl'];

}


查看完整回答
反对 回复 2023-10-24
  • 2 回答
  • 0 关注
  • 96 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信