Php 试图解决此问题的注意事项:未定义变量

Php 试图解决此问题的注意事项:未定义变量,php,Php,我正在尝试动态更新我的表新闻 它工作正常,但我想以我的形式显示当前值​​这是我的新闻,所以我在我的值中使用= 但是关于date,我有两个错误: 我在输入中遇到此错误: 注意:未定义变量:西班牙语和未定义变量:英语 我理解erros,但我想问你,如果你知道我如何解决这个问题,我知道如果我在日期值内重复变量“西班牙语和英语”的定义,它是有效的,但重复这个变量似乎不正确 你知道我是如何用$english和$spanish变量的一个定义来解决这个问题的吗 <?php if(isset($_POST

我正在尝试动态更新我的表新闻

它工作正常,但我想以我的形式显示当前值​​这是我的新闻,所以我在我的值中使用=

但是关于date,我有两个错误:

我在输入中遇到此错误: 注意:未定义变量:西班牙语和未定义变量:英语

我理解erros,但我想问你,如果你知道我如何解决这个问题,我知道如果我在日期值内重复变量“西班牙语和英语”的定义,它是有效的,但重复这个变量似乎不正确

你知道我是如何用$english和$spanish变量的一个定义来解决这个问题的吗

<?php
if(isset($_POST['sendForm']))
{
    $f['title'] = $_POST['title'];
    $f['date'] = $_POST['date'];

    if(in_array('',$f))
    {
    echo 'Fill all fields';

    }


else
{
    $english = array(); //here I have some words
    $spanish = array();
    $result_date = str_ireplace ($english , $spanish, $f['date']);
    $date = DateTime::createFromFormat('l, j F, Y', $result_date);
    $date = $date->format('Y-m-d H:i:s'); 


    $update = $pdo->prepare("UPDATE news set title=:title, date=:date WHERE id = :id");
    $update->bindValue(':title', $f['title']);
    $update->bindValue(':date', $date); 
    $update->bindValue(':id', '20');
    $update->execute();         
}

}

?>
<form  action="" method="post" enctype="multipart/form-data">
    <label class="line">
    <span>Title:</span>
    <input type="text" name="title" value="<?php echo $read['title'] ; ?>" />
    </label>


    <label class="line">
    <span>Date:</span>
    <input type="text" name="date" value="
    <?php 
        $date = new DateTime($read['date']);
        $result_date = str_ireplace($spanish , $english, $date->format('l, j F, Y'));
        echo $result_date;
    ?>" />
    </label>

    <input type="submit" value="Submit" name="sendForm"/>

</form>

标题:

注意,您可以通过php.ini文件关闭,或者只使用
错误报告(0)但请确保此处不会显示任何其他错误。
您可以在网站上线后启用此功能。

愿这对你有帮助

您应该在if/else之前定义变量,在第一种情况下(在if中),您将使用未定义的变量。谢谢,它可以工作!但是在我们可以这样做的情况下,有什么方法可以将变量声明为php文件的全局变量?我以前尝试过使用$GLOBALS['西班牙语]]和$GLOBAS['英语]]的解决方案,但没有成功!虽然我不知道这是否是您希望在代码中显示的行为,以便我可以看到您使用GLOBALS的实现,但我将$english和$西班牙语替换为$GLOBALS['english']和$GLOBALS['西班牙语]…看看变量范围
<?php
    $english = array(); //define at first because if you post the variables are unset
    $spanish = array();
    if(isset($_POST['sendForm']))
    {
        $f['title'] = $_POST['title'];
        $f['date'] = $_POST['date'];
        if(in_array('',$f))
        {
            echo 'Fill all fields';
        }
    else
    {
        $result_date = str_ireplace ($english , $spanish, $f['date']);
        $date = DateTime::createFromFormat('l, j F, Y', $result_date);
        $date = $date->format('Y-m-d H:i:s'); 
        $update = $pdo->prepare("UPDATE news set title=:title, date=:date WHERE id = :id");
        $update->bindValue(':title', $f['title']);
        $update->bindValue(':date', $date); 
        $update->bindValue(':id', '20');
        $update->execute();         
    }

    }