Php 对每个变量后抛出未定义的索引

Php 对每个变量后抛出未定义的索引,php,post,echo,Php,Post,Echo,我在这里定义帖子: else if(isset($_POST["Edit"])){ $result_set = $sqlConn->query("SELECT Art, Ime, Cijena, Kol FROM permatable WHERE Art='{$_POST["Art"]}' LIMIT 1"); $Item = $result_set->fetch_array(); $_POST["Art"] = $Item["Art"]; $_POS

我在这里定义帖子:

else if(isset($_POST["Edit"])){
    $result_set = $sqlConn->query("SELECT Art, Ime, Cijena, Kol FROM permatable WHERE Art='{$_POST["Art"]}' LIMIT 1");
    $Item = $result_set->fetch_array();
    $_POST["Art"] = $Item["Art"];
    $_POST["Ime"] = $Item["Ime"];
    $_POST["Cijena"] = $Item["Cijena"];
    $_POST["Kol"] = $Item["Kol"];   
    header("Location: EditP.php");
}
现在可以调用Post-Edit和if-statment了。我还检查了查询,它返回了需要的所有内容。 现在,在标题位置,我得到了所有这些变量的未定义索引,这些索引来自以下代码:

echo "<input type='text' placeholder=".$_POST["Art"]." name='Art'>
    <input type='text' placeholder=".$_POST["Ime"]. "name='Ime'>
    <input type='text' placeholder=".$_POST["Cijena"]." name='Cijena'>
    <input type='text' placeholder=".$_POST["Kol"]." name='Kol'>";
我做错什么了吗?我自己看不到任何错误,这已经困扰了我一段时间。

那不行

您无法发送标题位置为的邮件

您可以尝试将它们添加到您的url

    foreach($item as $key=>$value)
    {
      $items .= $key."&".$value ;
    }
header("Location: EditP.php?".$items);
在edit.php页面中

echo "<input type='text' placeholder=".$_GET["Art"]." name='Art'>
    <input type='text' placeholder=".$_GET["Ime"]. "name='Ime'>
    <input type='text' placeholder=".$_GET["Cijena"]." name='Cijena'>
    <input type='text' placeholder=".$_GET["Kol"]." name='Kol'>";

不能使用POST变量重定向用户。这行不通。最好的方法是创建一个表单,然后在页面加载后通过JavaScript自动提交。例如:

<form id="my_form" action="http://example.com" method="post">
    <input type="hidden" name="name" value="<?php echo htmlspecialchars($name); ?>">
    <input type="hidden" name="email" value="<?php echo htmlspecialchars($email); ?>">
    <input type="hidden" name="etc" value="<?php echo htmlspecialchars($etc); ?>">
</form>

<script type="text/javascript">
    //Our form submission function.
    function submitForm() {
        document.getElementById('my_form').submit();
    }
    //Call the function submitForm() as soon as the page has loaded.
    window.onload = submitForm;
</script>

尝试将花括号更改为小括号。

嗯,我在结尾使用了SESSION,所以我只是将代码更改为以下内容:

$result_set = $sqlConn->query("SELECT Art, Ime, Cijena, Kol FROM permatable WHERE Art='{$_POST["Art"]}' LIMIT 1");
    $Item = $result_set->fetch_array();
    $_SESSION["Art"] = $Item["Art"];
    $_SESSION["Ime"] = $Item["Ime"];
    $_SESSION["Cijena"] = $Item["Cijena"];
    $_SESSION["Kol"] = $Item["Kol"];    
    header("Location: EditP.php");
对于EditP:

echo "<input type='text' placeholder=".$_SESSION["Art"]." name='Art'>
<input type='text' placeholder=".$_SESSION["Ime"]. "name='Ime'>
<input type='text' placeholder=".$_SESSION["Cijena"]." name='Cijena'>
<input type='text' placeholder=".$_SESSION["Kol"]." name='Kol'>";

您正在尝试在发送到其他文件之前设置POST?那不行。你想达到什么目的?看起来你想使用cURL?为什么不这样做:否则如果设置为$_POST[Edit]{include'EditP.php';}是的,你做了一些错误的事情。首先,与您最初的问题无关的是,您对SQL注入持开放态度。第二件事是,您总是假设数据库将返回一些东西。第三件事是,您正在更改位置,或者如果您愿意,更改正在执行的实际PHP脚本。在$\u POST中,不在脚本之间保留变量。这是您要使用的$\会话。您需要使用会话。您无法填充post,并期望在重定向后在另一个文件中获取内容$_当他们的浏览器点击EditP.php时,POST将不包含任何内容。使用$\u会话。
echo "<input type='text' placeholder=".$_SESSION["Art"]." name='Art'>
<input type='text' placeholder=".$_SESSION["Ime"]. "name='Ime'>
<input type='text' placeholder=".$_SESSION["Cijena"]." name='Cijena'>
<input type='text' placeholder=".$_SESSION["Kol"]." name='Kol'>";