使用PHP会话将值传输到另一个页面 - textarea

时间:2013-07-31 14:15:52

标签: php forms session-variables

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

在第一页(例如page1.php)我输入了。通常我输入一个值。

使用php我在会话变量中写入并在单击提交后我可以将此值传输到另一侧(例如page2.php),这是一个简单的联系页面。该值将粘贴到textarea字段中。

我的问题是它只接受我直接输入的值,该输入位于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吗?我怎么能让textarea总是空白,我的page1.php(计算器)将计算正确的数字(const为每公斤19美元,你在输入中输入的公斤数)

2 个答案:

答案 0 :(得分:1)

你的问题还不太清楚,让我们来看看:page1.php包含管理物品数量和$ _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 ['towar1']是商品价格。

p.s对于更先进的技术,请不要犹豫,在评论中提问。

希望它有所帮助,干杯。

修改

考虑到我们在评论中的讨论,我可以假设这种方法可以帮助您:

$ cena1 =(!empty($ _ GET ['towar1'])&amp;&amp; $ _GET ['towar1']!= 0)? $ _GET ['towar1'] * 19:'';

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

请注意,我们上面讨论的所有内容都不安全,最终用户可能会滥用。请考虑审核输入验证方法。

答案 1 :(得分:0)

它不起作用的原因是你使用错误的会话。

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

  1. 用户输入金额
  2. 您处理它,如果需要,您会给出错误消息或其他内容
  3. 节省会话金额
  4. 将用户重定向到下一页
  5. 计算价格
  6. 显示结果
  7. 使用您的代码的代码示例:

    Page1应该是:

    <?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>