使用PHP会话-textarea将值转移到其他页面


Transfer value to other page using PHP session - textarea

将值转移到另一个页面是成功的,我读过很多关于这个主题的主题,stockoverflow确实帮助了我。

在第一页(例如page1.php)上,我有输入。通常我会给它键入一个值。

使用php,我编写一个会话变量,点击提交后,我可以将这个值转移到另一端(例如page2.php),这是一个简单的联系页面。该值将粘贴到文本区域字段中。

我的问题是,它只接受我直接输入的值,它位于page1.php中。我想创建一个计算器,它将根据输入的产品公斤数由价格组成。(千克是在输入中输入的值)。

我如何获得一个表单字段是干净的,并且订单产品都被正确重定向?

我在page1.php:中的代码

<?php
session_start();
$_SESSION['towar1'] = $cena1;
?>
<form method="get" action="kontakt.php">
<input id="wart1" type="number" value="0" name="towar1" class="ilosc" required>
</form>

我在page2.php中的代码(续页):

<?php
session_start();
$cena1 = $_GET['towar1'];
?>
<label for="wiadomosc"></label>
<textarea placeholder="" name="wiadomosc" required><?php echo $cena1 ?></textarea>

///问题

当我试图弄清楚如何获得产品价格的良好价值时(例如,1公斤将是19美元)我直接在我的page2.php:上写了这样的代码

<?php echo $cena1*19 ?>

但当我这样做时,联系人页面上的任何直接入口都会给我已经写好的文本,即0(零)。

我可以避免0吗?如何使文本区域始终为空,并且我的page1.php(计算器)将计算正确的数字(常量为每公斤19美元和您在输入中输入的公斤数)

您的问题还不清楚,让我们来了解一下:page1.php包含管理Item数量和$_SESSION变量及其价格的输入,在第2页上,您需要显示数量*price_per_Item编号,对吗?如果是,请尝试以下方法:

<?php
session_start();
$cena1 = $_GET['towar1'] * $_SESSION['towar1'];
?>
<label for="wiadomosc"></label>
<textarea placeholder="" name="wiadomosc" required><?php echo $cena1 ?></textarea>

,其中$_GET['towar1']是一个项目数量,$_SESSION['tower1']是项目价格。

欲知更先进的技术,请在评论中询问。

希望有帮助,干杯。

编辑

考虑到我们在评论中的对话,我可以假设这种方法会对你有所帮助:

$cena1=(!空($_GET['towar1'])&amp$_获取['toar1']!=0)$_获取['toar1']*19:'';

此行检查$_GET['towar1']变量是否为空且不为零。如果它符合条件-进行计算,否则-返回一个空字符串(不是零)。

请注意,我们上面所说的一切都是不安全的,可能会被最终用户滥用。请考虑以适当的方式审查输入验证。

它不起作用的原因是您错误地使用了会话。

应用程序的工作流程应该是:

  1. 用户输入金额
  2. 你处理它,如果需要,你会给出一条错误消息或其他什么
  3. 将金额保存到会话
  4. 将用户重定向到下一页
  5. 计算价格
  6. 显示结果

使用代码的代码示例:

第1页应为:

<?php
session_start();
if(isset($_GET['wart1'])) {
    $_SESSION['towar1'] = (int) $_GET['wart1'];
    header('Location: page2.php');
}
?>
<form method="get" action="kontakt.php">
<input id="wart1" type="number" value="0" name="towar1" class="ilosc" required>
</form>

第2页:

<?php
session_start();
$cena1 = $_SESSION['wart1'] * 19;
?>
<label for="wiadomosc"></label>
<textarea placeholder="" name="wiadomosc" required><?php echo $cena1 ?></textarea>