如何在php变量中保留单选按钮值而不出错

如何在php变量中保留单选按钮值而不出错,php,html,forms,Php,Html,Forms,让我更详细地解释一下我想做什么 好的,我正在做一个巨大的表格来发送一封特定的电子邮件。我现在的问题是,当表单为submit和return false时,只有表单中的单选按钮显示错误。下面是我所说的一个例子: <?php if (isset($_POST['submit'])) { $radio = $_POST['number']; $name = $_POST['name']; } ?> <form action="&

让我更详细地解释一下我想做什么

好的,我正在做一个巨大的表格来发送一封特定的电子邮件。我现在的问题是,当表单为submit和return false时,只有表单中的单选按钮显示错误。下面是我所说的一个例子:

<?php

    if (isset($_POST['submit'])) {

        $radio = $_POST['number'];
        $name = $_POST['name'];

    }

?>

<form action="<?= $_SERVER['PHP_SELF'] ?>" method="post">
    <input type="radio" name="number" value="allo">
    <input type="radio" name="number" value="yo">
    <input type="text" name="name">
    <input type="submit" name="submit">
</form>


您得到的是服务器警告,而不是实际错误。
为了避免这种情况,您可以将标志设置为忽略警告,但这不是一种好做法。
我建议你检查一下表格是否设置好了,如果没有设置好就处理好

代码:



编辑:当然,不要忘记,更好的做法是针对恶意代码处理它们。

您得到的是服务器警告,而不是实际错误。
为了避免这种情况,您可以将标志设置为忽略警告,但这不是一种好做法。
我建议你检查一下表格是否设置好了,如果没有设置好就处理好

代码:


编辑:当然,不要忘记,更好的做法是针对恶意代码处理它们。

您可以编写

if (isset($_POST['name'])) $name = $_POST['name'];
但更好的是

isset($_POST['name']) ? $name = $_POST['name'] : $name = '';
你可以写

if (isset($_POST['name'])) $name = $_POST['name'];
但更好的是

isset($_POST['name']) ? $name = $_POST['name'] : $name = '';

您得到该错误是因为$u POST['number']未传递到页面。 您应该设置至少一个单选按钮,如果您想确保即使用户修改页面也不会出现错误,您可以使用isset检查,就像其他答案中所写的那样

如果您想知道为什么没有从名称中得到任何错误,那是因为它包含空字符串“”

检查此代码并查看页面的源代码,以查看print\r以格式化方式写入的内容

<?php

    if (isset($_POST['submit'])) {

        $radio = $_POST['number'];
        $name = $_POST['name'];

    }
    print_r($_POST)
?>

<form action="<?= $_SERVER['PHP_SELF'] ?>" method="post">
    <input type="radio" name="number" value="allo" checked="true">
    <input type="radio" name="number" value="yo">
    <input type="text" name="name">
    <input type="submit" name="submit">
</form>


您得到该错误是因为$u POST['number']未传递到页面。 您应该设置至少一个单选按钮,如果您想确保即使用户修改页面也不会出现错误,您可以使用isset检查,就像其他答案中所写的那样

如果您想知道为什么没有从名称中得到任何错误,那是因为它包含空字符串“”

检查此代码并查看页面的源代码,以查看print\r以格式化方式写入的内容

<?php

    if (isset($_POST['submit'])) {

        $radio = $_POST['number'];
        $name = $_POST['name'];

    }
    print_r($_POST)
?>

<form action="<?= $_SERVER['PHP_SELF'] ?>" method="post">
    <input type="radio" name="number" value="allo" checked="true">
    <input type="radio" name="number" value="yo">
    <input type="text" name="name">
    <input type="submit" name="submit">
</form>


请发布错误。对此表示抱歉,请注意:未定义的索引:第5行D:\xampp\htdocs\test\preg.php中的编号您需要检查是否先设置了它
isset()
请发布错误。很抱歉,请注意:未定义的索引:第5行的D:\xampp\htdocs\test\preg.php中的编号您需要检查是否已首先设置了它
isset()
我想你的意思是
null
。已经检查了它是否不是空的。我想你的意思是
null
。已经检查了它是否为空。我可以处理恶意代码,谢谢!这正是我想要的:)@user3038607,欢迎您,如果您喜欢,请将其投票为“接受答案”。顺便说一句,Orel Eraki,我想知道单选按钮或选择标记上是否需要htmlentities?我可以处理恶意代码,谢谢!这正是我想要的:)@user3038607,欢迎您,如果您喜欢,请将其投票为“接受答案”。顺便问一下,Orel Eraki,我想知道单选按钮或选择标记上是否需要htmlentities?