我是PHP的初学者,我想检查用户是否填写了名为“jmeno”的输入。相应变量的名称相同。如果未输入输入,则应通过文本“Zadejjméno!”扩展变量“chybi”。并且该文本应出现在表单上方。
我没有错误。如果输入已填满,则表单继续。如果没有,那么表格不会继续 - 这应该如何运作。但是变量“chybi”中的错误消息在变量“jmeno”为空(第二个if)的情况下不会因某些未知原因而显示。
我尝试了很多东西。奇怪的是,这样一个简单的脚本不起作用。有任何想法吗?谢谢。
<?php
$chybi = '';
$zacatek = '
<p>some long text</p>
<form action="index.php" method="post" class="akce">
<p>' .$chybi.
'<input type="text" name="jmeno" placeholder="Zadej své jméno," /></p>
<p>
vyber pohlaví<br />
<input type="radio" name="pohlavi" value="žena" /> žena<br />
<input type="radio" name="pohlavi" value="muž" /> muž
</p>
<p>a pokud se nebojíš, <input type="submit" value="vstup!" /></p>
</form>
';
if ( isset($_POST['jmeno']) && isset($_POST['pohlavi']) ) {
$jmeno = $_POST['jmeno'];
$pohlavi = $_POST['pohlavi'];
if ( empty($jmeno) ) {
$chybi .= 'Zadej jméno!<br />';
echo $zacatek;
}
else {
echo "Jmenuješ se $jmeno a jsi $pohlavi.";
}
}
else {
echo $zacatek;
}
?>
答案 0 :(得分:2)
正如@jylipaa指出你在设定它的价值之前回应了$ chybi。将您的逻辑移到$ zacatek varaible上方。
<?php
$chybi = '';
if ( isset($_POST['jmeno']) && isset($_POST['pohlavi']) ) {
$jmeno = $_POST['jmeno'];
$pohlavi = $_POST['pohlavi'];
if ( empty($jmeno) ) {
$chybi .= 'Zadej jméno!<br />';
}
else {
echo "Jmenuješ se $jmeno a jsi $pohlavi.";
}
}
$zacatek = '
<p>some long text</p>
<form action="index.php" method="post" class="akce">
<p>' .$chybi.
'<input type="text" name="jmeno" placeholder="Zadej své jméno," /></p>
<p>
vyber pohlaví<br />
<input type="radio" name="pohlavi" value="žena" /> žena<br />
<input type="radio" name="pohlavi" value="muž" /> muž
</p>
<p>a pokud se nebojíš, <input type="submit" value="vstup!" /></p>
</form>
';
echo $zacatek;
?>
答案 1 :(得分:1)
你在$ chybi仍为空的代码开头设置$ zacatek。然后将其作为字符串处理,稍后设置$ chybi的值将不会改变字符串的内容。