php 输入表单多次错误
php input form multiple error
我正在尝试创建一个包含多个字段的表单来完成输入验证。但是在所有的代码中我都收到了很多错误信息,坦白说我找不到问题出在哪里...我试着改了一些晃动但没有结果。
<?php
include_once 'config.php';
ini_set('display_startup_errors',1);
ini_set('display_errors',1);
error_reporting(-1);
$limite_dimensione = 512000;
$cartella_di_destinazione = "./uploads/eventi_facebook/";
$estensioni_consentite = array ('jpg', 'jpeg', 'png', 'gif');
$ext = strtolower(pathinfo($_FILES["banner_evento"]["name"], PATHINFO_EXTENSION));
if(isset($_POST['submit'])){
//Controllo Titolo
if(strlen($_POST['titolo_evento']) < 3){
$errorf[] = ERRORE_TITOLO_EVENTO;
} else {
if(!empty($row['titolo_evento'])){
$errorf[] = ERRORE_TITOLO_EVENTO_USATO;
}
}
//Controllo Data
$preg_data_evento = $_POST['data_evento'];
if(!preg_match('/^(19|20)\d\d[\-\/.](0[1-9]|1[012])[\-\/.](0[1-9]|[12][0-9]|3[01])$/', $preg_data_evento)){
$errorf[] = ERROR_DATA_EVENTO;
} else {
if(!empty($row['data_evento'])){
$errorf[] = ERRORE_DATA_EVENTO_USATO;
}
}
//Controllo Banner
if (in_array($ext, $estensioni_consentite)) {
if ($_FILES["banner_evento"]["size"] < $limite_dimensione) {
$nuovo_nome = md5 ( time() . $_FILES["banner_evento"]["name"]).'.'.$ext;
$file_caricato = $cartella_di_destinazione.$nuovo_nome;
if (move_uploaded_file($_FILES["banner_evento"]["tmp_name"], $file_caricato)) {
echo 'upload completato';
echo '<br>'.$file_caricato;
}
else {
echo 'errore nel caricamento del file';
}
}
else {
echo 'dimensione massima: '.$limite_dimensione.' byte';
}
}
else {
echo 'estensione non consentita';
}
//Controllo Facebook Link
$preg_link_facebook_evento = $_POST['link_facebook_evento'];
if(!preg_match('/(www\.)?facebook\.com/', $preg_link_facebook_evento)){
$errorf[] = ERROR_DATA_EVENTO;
} else {
if(!empty($row['titolo_evento'])){
$errorf[] = ERRORE_TITOLO_EVENTO_USATO;
}
}
//Controllo Descrizione Evento
if(strlen($_POST['descrizione_evento']) < 3){
$errorf[] = ERRORE_TITOLO_EVENTO;
} else {
if(!empty($row['descrizione_evento'])){
$errorf[] = ERRORE_TITOLO_EVENTO_USATO;
}
}
//Controllo Google Maps Link
if(strlen($_POST['googlemaps_evento']) < 3){
$errorf[] = ERRORE_TITOLO_EVENTO;
} else {
if(!empty($row['googlemaps_evento'])){
$errorf[] = ERRORE_TITOLO_EVENTO_USATO;
}
}
}
if(!isset($errorf)){
try
{ $sql = 'INSERT INTO wf_eventi SET titolo_evento = :titolo_evento,
data_evento = :data_evento,
banner_evento = :banner_evento,
link_facebook_evento = :link_facebook_evento,
descrizione_evento = :descrizione_evento,
googlemaps_evento = :googlemaps_evento';
$s = $pdo->prepare($sql);
$s->bindValue(':titolo_evento' , $_POST['titolo_evento']);
$s->bindValue(':data_evento' , $_POST['data_evento']);
$s->bindValue(':banner_evento' , $nuovo_nome);
$s->bindValue(':link_facebook_evento' , $_POST['link_facebook_evento']);
$s->bindValue(':descrizione_evento' , $_POST['descrizione_evento']);
$s->bindValue(':googlemaps_evento' , $_POST['googlemaps_evento']);
$s->execute();
}
catch (PDOException $e)
{
$error = "Errore di aggiunt dell'evento: " . $e->getMessage();
exit();
}
header('Location: .');
}
?>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.11/jquery-ui.min.js"> </script>
<script>
$(function() {
$("#data_evento").datepicker({dateFormat: "yy-mm-dd"});
});;</script></head>
<form action="" enctype="multipart/form-data" method="post">
<?php
if(isset($errorf)){
foreach ($errorf as $errorf)
{
echo '<div style="margin-left: 20px;">'.$errorf.'</div>';
}
echo '</div>';
}
?>
<div>
<label for="titolo_evento">Titolo :</label>
<input id="titolo_evento" name="titolo_evento" value="<?php if(isset($errorf)){ echo $_POST['titolo_evento']; } ?>" type="text">
</div>
<div>
<label for="data_evento">Data :</label>
<input id="data_evento" name="data_evento" value="<?php if(isset($errorf)){ echo $_POST['data_evento']; } ?>" type="date">
</div>
<div>
<label for="banner_evento">Banner :</label>
<input id="banner_evento" type="file" value="<?php if(isset($errorf)){ echo $_POST['banner_evento']; } ?>" name="banner_evento">
</div>
<div>
<label for="link_facebook_evento">Link Facebook :</label>
<input id="link_facebook_evento" name="link_facebook_evento" value="<?php if(isset($errorf)){ echo $_POST['link_facebook_evento']; } ?>" type="text">
</div>
<div>
<label for="descrizione_evento">Descrizione :</label>
<textarea id="descrizione_evento" name="descrizione_evento" value="<?php if(isset($errorf)){ echo $_POST['descrizione_evento']; } ?>" row="3" cols="40" type="text"></textarea>
</div>
<div>
<label for="googlemaps_evento">Google Maps:</label>
<input id="googlemaps_evento" name="googlemaps_evento" value="<?php if(isset($errorf)){ echo $_POST['googlemaps_evento']; } ?>" type="text">
</div>
</blockquote>
<div>
<input type="submit" value="submit" name="submit">
</div>
返回
错误:
Notice: Undefined index: banner_evento on line 11
Notice: Undefined index: titolo_evento on line 89
Notice: Undefined index: data_evento on line 90
Notice: Undefined variable: nuovo_nome on line 91
Notice: Undefined index: link_facebook_evento on line 92
Notice: Undefined index: descrizione_evento on line 93
Notice: Undefined index: googlemaps_evento on line 94
您正在尝试访问尚未设置的数据。
例如:
$ext = strtolower(pathinfo($_FILES["banner_evento"]["name"], PATHINFO_EXTENSION));
可能会更好:
if( isset( $_FILES["banner_evento"] ) ) {
$ext = strtolower(pathinfo($_FILES["banner_evento"]["name"], PATHINFO_EXTENSION));
}
或者,您已经在使用 if(isset($_POST['submit']))
检查 POST,因此您可以将该行移动到流程控制的那个部分。
我正在尝试创建一个包含多个字段的表单来完成输入验证。但是在所有的代码中我都收到了很多错误信息,坦白说我找不到问题出在哪里...我试着改了一些晃动但没有结果。
<?php
include_once 'config.php';
ini_set('display_startup_errors',1);
ini_set('display_errors',1);
error_reporting(-1);
$limite_dimensione = 512000;
$cartella_di_destinazione = "./uploads/eventi_facebook/";
$estensioni_consentite = array ('jpg', 'jpeg', 'png', 'gif');
$ext = strtolower(pathinfo($_FILES["banner_evento"]["name"], PATHINFO_EXTENSION));
if(isset($_POST['submit'])){
//Controllo Titolo
if(strlen($_POST['titolo_evento']) < 3){
$errorf[] = ERRORE_TITOLO_EVENTO;
} else {
if(!empty($row['titolo_evento'])){
$errorf[] = ERRORE_TITOLO_EVENTO_USATO;
}
}
//Controllo Data
$preg_data_evento = $_POST['data_evento'];
if(!preg_match('/^(19|20)\d\d[\-\/.](0[1-9]|1[012])[\-\/.](0[1-9]|[12][0-9]|3[01])$/', $preg_data_evento)){
$errorf[] = ERROR_DATA_EVENTO;
} else {
if(!empty($row['data_evento'])){
$errorf[] = ERRORE_DATA_EVENTO_USATO;
}
}
//Controllo Banner
if (in_array($ext, $estensioni_consentite)) {
if ($_FILES["banner_evento"]["size"] < $limite_dimensione) {
$nuovo_nome = md5 ( time() . $_FILES["banner_evento"]["name"]).'.'.$ext;
$file_caricato = $cartella_di_destinazione.$nuovo_nome;
if (move_uploaded_file($_FILES["banner_evento"]["tmp_name"], $file_caricato)) {
echo 'upload completato';
echo '<br>'.$file_caricato;
}
else {
echo 'errore nel caricamento del file';
}
}
else {
echo 'dimensione massima: '.$limite_dimensione.' byte';
}
}
else {
echo 'estensione non consentita';
}
//Controllo Facebook Link
$preg_link_facebook_evento = $_POST['link_facebook_evento'];
if(!preg_match('/(www\.)?facebook\.com/', $preg_link_facebook_evento)){
$errorf[] = ERROR_DATA_EVENTO;
} else {
if(!empty($row['titolo_evento'])){
$errorf[] = ERRORE_TITOLO_EVENTO_USATO;
}
}
//Controllo Descrizione Evento
if(strlen($_POST['descrizione_evento']) < 3){
$errorf[] = ERRORE_TITOLO_EVENTO;
} else {
if(!empty($row['descrizione_evento'])){
$errorf[] = ERRORE_TITOLO_EVENTO_USATO;
}
}
//Controllo Google Maps Link
if(strlen($_POST['googlemaps_evento']) < 3){
$errorf[] = ERRORE_TITOLO_EVENTO;
} else {
if(!empty($row['googlemaps_evento'])){
$errorf[] = ERRORE_TITOLO_EVENTO_USATO;
}
}
}
if(!isset($errorf)){
try
{ $sql = 'INSERT INTO wf_eventi SET titolo_evento = :titolo_evento,
data_evento = :data_evento,
banner_evento = :banner_evento,
link_facebook_evento = :link_facebook_evento,
descrizione_evento = :descrizione_evento,
googlemaps_evento = :googlemaps_evento';
$s = $pdo->prepare($sql);
$s->bindValue(':titolo_evento' , $_POST['titolo_evento']);
$s->bindValue(':data_evento' , $_POST['data_evento']);
$s->bindValue(':banner_evento' , $nuovo_nome);
$s->bindValue(':link_facebook_evento' , $_POST['link_facebook_evento']);
$s->bindValue(':descrizione_evento' , $_POST['descrizione_evento']);
$s->bindValue(':googlemaps_evento' , $_POST['googlemaps_evento']);
$s->execute();
}
catch (PDOException $e)
{
$error = "Errore di aggiunt dell'evento: " . $e->getMessage();
exit();
}
header('Location: .');
}
?>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.11/jquery-ui.min.js"> </script>
<script>
$(function() {
$("#data_evento").datepicker({dateFormat: "yy-mm-dd"});
});;</script></head>
<form action="" enctype="multipart/form-data" method="post">
<?php
if(isset($errorf)){
foreach ($errorf as $errorf)
{
echo '<div style="margin-left: 20px;">'.$errorf.'</div>';
}
echo '</div>';
}
?>
<div>
<label for="titolo_evento">Titolo :</label>
<input id="titolo_evento" name="titolo_evento" value="<?php if(isset($errorf)){ echo $_POST['titolo_evento']; } ?>" type="text">
</div>
<div>
<label for="data_evento">Data :</label>
<input id="data_evento" name="data_evento" value="<?php if(isset($errorf)){ echo $_POST['data_evento']; } ?>" type="date">
</div>
<div>
<label for="banner_evento">Banner :</label>
<input id="banner_evento" type="file" value="<?php if(isset($errorf)){ echo $_POST['banner_evento']; } ?>" name="banner_evento">
</div>
<div>
<label for="link_facebook_evento">Link Facebook :</label>
<input id="link_facebook_evento" name="link_facebook_evento" value="<?php if(isset($errorf)){ echo $_POST['link_facebook_evento']; } ?>" type="text">
</div>
<div>
<label for="descrizione_evento">Descrizione :</label>
<textarea id="descrizione_evento" name="descrizione_evento" value="<?php if(isset($errorf)){ echo $_POST['descrizione_evento']; } ?>" row="3" cols="40" type="text"></textarea>
</div>
<div>
<label for="googlemaps_evento">Google Maps:</label>
<input id="googlemaps_evento" name="googlemaps_evento" value="<?php if(isset($errorf)){ echo $_POST['googlemaps_evento']; } ?>" type="text">
</div>
</blockquote>
<div>
<input type="submit" value="submit" name="submit">
</div>
返回
错误:
Notice: Undefined index: banner_evento on line 11
Notice: Undefined index: titolo_evento on line 89
Notice: Undefined index: data_evento on line 90
Notice: Undefined variable: nuovo_nome on line 91
Notice: Undefined index: link_facebook_evento on line 92
Notice: Undefined index: descrizione_evento on line 93
Notice: Undefined index: googlemaps_evento on line 94
您正在尝试访问尚未设置的数据。
例如:
$ext = strtolower(pathinfo($_FILES["banner_evento"]["name"], PATHINFO_EXTENSION));
可能会更好:
if( isset( $_FILES["banner_evento"] ) ) {
$ext = strtolower(pathinfo($_FILES["banner_evento"]["name"], PATHINFO_EXTENSION));
}
或者,您已经在使用 if(isset($_POST['submit']))
检查 POST,因此您可以将该行移动到流程控制的那个部分。