我现在已经看了一段时间,看着所有类似的问题,但我找不到能解决问题的任何问题。
所以我在主要的html和php中工作,在我自己的服务器上构建一个伪装的购物网站。这仅仅是出于我自己的教育目的,所以基本上它只是为了好玩。
这是我第三次使用html或php做过任何事情,所以还有很多我还不明白,这个项目可能比我预想的要大一些。
我有一个页面,用户'从那里开始,我使用会话来输入他们输入的数据(用户名等)来制作一个非常简单的问候语。这主要起作用。唯一的问题是如果我刷新新页面有时会消失。
主要问题在于新页面。我在商店中有一个商品表单,用户可以选择他们想要购买的金额。但是,当按下提交按钮时,我的检查显示表单是空的,我不明白为什么。我已经搞砸了一堆,从使用$ _POST到$ _GET开始,但这并没有帮助。 这是我的php的开始,它检查上一页的内容。
<?php
//start session
session_start();
//check is post variables exist, if it does assign it
if (isset($_POST['username'])) {
$name = $_POST['username'];
$_SESSION['usersname'] = $name;
}
if (isset($_POST['email'])) {
$email = $_POST['email'];
$_SESSION['useremail'] = $email;
}
if (isset($_POST['password'])) {
$password = $_POST['password'];
$_SESSION['userpassword'] = $password;
}
$username = $_SESSION['usersname'];
$useremail = $_SESSION['useremail'];
$userpassword = $_SESSION['userpassword'];
然后项目列表看起来像这样。
<!--- List of all items and how many they want --->
<nav class="col-1">
<p> Shopping List </p>
<br/>
<form action="index.php" method="GET" name="items">
<table class="table1">
<tr><th>WEAPONS</th></tr>
<tr><td class="td1">
<br/>
<img class="disc" src="images/wand.png"></img><br/>
Item Name: Butterfly Wand<br/>
Price: $50.00<br/>
<input type="number" name="wandNum" min="0" style="width: 50px"/>
<br/>
<?php $wandprice = 50.00; ?>
</td></tr>
<tr><td class="td1">
<br/>
<img class="disc" src="images/sword.png"></img><br/>
Item Name: Normal Sword<br/>
Price: $20.00<br/>
<input type="number" name="swordNum" min="0" style="width: 50px"/>
<br/>
<?php $swordprice = 20.00; ?>
</td></tr>
<tr><td class="td1">
<br/>
<img class="disc" src="images/Bow_and_Arrows.png"></img><br/>
Item Name: Normal Bow<br/>
Price: $12.00<br/>
<input type="number" name="bowNum" min="0" style="width: 50px"/>
<br/>
<?php $bowprice = 12.00; ?>
</td></tr>
</table>
<input type="submit" id="orderButton" name="order" value="Order"/>
</form>
</nav>
最后,我想将所有项目及其信息以某种方式存储到数组中以存储它们。我不确定这是否是实现它的最佳方式。我还没有达到这个部分,因为上面的形式一直空洞。即使我为每个项目输入一个值。
if (isset($GET['items'])) {
$wandnum = $_GET['wandNum'];
$swordnum = $_GET['swordNum'];
$bownum = $_GET['bowNum'];
这只是检查一下这个值是否超过0 ......我想..然后希望它会将值放在数组中。
if ($wandnum > 0) {
$wand = array ("Butterfly Wand", $wandprice, $wandnum);
$items[] = array_push($wand);
}
if ($swordnum > 0) {
$sword = array ("Normal Sword", $swordprice, $swordnum);
$items[] = array_push($sword);
}
if ($bownum > 0) {
$bow = array ("Normal Bow", $bowprice, $bownum);
$items[] = array_push($bow);
}
}
?>
我无法通过if语句,因为显然它没有设置。我没有IDE的html或php(任何好的免费调试都会很棒)我通过命令行运行代码,运行正常。我无法弄清楚为什么没有价值观。我的另一页运行正常,所以我不确定为什么这个给我带来了麻烦。
答案 0 :(得分:0)
您需要在开头添加:
<?php
if(isset($_GET['order'])) {
if (isset($_GET['items'])) {
$wandnum = $_GET['wandNum'];
$swordnum = $_GET['swordNum'];
$bownum = $_GET['bowNum'];
if ($wandnum > 0) {
$wand = array ("Butterfly Wand", $wandprice, $wandnum);
$items[] = array_push($wand);
}
if ($swordnum > 0) {
$sword = array ("Normal Sword", $swordprice, $swordnum);
$items[] = array_push($sword);
}
if ($bownum > 0) {
$bow = array ("Normal Bow", $bowprice, $bownum);
$items[] = array_push($bow);
}
}
}