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

第一次在 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>

互换的青春
浏览 97回答 2
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 行,从而产生更小、更清晰的代码。最后,您可能需要阅读一些函数,这将使您的代码以最少的努力变得更加易于管理。

杨__羊羊

您在第一次分配后立即关闭 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'];}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Html5