表格中的必填字段

时间:2018-10-09 08:32:02

标签: php html

我有一个简单的表格,我需要一些字段。

我不明白为什么它们不起作用。实际上,如果单击“发送”按钮,则会带我到错误页面。 我尝试同时插入既需要=“必需”又仅插入必需。 我要如何根据你? 谢谢您的时间和空缺。

<h3>&ensp;Dati Prenotazione</h3>
&ensp;Inserire i dati richiesti:<br><br>
<form method="post" action="input.php">
    <b>&ensp;Richiedente Conferenza:</b><br><br>
    &ensp;Nominativo:<br>&ensp;<input type="text" name="nominativo" placeholder="Nome Cognome" size="20" required="required"><br>
    &ensp;Email: <br> &ensp;<input type="email" name="email" size="20" placeholder="email" required><br>
    &ensp;Oggetto Conferenza:<br>&ensp;<textarea name="oggetto" rows="5" cols="40" placeholder="Specificare oggetto Videoconferenza" required></textarea><br>
    &ensp;Data: <br>&ensp;<input  type="date" name="data" required ><br>
    &ensp;Orario Inizio: <br>&ensp;<input type="time" name="orario_inizio" min="09:30:00" max="16:30:00" required ><br>
    &ensp;Orario Fine: <br>&ensp;<input type="time" name="orario_fine" min="10:00:00" max="18:30:00" required><br>

    <br>
    <b>&ensp;Partecipanti Interni </b>
    <br>
    <br>
    <div id="interni">
        <div id="first">
            &ensp;Nominativo:<br>&ensp;<textarea name="nominativoi" rows="5" cols="30" placeholder="Nome Cognome;" required ></textarea><br>
            &ensp;Email:<br>&ensp; <textarea  name="emaili" rows="5" cols="30" placeholder="Inserire Email" required></textarea><br> 

input.php

require ('config.php');

// Richiedente
$nominativo = $_POST['nominativo'];

$email = $_POST['email'];
$oggetto = $_POST['oggetto'];
$data = $_POST['data'];
$orario_inizio = $_POST['orario_inizio'];
$orario_fine = $_POST['orario_fine'];
$stanza = 0;

// Personale Interno
$nominativoi = $_POST['nominativoi'];
$emaili = $_POST['emaili'];

// Persona Esterno
$nominativoe = $_POST['nominativoe'];
$emaile = $_POST['emaile'];

//aggiunta di un'ora ( per tornare indietro cambiare $newTimeEnd con $orario_fine
$dateTime = DateTime::createFromFormat('H:i', $orario_fine);
$dateInterval = DateInterval::createFromDateString('1 hour');

$dateTime->add($dateInterval);    
$query1 = "INSERT INTO prenotazione (nominativo,email,data,orario_inizio,orario_fine,oggetto,nominativoi,emaili,nominativoe,emaile,stanza) VALUES ('$nominativo','$email','$data','$orario_inizio','$newTimeEnd','$oggetto','$nominativoi','$emaili','$nominativoe','$emaile',1)";

        $result1 = $dbh->prepare($query1);
        $result1->execute();
        $rex = 1;        

    }
    else if ($prenotato == 1 AND $prenotatoaccettato == 0 ){

        $query1 = "INSERT INTO prenotazione (nominativo,email,data,orario_inizio,orario_fine,oggetto,nominativoi,emaili,nominativoe,emaile,stanza) VALUES ('$nominativo','$email','$data','$orario_inizio','$newTimeEnd','$oggetto','$nominativoi','$emaili','$nominativoe','$emaile',2)";
        $result1 = $dbh->prepare($query1);
        $result1->execute();
        $rex = 1;
    }
  

编辑。

当我单击提交时,错误是 致命错误:未被捕获的错误:在布尔值上调用成员函数add() (约$dateTime->add($dateInterval);

3 个答案:

答案 0 :(得分:2)

检查代码中的必填字段

if (empty($_POST["nominativo"])) {
    addError('nominativo','nominativo error text');
  } else {
    $nominativo = $_POST["nominativo"];
 }


Nome Cognome : <input type="text" name="nominativo">
<span class="error">* <?php echo $nominativoErr;?></span>

答案 1 :(得分:0)

您不是在input.php中有问题吗(您可以发布吗?)?您确定路径吗?

此外,不要相信发送的内容,也请在您的php中进行验证,用户可以更改HTML和JS代码。

答案 2 :(得分:0)

您可以尝试以下操作:

if($email==NULL|$data==NULL) {
?>
<script>
alert("Missing Fields!");
location.href="form1.html";// page where ir your form 
</script>

<?php
}
if (!preg_match("/^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/", $email)) {
exit('The email format is incorrect.');
}