Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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_Radio Button - Fatal编程技术网

单选按钮和PHP

单选按钮和PHP,php,radio-button,Php,Radio Button,我有一个关于html单选按钮和链接到php的问题。我不知道没有名字部分如何链接,因为我需要名字全部为1,否则你可以选择每个单选按钮。我的第二个问题是如何将按钮链接到php中 这是我的HTML代码: <!DOCTYPE html> <html> <head> <title></title> </head> <body> <h1>Pizza</

我有一个关于html单选按钮和链接到php的问题。我不知道没有名字部分如何链接,因为我需要名字全部为1,否则你可以选择每个单选按钮。我的第二个问题是如何将按钮链接到php中

这是我的HTML代码:

<!DOCTYPE html>
<html>
    <head>
        <title></title>
    </head>
    <body>
        <h1>Pizza</h1>
        <form method="POST" action="pizza.php">
            Wat op pizza:<br>
            <input type="radio" value="" name="pepperoni">Pepperoni<br>
            <input type="radio" value="" name="ananas">Ananas<br>
            <input type="radio" value="" name="ansjovis">Ansjovis<br>
            <input type="radio" value="" name="broccoli">Broccoli<br><br>
            <input type="submit" value="" name="Bestellen" value="Bestellen"><br>
        </form>
    </body>
</html>

披萨
Wat op pizza:
辣香肠
Ananas
Ansjovis
西兰花
那么,当选择了意大利辣香肠时,我该怎么说呢 这是我的PHP代码:

<!DOCTYPE html>
<html>
    <head>
        <title></title>
    </head>
    <body>
    <?php 
        $pep = $_POST["pepperoni"];
        $ana = $_POST["ananas"];
        $ans = $_POST["ansjovis"];
        $bro = $_POST["broccoli"];

    ?>
    </body>
</html>

辣香肠
Ananas
Ansjovis
西兰花

像这样做

不要使用不同的名称,而是将所有名称都设置为相同的名称,然后输入您现在拥有的名称和值。然后使用
$val=$\u POST[“yourvalue”]获取值

例如:


$val=$_POST[“samenameforall”];

您可以为单选按钮赋予相同的名称和不同的值。所以你可以选择1

<!DOCTYPE html>
<html>
    <head>
        <title></title>
    </head>
    <body>
        <h1>Pizza</h1>
        <form method="POST" action="pizza.php">
            Wat op pizza:<br>
            <input type="radio" value="Pepperoni" name="type">Pepperoni<br>
            <input type="radio" value="Ananas" name="type">Ananas<br>
            <input type="radio" value="Ansjovis" name="type">Ansjovis<br>
            <input type="radio" value="Broccoli" name="type">Broccoli<br><br>
            <input type="submit" name="Bestellen" value="Bestellen"><br>
        </form>
    </body>
</html>

披萨
Wat op pizza:
辣香肠
Ananas
Ansjovis
西兰花
在PHP中,您可以阅读

<?php
echo $_POST['type']; //Pepperoni, ananas(pineapple?) etc. 
?>


祝你好运

您在这里有点误用了无线电标签属性。比萨饼的类型应该是值,而不是单选按钮的名称。因此,如果将名称更改为
类型
,则可以使用PHP中的以下行(安全地)呼出用户的选择:
// If we have something submitted, process the form,
if (isset ($_POST['order'])) {
    // Pepperonies are special!
    if ($_POST['type'] == 'pepperoni') {
        $output = "Congrats! You ordered pepperoni!";
    } else {
        // Use of htmlspecialchars () to prevent XSS attacks.
        $output = "You ordered ".htmlspecialchars ($_POST['type'], ENT_QUOTES, 'UTF-8')." pizza.";
    }
}

?>
<!DOCTYPE html>
<html>
    <head>
        <title></title>
    </head>
    <body>
        <h1>Pizza</h1>
        <form method="POST" action="pizza.php">
            <fieldset>
                <legend>Wat op pizza:</legend>

                <input type="radio" id="pepp" value="pepperoni" name="type"><label for="pepp">Pepperoni</label>
                <input type="radio" id="anna" value="ananas" name="type"><label for="anna">Ananas</label>
                <input type="radio" id="ansj" value="ansjovis" name="type"><label for="ansj">Ansjovis</label>
                <input type="radio" id="brocc" value="broccoli" name="type"><label for="broc">Broccoli</label>
            </fieldset>

            <fieldset>
                <input type="submit" name="order" value="Bestellen">
            </fieldset>
        </form>


<?php

// Only show output if there is something to show.
if (!empty ($output)) {
    echo "<p>$output</p>";
}

?>
    </body>
</html>
//如果我们有提交的内容,请处理表单,
如果(isset($_POST['order'])){
//胡椒粉很特别!
如果($_POST['type']=='pepperoni'){
$output=“恭喜!你点了意大利香肠!”;
}否则{
//使用htmlspecialchars()来防止XSS攻击。
$output=“You ordered.”htmlspecialchars($\u POST['type'],entu QUOTES,'UTF-8')。“比萨饼”;
}
}
?>
披萨
Wat op比萨饼:
意大利 辣味 香肠
阿纳纳斯
安乔维斯
西兰花

请注意此处使用的
htmlspecialchars()
,因为它用于预防。

如果您选择比萨饼,您只需选择1个即可。因此,你必须给每台收音机起一个名字,例如pizzaName,你可以用这个名字(辣味香肠)。如果按submit,则可以通过PHP文件读取如下值:

$chosenPizza = $_POST['pizzaName'];
echo $chosenPizza;

而且产量将是意大利香肠

使用单选按钮时,应使用与单选元素相同的名称对其进行分组。看看这个:

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
    <?php 
        $toppings = filter_input(INPUT_POST, "toppings");
    ?>
    <h1>Pizza</h1>
    <form method="POST" action="pizza.php">
        Wat op pizza:<br>
        <input type="radio" value="pepperoni" name="toppings">Pepperoni<br>
        <input type="radio" value="ananas" name="toppings">Ananas<br>
        <input type="radio" value="ansjovis" name="toppings">Ansjovis<br>
        <input type="radio" value="broccoli" name="toppings">Broccoli<br><br>
        <input type="Submit" value="Bestellen">

        <?php
        echo "<br>";
        if($toppings != "") {
            echo "You ordered $toppings pizza. ";
        }
        ?>
    </form>
</body>

披萨
Wat op pizza:
辣香肠
Ananas
Ansjovis
西兰花

单选按钮允许用户仅选择有限数量选项中的一个,对于您的单选按钮,该特定项目组需要有一个名称属性。然后会有不同的值

您的表单应如下所示:

<!DOCTYPE html>
<html>
    <head>
        <title></title>
    </head>
    <body>
        <h1>Pizza</h1>
        <form method="POST" action="pizza.php">
            Wat op pizza:<br>
            <input type="radio" value="pepperoni" name="pizzaType">Pepperoni<br>
            <input type="radio" value="ananas" name="pizzaType">Ananas<br>
            <input type="radio" value="ansjovis" name="pizzaType">Ansjovis<br>
            <input type="radio" value="broccoli" name="pizzaType">Broccoli<br><br>
            <input type="submit" value="Bestellen" name="Bestellen" value="Bestellen"><br>
        </form>
    </body>
</html> 

披萨
Wat op pizza:
辣香肠
Ananas
Ansjovis
西兰花
如上所示,所有收音机都具有相同的名称属性pizzaType

然后,在pizza.php上,您需要在单击提交按钮时执行脚本,然后检查是否选择了选项,如果选择了选项,则返回用户选择的选项,如果他们没有返回用户必须至少选择项目的消息

您的pizza.php应该如下所示:

<?php


    if(isset($_POST['Bestellen'])){ //button clicked

        if(isset($_POST['pizzaType'])){//check if choice is checked

            echo "You ordered ".$_POST['pizzaType']. " pizza";

        }else{

            echo "Please select an option";
            die();
        }


    }
?> 


NB:为了您自己的利益,您还需要学习如何这一点非常重要,您必须始终将表单提交视为来自非常危险的黑客,这一点非常重要,在使用之前过滤和净化用户输入。

为您的收音机命名相同,但值不同。如果需要倍数,请使用复选框并将其用作数组。下面是一个使用复选框的示例答案,如果你想走这条路线。你的(秘密)编辑:“我的第二个问题是如何将按钮链接到php。”-哦,我看到了,所以情节变厚了。现在,人们已经根据你的原始帖子发布了答案,可能会被否决……我是对的,而不是我的否决票。出于几个原因,最好将php封装在一个条件语句中。收音机使用isset()
顺便说一句,如果你想编辑它。你是对的,但我只回答他的问题。对用户来说,最好的方法是使用一组指定给姓名的数字。您注意到OP对他们的问题进行了(秘密)编辑吗?重新加载以查看他们添加了什么。这实际上相当微妙,但有很大的区别。这也容易受到XSS攻击。更不用说它会抛出一个关于未定义索引的通知,因为您没有首先检查提交的数据。@ChristianF单选按钮如何向XSS打开?这里不是我的否决票,但这会立即抛出一个未定义索引的通知,加上OP询问如何添加超链接。这对XSS攻击很脆弱@ChristianF我改为filter_input^ ^@ChristianF这个问题没有问如何防止XSS注入,这是一个糟糕的问题。此外,许多人在早些时候发布了基于其原始帖子的答案,很可能被否决;老实说,有些东西不是我的。问题太广泛了;他们什么也没试过。这也对XSS开放。是的,我知道是的,但我的意思是,他没有要求提供跨端脚本保护,但是的,你是对的:D但你如何使用XSS呢?只需更改th的值
<!DOCTYPE html>
<html>
    <head>
        <title></title>
    </head>
    <body>
        <h1>Pizza</h1>
        <form method="POST" action="pizza.php">
            Wat op pizza:<br>
            <input type="radio" value="pepperoni" name="pizzaType">Pepperoni<br>
            <input type="radio" value="ananas" name="pizzaType">Ananas<br>
            <input type="radio" value="ansjovis" name="pizzaType">Ansjovis<br>
            <input type="radio" value="broccoli" name="pizzaType">Broccoli<br><br>
            <input type="submit" value="Bestellen" name="Bestellen" value="Bestellen"><br>
        </form>
    </body>
</html> 
<?php


    if(isset($_POST['Bestellen'])){ //button clicked

        if(isset($_POST['pizzaType'])){//check if choice is checked

            echo "You ordered ".$_POST['pizzaType']. " pizza";

        }else{

            echo "Please select an option";
            die();
        }


    }
?>