Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 获取表单未正确传递_Php_Get - Fatal编程技术网

Php 获取表单未正确传递

Php 获取表单未正确传递,php,get,Php,Get,我在商店网站上有一张get表格。这个想法是,当你点击“添加到购物车按钮”时,它会发送参数(4个参数中有3个已经知道,是用户输入的最后一个参数)。这里的问题是发送的URL不正确 以下是一种产品的表单示例: <div class='product'> <article class="produto_box"> <h3>Salsa</h3> <img src='https://gnomo.fe.up.pt/~

我在商店网站上有一张get表格。这个想法是,当你点击“添加到购物车按钮”时,它会发送参数(4个参数中有3个已经知道,是用户输入的最后一个参数)。这里的问题是发送的URL不正确

以下是一种产品的表单示例:

<div class='product'>
    <article class="produto_box">
        <h3>Salsa</h3>
        <img src='https://gnomo.fe.up.pt/~ee10174/trabalhosSiem/trabalhoPHP2/images/ervas/salsa'.'.png'>
        <br>
        <span class="preco"><b>Preço: </b>1€</span>
            <form method="GET" action="https://gnomo.fe.up.pt/~ee10174/trabalhosSiem/trabalhoPHP2/actions/produtos/add_to_cart.php?preco=1&qtd=qtd&id=4&nome=Salsa>
                <input type="hidden" name="encomendar[4][preco]"  value="1" />
                Qtd (1-10): <input type="number" name="qtd" min="1" max="10"><br>
                <input type="submit" name="encomendar[4]" value="Adicionar ao Carrinho">
            </form>
    </article>
</div>

你知道为什么会这样吗?

你需要对URL进行编码,但是如果你想接受任何输入,你应该使用POST而不是GET。使用get会遇到很多编码问题。

您需要对URL进行编码,但如果您想接受任何输入,则应该真正使用POST而不是get。get会给您带来很多编码问题。

我不使用smarty,因此您可能需要稍微修改一下我的语法,但我认为这正是您所需要的:

{assign var="url" value="{$BASE_URL}/actions/produtos/add_to_cart.php?preco={$produto.preco}&qtd=qtd&id={$produto.id}&nome={$produto.nome}" }
<form method="GET" action="{$url|urlencode}">
{assign var=“url”value=“{$BASE_url}/actions/produtos/add_to_cart.php?preco={$produto.preco}&qtd=qtd&id={$produto.id}&nome={$produto.nome}

我不使用smarty,因此您可能需要稍微修改一下我的语法,但我认为这正是您所需要的:

{assign var="url" value="{$BASE_URL}/actions/produtos/add_to_cart.php?preco={$produto.preco}&qtd=qtd&id={$produto.id}&nome={$produto.nome}" }
<form method="GET" action="{$url|urlencode}">
{assign var=“url”value=“{$BASE_url}/actions/produtos/add_to_cart.php?preco={$produto.preco}&qtd=qtd&id={$produto.id}&nome={$produto.nome}

如果我正确理解了您的问题,您需要使用urlencode()完整的url@JasonButler,我应该怎样做呢?我试图执行“action=urlencode(url)”,但它不起作用,假设urlencode是url的一部分。如果我正确理解了您的问题,您需要完整地使用urlencode()url@JasonButler,我应该怎样做呢?我试着做“action=urlencode(url)”,但它不起作用,假设urlencode是url的一部分。我考虑过这一点,问题是我真的不知道如何在POST上检索变量,使用这种声明方式。Qtd很容易,但我如何管理动态生成的变量呢?在PHP中,$\u REQUEST['encomendar']应该是一个数组,这正是您所需要的。我想了想,问题是我真的不知道如何在POST上检索变量,使用这种声明方式。Qtd很容易,但是我如何管理动态生成的数据呢?在PHP中,$\u REQUEST['encomendar']应该是一个数组,这正是您需要的。
{assign var="url" value="{$BASE_URL}/actions/produtos/add_to_cart.php?preco={$produto.preco}&qtd=qtd&id={$produto.id}&nome={$produto.nome}" }
<form method="GET" action="{$url|urlencode}">