Form in HTML e PHP - non mi visualizza messaggio di Inserimento record

di il
13 risposte

Form in HTML e PHP - non mi visualizza messaggio di Inserimento record

Buonasera,

ho tre pagine, la prima (area_riservata.php) contiene il form per l'inserimento dei dati nel DB e del php per la visualizzazione del messaggio di inserimento avvenuto con successo :

<head>
......
	<style>
 .header-wrap-clone{
    height: 100px!important;
}

.file-caption.icon-visible .file-caption-name {
	font-family: 'Lato', sans-serif;
	color: #666;
}

.form-widget { position: relative; }

#checkout-same-as-billing {
	position: absolute;
	top: 10px;
	left: auto;
	right: 0;
	z-index: 5;
}

#checkout-same-as-billing2 {
	position: absolute;
	top: 10px;
	left: auto;
	right: 0;
	z-index: 5;
}

#checkout-same-as-billing3 {
	position: absolute;
	top: 10px;
	left: auto;
	right: 0;
	z-index: 5;
}

#checkout-same-as-billing4 {
	position: absolute;
	top: 10px;
	left: auto;
	right: 0;
	z-index: 5;
}

#checkout-same-as-billing5 {
	position: absolute;
	top: 10px;
	left: auto;
	right: 0;
	z-index: 5;
}

#checkout-same-as-billing6 {
	position: absolute;
	top: 10px;
	left: auto;
	right: 0;
	z-index: 5;
}

.file-caption.icon-visible .file-caption-name {
		font-family: 'Lato', sans-serif;
		color: #666;
	}
	.form-process {
		position: absolute;
		-webkit-transition: all .3s ease;
		-o-transition: all .3s ease;
		transition: all .3s ease;
		background-image: none;
	}

	.form-process > div { background-color: #999;  }

	.form-process,
	#template-contactform-submitted,
	.template-contactform-complete .form-process {
		display: none;
		opacity: 0;
		background-color: rgba(255,255,255,0.7);
	}

	.template-contactform-processing .form-process {
		display: block;
		opacity: 1;
	}
    </style>
</head>
......
<section id="content">
			<div class="content-wrap">
				<div class="container clearfix">

					<div style="text-align: center;">
					  <h3 style="font-weight: bold;">Area Riservata</h3>
					  <p style="font-weight: bold;">Benvenuto, <?php echo $nome; ?>!</p>
					</div>
					

	<div class="form-widget">
		<div class="form-result"></div>
	
						<form class="row" id="checkout-form" action="aggiungi_record.php" method="post" enctype="multipart/form-data" target="_self">
						
							<div class="form-process">
								<div class="css3-spinner">
									<div class="css3-spinner-scaler"></div>
								</div>
							</div>
							<div class="col-lg-6">
								<div class="row checkout-form-billing">
																
									<div class="col-12 form-group">
										<label for="stagione">Stagione:</label>
										<input type="text" name="stagione" id="checkout-form-billing-stagione" class="form-control required" placeholder="Stagione">
									</div>
									
									<div class="col-12 form-group">	
										<label for="societa">Società:</label>
										<input type="text" name="societa" id="checkout-form-billing-societa" class="form-control required" placeholder="Società">
									</div>
									
									<div class="col-6 form-group">
										<label for="campionato">Campionato:</label>
							  
										<select name="campionato" class="form-select required" id="checkout-form-billing-campionato">
										  <option value="Champions League">Champions League</option>
										  <option value="Europa League">Europa League</option>
										  <option value="Serie A">Serie A</option>
										  <option value="Serie B">Serie B</option>
										  <option value="Serie C">Serie C</option>
										  <option value="Serie D">Serie D</option>
										</select>
									</div>
									
									<div class="col-12 form-group">
									  <label for="giocatore">Giocatore:</label>
									  <input type="text" name="giocatore" id="checkout-form-billing-giocatore" class="form-control required" placeholder="Giocatore">
									</div>
									
									<div class="col-12 form-group">
										<label for="match">Match:</label>
										<input type="text" name="match" id="checkout-form-billing-match" class="form-control required" placeholder="Match">
									</div>
									
									
									<div class="col-12 bottommargin-sm">
										<label for="template-contactform-platform1" class="mb-3">Tempo di Gioco:</label><br>
											<div class="btn-group w-100" role="group">
												<input type="radio" class="btn-check" name="tempo_di_gioco" id="template-contactform-platform-mobile" autocomplete="off" value="1° Tempo">
												<label for="template-contactform-platform-mobile" class="btn btn-outline-secondary flex-fill fw-semibold ls0 nott">1° T</label>
												<input type="radio" class="btn-check" name="tempo_di_gioco" id="template-contactform-platform-web" autocomplete="off" value="2° Tempo">
												<label for="template-contactform-platform-web" class="btn btn-outline-secondary flex-fill fw-semibold ls0 nott">2° T</label>
												<input type="radio" class="btn-check" name="tempo_di_gioco" id="template-contactform-platform-others" autocomplete="off" value="ND">
												<label for="template-contactform-platform-others" class="btn btn-outline-secondary flex-fill fw-semibold ls0 nott">ND</label>		
											</div>
									</div>
									
									<div class="col-12 bottommargin-sm">
										<label for="template-contactform-platform2" class="mb-3">Maglia:</label><br>
											<div class="btn-group w-100" role="group">
												<input type="radio" class="btn-check" name="maglia[]" id="template-contactform-platform-mobile1" autocomplete="off" value="1">
												<label for="template-contactform-platform-mobile1" class="btn btn-outline-secondary flex-fill fw-semibold ls0 nott">1°</label>
												<input type="radio" class="btn-check" name="maglia[]" id="template-contactform-platform-web1" autocomplete="off" value="2">
												<label for="template-contactform-platform-web1" class="btn btn-outline-secondary flex-fill fw-semibold ls0 nott">2°</label>
												<input type="radio" class="btn-check" name="maglia[]" id="template-contactform-platform-others1" autocomplete="off" value="3">
												<label for="template-contactform-platform-others1" class="btn btn-outline-secondary flex-fill fw-semibold ls0 nott">3°</label>
												<input type="radio" class="btn-check" name="portiere" id="template-contactform-platform-others2.1" autocomplete="off" value="si">
												<label for="template-contactform-platform-others2.1" class="btn btn-outline-secondary flex-fill fw-semibold ls0 nott">Portiere</label>												
											</div>
									</div>
									
									<div class="col-12 bottommargin-sm">
										<label for="template-contactform-platform3" class="mb-3">Maglia in Vendita:</label><br>
											<div class="btn-group w-100" role="group">
												<input type="radio" class="btn-check" name="invendita" id="template-contactform-platform-mobile3" autocomplete="off" value="si">
												<label for="template-contactform-platform-mobile3" class="btn btn-outline-secondary flex-fill fw-semibold ls0 nott">SI</label>
												<input type="radio" class="btn-check" name="invendita" id="template-contactform-platform-web3" autocomplete="off" value="no">
												<label for="template-contactform-platform-web3" class="btn btn-outline-secondary flex-fill fw-semibold ls0 nott">NO</label>
											</div>
									</div>
									
									<div class="col-12 bottommargin-sm">
										<label for="template-contactform-platform4" class="mb-3">Memorabilia:</label><br>
											<div class="btn-group w-100" role="group">
												<input type="radio" class="btn-check" name="memorabilia" id="template-contactform-platform-mobile4" autocomplete="off" value="si">
												<label for="template-contactform-platform-mobile4" class="btn btn-outline-secondary flex-fill fw-semibold ls0 nott">SI</label>
												<input type="radio" class="btn-check" name="memorabilia" id="template-contactform-platform-web4" autocomplete="off" value="no">
												<label for="template-contactform-platform-web4" class="btn btn-outline-secondary flex-fill fw-semibold ls0 nott">NO</label>
											</div>
									</div>
						
								</div>
							</div>
							
							<div class="col-lg-6 mt-5 mt-lg-0">
								<div class="row checkout-form-shipping">
								
									<div class="col-12 form-group">
										<label for="taglia">Taglia:</label>
										<input type="text" name="Taglia" id="checkout-form-billing-taglia" class="form-control required" placeholder="Taglia">
									</div>
																		
									<div class="col-12 form-group">
										 <label for="numero_maglia">Numero Maglia:</label>
										 <input type="text" name="numero_maglia" id="checkout-form-shipping-nmaglia" class="form-control required" value="" placeholder="Numero Maglia">
									</div>
									
									<div class="col-6 form-group">
										<label for="descrizione">Descrizione:</label>
										<input type="text" name="descrizione" id="checkout-form-shipping-descrizione" class="form-control required" value="" placeholder="Descrizione">
									</div>
									
									<div class="col-6 form-group">
										<label for="particolarita">Particolarità:</label>
										<input type="text" name="particolarita" id="checkout-form-shipping-particolarita" class="form-control required" value="" placeholder="Particolarità">
									</div>
							  							
									<div class="col-6 form-group">
										 <label for="foto1">Foto Retro Maglia:</label>
										 <input type="file" name="foto1" id="foto1">
									</div>
									
									<div class="col-6 form-group">
										 <label for="foto2">Foto Fronte Maglia:</label>
										 <input type="file" name="foto2"id="foto2">
									</div>

									<div class="col-6 form-group">
										 <label for="foto_prova">Foto Prova:</label>
										 <input type="file" name="foto_prova" id="foto_prova">
									</div>
									<div class="col-6 form-group">
										 <label for="foto_prova2">Foto Prova 2:</label>
										 <input type="file" name="foto_prova2" id="foto_prova2">
									</div>	
										
										  
						   
									<div class="col-12">
										<div class="form-group center">
											<form id="aggiungiRecordForm" action="aggiungi_record.php" method="POST">
											<button id="aggiungiRecordButton" type="submit" class="btn btn-primary">Aggiungi Record</button>
											</form>
										</div>	
									</div>
								</div>	
							</div>		
									<?php
									// Verifica se il parametro "message" è presente nell'URL
									if (isset($_GET['message'])) {
										$message = $_GET['message'];
										echo '<div style="text-align: center; color: green; font-weight: bold;">' . $message . '</div>';
									}
									?>
							
						  </form>
						  

						</div>

				</div>

				</div>
		</section><!-- #content end -->

Poi la pagina_aggiungi_record.php

<?php
include 'db_connect.php'; // Includi il file di connessione al database
include 'ftp_function.php'; // Includi il file con le funzioni di spostamento FTP

// Funzione per verificare se il file è un'immagine
function isImageFile($file) {
    $imageTypes = ['image/jpeg', 'image/png', 'image/gif'];
    return in_array($file['type'], $imageTypes);
}

// Gestione del form di inserimento
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $stagione = $_POST["stagione"];
    $anno = substr($stagione, 0, 4);
	$anno_successivo = $anno + 1;
    $targetDir = "public/fotomaglie/" . $anno . "_" . $anno_successivo . "/";

    if (!is_dir($targetDir)) {
        mkdir($targetDir, 0777, true);
    }

    $foto1 = "";
    $foto2 = "";
    $foto_prova = "";
    $foto_prova2 = "";
	
	
	if ($_FILES["foto1"]["name"] != "") {
    if (isImageFile($_FILES["foto1"])) {
        $foto1 = $targetDir . $_FILES["foto1"]["name"];
        if (!move_uploaded_file($_FILES["foto1"]["tmp_name"], $foto1)) {
            echo "Errore nel caricamento della foto 1.";
            exit;
        } else {
            $destination_file = "/la-maglia-rosanero.com/fotomaglie/" . $anno . "_" . $anno_successivo . "/" . $_FILES["foto1"]["name"];
            $source_file = $foto1;
            if (!moveFileViaFTP($source_file, $destination_file, $ftp_server, $ftp_user_name, $ftp_user_pass)) {
                echo "Errore nello spostamento della foto 1 via FTP.";
                exit;
            }
        }
    } else {
        echo "Errore: il file 1 non è un'immagine.";
        exit;
    }
}

if ($_FILES["foto2"]["name"] != "") {
    if (isImageFile($_FILES["foto2"])) {
        $foto2 = $targetDir . $_FILES["foto2"]["name"];
        if (!move_uploaded_file($_FILES["foto2"]["tmp_name"], $foto2)) {
            echo "Errore nel caricamento della foto 2.";
            exit;
        } else {
            $destination_file = "/la-maglia-rosanero.com/fotomaglie/" . $anno . "_" . $anno_successivo . "/" . $_FILES["foto2"]["name"];
            $source_file = $foto2;
            if (!moveFileViaFTP($source_file, $destination_file, $ftp_server, $ftp_user_name, $ftp_user_pass)) {
                echo "Errore nello spostamento della foto 2 via FTP.";
                exit;
            }
        }
    } else {
        echo "Errore: il file 2 non è un'immagine.";
        exit;
    }
}

if ($_FILES["foto_prova"]["name"] != "") {
    if (isImageFile($_FILES["foto_prova"])) {
        $foto_prova = $targetDir . $_FILES["foto_prova"]["name"];
        if (!move_uploaded_file($_FILES["foto_prova"]["tmp_name"], $foto_prova)) {
            echo "Errore nel caricamento della foto di prova.";
            exit;
        } else {
            $destination_file = "/la-maglia-rosanero.com/fotomaglie/" . $anno . "_" . $anno_successivo . "/" . $_FILES["foto_prova"]["name"];
            $source_file = $foto_prova;
            if (!moveFileViaFTP($source_file, $destination_file, $ftp_server, $ftp_user_name, $ftp_user_pass)) {
                echo "Errore nello spostamento della foto di prova via FTP.";
                exit;
            }
        }
    } else {
        echo "Errore: il file foto prova non è un'immagine.";
        exit;
    }
}

if ($_FILES["foto_prova2"]["name"] != "") {
    if (isImageFile($_FILES["foto_prova2"])) {
        $foto_prova2 = $targetDir . $_FILES["foto_prova2"]["name"];
        if (!move_uploaded_file($_FILES["foto_prova2"]["tmp_name"], $foto_prova2)) {
            echo "Errore nel caricamento della foto di prova 2.";
            exit;
        } else {
            $destination_file = "/la-maglia-rosanero.com/fotomaglie/" . $anno . "_" . $anno_successivo . "/" . $_FILES["foto_prova2"]["name"];
            $source_file = $foto_prova2;
            if (!moveFileViaFTP($source_file, $destination_file, $ftp_server, $ftp_user_name, $ftp_user_pass)) {
                echo "Errore nello spostamento della foto di prova 2 via FTP.";
                exit;
            }
        }
    } else {
        echo "Errore: il file foto prova 2 non è un'immagine.";
        exit;
    }
}


    // Preparazione dell'inserimento nel database
    $giocatore = $_POST["giocatore"];
    $societa = $_POST["societa"];
    
    if (isset($_POST['maglia']) && is_array($_POST['maglia'])) {
        $maglie_selezionate = $_POST['maglia'];
        $maglia = '';
        foreach ($maglie_selezionate as $maglia_selezionata) {
            if ($maglia !== '') {
                $maglia .= ', ';
            }
            $maglia .= $maglia_selezionata;
        }
    } else {
        $maglia = ''; // Nessuna maglia selezionata
    }
    
    $numero_maglia = $_POST["numero_maglia"];
    $campionato = $_POST["campionato"];
    $match = $_POST["match"];
    $tempo_di_gioco = $_POST["tempo_di_gioco"];
    $particolarita = $_POST["particolarita"];
    $descrizione = $_POST["descrizione"];
    $Taglia = $_POST["Taglia"];

    // Ottenere il valore per il campo "paginariferimento"
    $paginariferimento = str_replace('/', '', $stagione) . '.php';

    
$memorabilia = 0; // Valore predefinito per $memorabilia
$portiere = 0; // Valore predefinito per $portiere
$invendita = 0; // Valore predefinito per $invendita


if ($_POST['invendita'] == 'si') {
    $invendita = 1;
}

if ($_POST['memorabilia'] == 'si') {
    $memorabilia = 1;
}

if ($_POST['portiere'] == 'si') {
    $portiere = 'si';
}





    // Inserimento dei dati nel database
    $sql = "INSERT INTO maglie (anno, giocatore, societa, maglia, numero_maglia, stagione, campionato, `match`, tempo_di_gioco, particolarita, descrizione, foto1, foto2, Taglia, foto_prova, foto_prova2, invendita, memorabilia, paginariferimento, portiere)
            VALUES ('$anno', '$giocatore', '$societa', '$maglia', '$numero_maglia', '$stagione', '$campionato', '$match', '$tempo_di_gioco', '$particolarita', '$descrizione', '$foto1', '$foto2', '$Taglia', '$foto_prova', '$foto_prova2', '$invendita', '$memorabilia', '$paginariferimento', '$portiere')";

   // Dopo aver aggiunto il record, reindirizza l'utente alla pagina "area_riservata.php"
    header("Location: area_riservata.php?message=Record%20Aggiunto%20con%20successo");
	
	// Verifica se il file caricato non è un'immagine
			$allowedTypes = array('image/jpeg', 'image/png', 'image/gif');
			$fileType1 = $_FILES['foto1']['type'];
			$fileType2 = $_FILES['foto2']['type'];
			$fileTypeProva = $_FILES['foto_prova']['type'];
			$fileTypeProva2 = $_FILES['foto_prova2']['type'];

			if (!in_array($fileType1, $allowedTypes) && $fileType1 !== '') {
				$errorMessage = 'Il file 1 deve essere un\'immagine JPEG, PNG o GIF.';
				header("Location: aggiungi_record.php?message=" . urlencode($errorMessage));
				exit;
			}

			if (!in_array($fileType2, $allowedTypes) && $fileType2 !== '') {
				$errorMessage = 'Il file 2 deve essere un\'immagine JPEG, PNG o GIF.';
				header("Location: aggiungi_record.php?message=" . urlencode($errorMessage));
				exit;
			}

			if (!in_array($fileTypeProva, $allowedTypes) && $fileTypeProva !== '') {
				$errorMessage = 'Il file di prova deve essere un\'immagine JPEG, PNG o GIF.';
				header("Location: aggiungi_record.php?message=" . urlencode($errorMessage));
				exit;
			}

			if (!in_array($fileTypeProva2, $allowedTypes) && $fileTypeProva2 !== '') {
				$errorMessage = 'Il secondo file di prova deve essere un\'immagine JPEG, PNG o GIF.';
				header("Location: aggiungi_record.php?message=" . urlencode($errorMessage));
				exit;
			}

    if ($conn->query($sql) === TRUE) {
        echo "Record inserito con successo.";
		
		 // Query per sostituire il testo "public/" con "../" nelle colonne foto1, foto2, foto_prova e foto_prova2
    $updateQuery = "UPDATE maglie SET foto1 = REPLACE(foto1, 'public/', '../'), foto2 = REPLACE(foto2, 'public/', '../'), foto_prova = REPLACE(foto_prova, 'public/', '../'), foto_prova2 = REPLACE(foto_prova2, 'public/', '../')";

    if ($conn->query($updateQuery) === TRUE) {
        echo "Testo sostituito con successo.";
    } else {
        echo "Errore nella sostituzione del testo: " . $conn->error;
    }
	
	include 'eliminapublic.php';
	
    } else {
        echo "Errore nell'inserimento del record: " . $conn->error;
    }
}

$conn->close();
?>

poi ho una pagina che è la versione base della prima che ho postato e senza modifiche al css del form

<head>
....
	<style>
 .header-wrap-clone{
    height: 100px!important;
}
    </style>
</head>
......
<section id="content">
			<div class="content-wrap">
				<div class="container clearfix">

					<div style="text-align: center;">
					  <h3 style="font-weight: bold;">Area Riservata</h3>
					  <p style="font-weight: bold;">Benvenuto, <?php echo $nome; ?>!</p>
					</div>

	

	
						<form action="aggiungi_record.php" method="post" enctype="multipart/form-data" target="_self">
						  <table align="center">
							<tr>
							  <td><label for="stagione">Stagione:</label></td>
							  <td><input type="text" name="stagione" id="stagione"></td>
							   <td><label for="campionato">Campionato:</label></td>
							  <td>
								<select name="campionato" id="campionato">
								  <option value="Champions League">Champions League</option>
								  <option value="Europa League">Europa League</option>
								  <option value="Serie A">Serie A</option>
								  <option value="Serie B">Serie B</option>
								  <option value="Serie C">Serie C</option>
								  <option value="Serie D">Serie D</option>
								</select>
							  </td>
							</tr>
							<tr>
							  <td><label for="societa">Società:</label></td>
							  <td><input type="text" name="societa" id="societa"></td>
							  <td><label for="giocatore">Giocatore:</label></td>
							  <td><input type="text" name="giocatore" id="giocatore"></td>
							</tr>
							<tr>
							   <td><label for="match">Match:</label></td>
							  <td><input type="text" name="match" id="match"></td>
							    <td><label>Tempo di Gioco:</label></td>
								  <td>
									<label for="tempo1"><input type="checkbox" name="tempo_di_gioco" id="tempo1" value="1" onclick="disableTempoCheckboxes(1)"> 1° T</label>
									<label for="tempo2"><input type="checkbox" name="tempo_di_gioco" id="tempo2" value="2" onclick="disableTempoCheckboxes(2)"> 2° T</label>
								  </td>
							</tr>
							<tr>
							  <td><label>Maglia:</label></td>
							 <td>
							  <label for="maglia1"><input type="checkbox" name="maglia[]" id="maglia1" value="1" onclick="disableMaglieCheckboxes(1)"> 1°</label>
							  <label for="maglia2"><input type="checkbox" name="maglia[]" id="maglia2" value="2" onclick="disableMaglieCheckboxes(2)"> 2°</label>
							  <label for="maglia3"><input type="checkbox" name="maglia[]" id="maglia3" value="3" onclick="disableMaglieCheckboxes(3)"> 3°</label>
							</td>
							  <td><label for="taglia">Taglia:</label></td>
							  <td><input type="text" name="Taglia" id="taglia"></td>
							</tr>
							<tr>
							  <td><label for="numero_maglia">Numero Maglia:</label></td>
							  <td><input type="text" name="numero_maglia" id="numero_maglia"></td>
							  <td><label for="portiere">Portiere:</label></td>
							  <td><input type="checkbox" name="portiere" id="portiere" value="1"></td>
							 </tr>
							 <tr>
							  <td><label for="descrizione">Descrizione:</label></td>
							  <td><input type="text" name="descrizione" id="descrizione" style="width: 200%;"></td>
							</tr>
							<tr>
							  <td><label for="particolarita">Particolarità:</label></td>
							  <td><input type="text" name="particolarita" id="particolarita" style="width: 200%;"></td>
							</tr>							
							<tr>
							  <td><label for="foto1">Foto 1:</label></td>
							  <td><input type="file" name="foto1" id="foto1"></td>
								<td><label for="foto_prova">Foto Prova:</label></td>
							  <td><input type="file" name="foto_prova" id="foto_prova"></td>
							</tr>
							<tr>
							  <td><label for="foto2">Foto 2:</label></td>
							  <td><input type="file" name="foto2" id="foto2"></td>
							  <td><label for="foto_prova2">Foto Prova 2:</label></td>
							  <td><input type="file" name="foto_prova2" id="foto_prova2"></td>
							</tr>
							<tr>
							  <td><label for="invendita">Maglia in vendita:</label></td>
								 <td><input type="checkbox" name="invendita" id="invendita" value="1"></td>
							  <td><label for="memorabilia">Memorabilia:</label></td>
							  <td><input type="checkbox" name="memorabilia" id="memorabilia"></td>
							</tr>
							
						   
						  </table>
									 <form id="aggiungiRecordForm" action="aggiungi_record.php" method="POST">
											<div style="text-align: center;">
											<button id="aggiungiRecordButton" type="submit">Aggiungi Record</button>
										</div>
									</form>
							
							<?php
							// Verifica se il parametro "message" è presente nell'URL
							if (isset($_GET['message'])) {
								$message = $_GET['message'];
								echo '<div style="text-align: center; color: green; font-weight: bold;">' . $message . '</div>';
							}
							?>
							
						  </form>

						</div>

				</div>

				</div>
		</section><!-- #content end -->

Il problema è questo. Utilizzando la pagina BASE appena clicco su AGGIUNGI RECORD mi visualizza il messaggio corretto in verde (record aggiunto con successo) e mi esegue anche la pagina ftp_function.php correttamente.

Se invece uso la versione del form con gli “abbellimenti” in css (la prima che ho messo nel post) invece accade che se clicco su Aggiungi Record la pagina mi si FREEZA eseguendo il contenuto della pagina aggiungi_record.php  e quindi aggiungendomi il record al db (tranne per ftp_function.php e non capisco il motivo) ma senza farmi vedere il messaggio RECORD AGGIUNTO CON SUCCESSO.

Cosa può essere secondo voi? 

13 Risposte

  • Re: Form in HTML e PHP - non mi visualizza messaggio di Inserimento record

    Analizzare il codice in toto, scritto in questo modo poco strutturato, per debuggarlo e capire cosa non va, mi sembra un compito improbo, almeno per il tempo che ho a disposizione io.

    Intanto non capisco perché ci sono due <form> uno dentro l'altro, non trovo che questa cosa abbia un senso.

    Io farei un po' di refactoring e tenderei a semplificare il tutto rendendo più chiare e distinte le varie parti, suddividendo la logica della presentazione (il fatto che PHP incentivi lo “spaghetti code”, non vuol dire che non sia possibile evitarlo, volendo…).

    Di sicuro c'è una differenza nella struttura delle pagine, perché il CSS non altera la funzionalità della pagina (non nelle modalità che si intendono qui).

  • Re: Form in HTML e PHP - non mi visualizza messaggio di Inserimento record

    Non ho trovato alcuna differenza nella struttura a parte il codice css..

    Provo a togliere il secondo form, quello del button.

    Domani provo. E cmq é come se non mi leggesse i messaggi che dovrebbe dare e si interrompesse lo script, infatti alcune cose del ftp function non le fa come quelle di svuotare la cartella public

  • Re: Form in HTML e PHP - non mi visualizza messaggio di Inserimento record

    Ciao benvenuto alessandro.vitale, esiste la differenza che in realtà può essere considerata come una.

    1) Quando effetui redirect non devi produrre output, nemmeno markup html o xhtml (solitamente il web server mostra la pagina di default)

    2) Nella versione non basica produci più output poiché già il punto uno non è rispettato, il browser o il sistema operativo o entrambi lo vedono come anomalia.

    Puoi aggiungere error_reporting(-1); in cima del primo script chiamante per avere più dettagli se php.ini è configurato.

    Su come l'agente utente “browser” valida un documento non è inerente in questo caso.

  • Re: Form in HTML e PHP - non mi visualizza messaggio di Inserimento record

    29/05/2023 - alessandro.vitale ha scritto:


    Provo a togliere il secondo form, quello del button.

    Oltre ai suggerimenti già forniti da altri, credo che questa sia un'ottima idea, più che altro perché non ha alcuno scopo quella implementazione: il form è il modulo da inviare, e dentro contiene il pulsante di “submit”, senza alcuna necessità né ragione di farne un altro.

  • Re: Form in HTML e PHP - non mi visualizza messaggio di Inserimento record

    29/05/2023 - Hormus ha scritto:


    Ciao benvenuto alessandro.vitale, esiste la differenza che in realtà può essere considerata come una.

    1) Quando effetui redirect non devi produrre output, nemmeno markup html o xhtml (solitamente il web server mostra la pagina di default)

    2) Nella versione non basica produci più output poiché già il punto uno non è rispettato, il browser o il sistema operativo o entrambi lo vedono come anomalia.

    Puoi aggiungere error_reporting(-1); in cima del primo script chiamante per avere più dettagli se php.ini è configurato.

    Su come l'agente utente “browser” valida un documento non è inerente in questo caso.

    Per piu di due output intendi quindi le due action nel primo form e poi in quello annidato, corretto?

    Mi pare peró che nella versione basica ci siano anche e li tutto funziona.

  • Re: Form in HTML e PHP - non mi visualizza messaggio di Inserimento record

    29/05/2023 - Alka ha scritto:


    29/05/2023 - alessandro.vitale ha scritto:


    Provo a togliere il secondo form, quello del button.

    Oltre ai suggerimenti già forniti da altri, credo che questa sia un'ottima idea, più che altro perché non ha alcuno scopo quella implementazione: il form è il modulo da inviare, e dentro contiene il pulsante di “submit”, senza alcuna necessità né ragione di farne un altro.

    Ok, domani provo e vi dico.

    Grazie 

  • Re: Form in HTML e PHP - non mi visualizza messaggio di Inserimento record

    In sostanza sarà  

    <div class="form-widget">
    		<div class="form-result"></div>
    	
    						<form class="row" id="checkout-form" action="aggiungi_record.php" method="post" enctype="multipart/form-data" target="_self">
    						........
                                        <div class="col-12">
       										<div class="form-group center">
    											<button id="aggiungiRecordButton" type="submit" class="btn btn-primary">Aggiungi Record</button>
    										</div>	
    									</div>
    
  • Re: Form in HTML e PHP - non mi visualizza messaggio di Inserimento record

    29/05/2023 - Hormus ha scritto:


    Ciao benvenuto alessandro.vitale, esiste la differenza che in realtà può essere considerata come una.

    1) Quando effetui redirect non devi produrre output, nemmeno markup html o xhtml (solitamente il web server mostra la pagina di default)

    2) Nella versione non basica produci più output poiché già il punto uno non è rispettato, il browser o il sistema operativo o entrambi lo vedono come anomalia.

    Puoi aggiungere error_reporting(-1); in cima del primo script chiamante per avere più dettagli se php.ini è configurato.

    Su come l'agente utente “browser” valida un documento non è inerente in questo caso.

    Ho eliminato un output di troppo (era una barra di progressione dopo che si cliccava il pulsante)

    29/05/2023 - Alka ha scritto:


    29/05/2023 - alessandro.vitale ha scritto:


    Provo a togliere il secondo form, quello del button.

    Oltre ai suggerimenti già forniti da altri, credo che questa sia un'ottima idea, più che altro perché non ha alcuno scopo quella implementazione: il form è il modulo da inviare, e dentro contiene il pulsante di “submit”, senza alcuna necessità né ragione di farne un altro.

    Ho tolto il secondo form.

    Ora la pagina non mi FREEZA, MI AGGIUNGE IL RECORD CORRETTAMENTE, ma nonostante tutto non mi visualizza il messaggio E NON MI ESEGUE l'include eliminapublic.php, c'è qualcosa che blocca la procedura perchè dovrebbe anche spuntarmi nella URL il messaggio essendo con metodo POST enon accade, mentre nella versione BASICA mi appare nellaURL

    Ecco il codice aggiornato :

    <div class="form-widget">
    	
    						<form class="row" id="checkout-form" action="aggiungi_record.php" method="post" enctype="multipart/form-data" target="_self">
    						
    							<div class="col-lg-6">
    								<div class="row checkout-form-billing">
    																
    									<div class="col-12 form-group">
    										<label for="stagione">Stagione:</label>
    										<input type="text" name="stagione" id="checkout-form-billing-stagione" class="form-control required" placeholder="Stagione">
    									</div>
    									
    									<div class="col-12 form-group">	
    										<label for="societa">Società:</label>
    										<input type="text" name="societa" id="checkout-form-billing-societa" class="form-control required" placeholder="Società">
    									</div>
    									
    									<div class="col-6 form-group">
    										<label for="campionato">Campionato:</label>
    							  
    										<select name="campionato" class="form-select required" id="checkout-form-billing-campionato">
    										  <option value="Champions League">Champions League</option>
    										  <option value="Europa League">Europa League</option>
    										  <option value="Serie A">Serie A</option>
    										  <option value="Serie B">Serie B</option>
    										  <option value="Serie C">Serie C</option>
    										  <option value="Serie D">Serie D</option>
    										</select>
    									</div>
    									
    									<div class="col-12 form-group">
    									  <label for="giocatore">Giocatore:</label>
    									  <input type="text" name="giocatore" id="checkout-form-billing-giocatore" class="form-control required" placeholder="Giocatore">
    									</div>
    									
    									<div class="col-12 form-group">
    										<label for="match">Match:</label>
    										<input type="text" name="match" id="checkout-form-billing-match" class="form-control required" placeholder="Match">
    									</div>
    									
    									
    									<div class="col-12 bottommargin-sm">
    										<label for="template-contactform-platform1" class="mb-3">Tempo di Gioco:</label><br>
    											<div class="btn-group w-100" role="group">
    												<input type="radio" class="btn-check" name="tempo_di_gioco" id="template-contactform-platform-mobile" autocomplete="off" value="1° Tempo">
    												<label for="template-contactform-platform-mobile" class="btn btn-outline-secondary flex-fill fw-semibold ls0 nott">1° T</label>
    												<input type="radio" class="btn-check" name="tempo_di_gioco" id="template-contactform-platform-web" autocomplete="off" value="2° Tempo">
    												<label for="template-contactform-platform-web" class="btn btn-outline-secondary flex-fill fw-semibold ls0 nott">2° T</label>
    												<input type="radio" class="btn-check" name="tempo_di_gioco" id="template-contactform-platform-others" autocomplete="off" value="ND">
    												<label for="template-contactform-platform-others" class="btn btn-outline-secondary flex-fill fw-semibold ls0 nott">ND</label>		
    											</div>
    									</div>
    									
    									<div class="col-12 bottommargin-sm">
    										<label for="template-contactform-platform2" class="mb-3">Maglia:</label><br>
    											<div class="btn-group w-100" role="group">
    												<input type="radio" class="btn-check" name="maglia[]" id="template-contactform-platform-mobile1" autocomplete="off" value="1">
    												<label for="template-contactform-platform-mobile1" class="btn btn-outline-secondary flex-fill fw-semibold ls0 nott">1°</label>
    												<input type="radio" class="btn-check" name="maglia[]" id="template-contactform-platform-web1" autocomplete="off" value="2">
    												<label for="template-contactform-platform-web1" class="btn btn-outline-secondary flex-fill fw-semibold ls0 nott">2°</label>
    												<input type="radio" class="btn-check" name="maglia[]" id="template-contactform-platform-others1" autocomplete="off" value="3">
    												<label for="template-contactform-platform-others1" class="btn btn-outline-secondary flex-fill fw-semibold ls0 nott">3°</label>
    												<input type="radio" class="btn-check" name="portiere" id="template-contactform-platform-others2.1" autocomplete="off" value="si">
    												<label for="template-contactform-platform-others2.1" class="btn btn-outline-secondary flex-fill fw-semibold ls0 nott">Portiere</label>												
    											</div>
    									</div>
    									
    									<div class="col-12 bottommargin-sm">
    										<label for="template-contactform-platform3" class="mb-3">Maglia in Vendita:</label><br>
    											<div class="btn-group w-100" role="group">
    												<input type="radio" class="btn-check" name="invendita" id="template-contactform-platform-mobile3" autocomplete="off" value="si">
    												<label for="template-contactform-platform-mobile3" class="btn btn-outline-secondary flex-fill fw-semibold ls0 nott">SI</label>
    												<input type="radio" class="btn-check" name="invendita" id="template-contactform-platform-web3" autocomplete="off" value="no">
    												<label for="template-contactform-platform-web3" class="btn btn-outline-secondary flex-fill fw-semibold ls0 nott">NO</label>
    											</div>
    									</div>
    									
    									<div class="col-12 bottommargin-sm">
    										<label for="template-contactform-platform4" class="mb-3">Memorabilia:</label><br>
    											<div class="btn-group w-100" role="group">
    												<input type="radio" class="btn-check" name="memorabilia" id="template-contactform-platform-mobile4" autocomplete="off" value="si">
    												<label for="template-contactform-platform-mobile4" class="btn btn-outline-secondary flex-fill fw-semibold ls0 nott">SI</label>
    												<input type="radio" class="btn-check" name="memorabilia" id="template-contactform-platform-web4" autocomplete="off" value="no">
    												<label for="template-contactform-platform-web4" class="btn btn-outline-secondary flex-fill fw-semibold ls0 nott">NO</label>
    											</div>
    									</div>
    						
    								</div>
    							</div>
    							
    							<div class="col-lg-6 mt-5 mt-lg-0">
    								<div class="row checkout-form-shipping">
    								
    									<div class="col-12 form-group">
    										<label for="taglia">Taglia:</label>
    										<input type="text" name="Taglia" id="checkout-form-billing-taglia" class="form-control required" placeholder="Taglia">
    									</div>
    																		
    									<div class="col-12 form-group">
    										 <label for="numero_maglia">Numero Maglia:</label>
    										 <input type="text" name="numero_maglia" id="checkout-form-shipping-nmaglia" class="form-control required" value="" placeholder="Numero Maglia">
    									</div>
    									
    									<div class="col-6 form-group">
    										<label for="descrizione">Descrizione:</label>
    										<input type="text" name="descrizione" id="checkout-form-shipping-descrizione" class="form-control required" value="" placeholder="Descrizione">
    									</div>
    									
    									<div class="col-6 form-group">
    										<label for="particolarita">Particolarità:</label>
    										<input type="text" name="particolarita" id="checkout-form-shipping-particolarita" class="form-control required" value="" placeholder="Particolarità">
    									</div>
    							  							
    									<div class="col-6 form-group">
    										 <label for="foto1">Foto Retro Maglia:</label>
    										 <input type="file" name="foto1" id="foto1">
    									</div>
    									
    									<div class="col-6 form-group">
    										 <label for="foto2">Foto Fronte Maglia:</label>
    										 <input type="file" name="foto2"id="foto2">
    									</div>
    
    									<div class="col-6 form-group">
    										 <label for="foto_prova">Foto Prova:</label>
    										 <input type="file" name="foto_prova" id="foto_prova">
    									</div>
    									<div class="col-6 form-group">
    										 <label for="foto_prova2">Foto Prova 2:</label>
    										 <input type="file" name="foto_prova2" id="foto_prova2">
    									</div>	
    										
    										  
    						   
    									<div class="col-12">
    										
    											<button id="aggiungiRecordButton" type="submit" class="btn btn-primary">Aggiungi Record</button>
    											<?php
    									// Verifica se il parametro "message" è presente nell'URL
    									if (isset($_GET['message'])) {
    										$message = $_GET['message'];
    										echo '<div style="text-align: center; color: green; font-weight: bold;">' . $message . '</div>';
    									}
    									?>
    										
    									</div>
    								</div>	
    							</div>		
    									
    							
    						  </form>
    						  
    
    		</div>
  • Re: Form in HTML e PHP - non mi visualizza messaggio di Inserimento record

    RISOLTO!!!!! 

    era il DIV  <div class="form-widget"> che non consentiva il passaggio del parametro message con il metodo GET.

  • Re: Form in HTML e PHP - non mi visualizza messaggio di Inserimento record

    30/05/2023 - alessandro.vitale ha scritto:


    era il DIV  <div class="form-widget"> che non consentiva il passaggio del parametro message con il metodo GET.

    Supponendo che la pagina sia ben formata, o che il <div> non la “deformi” alterando quello che viene dopo o che si trova al suo interno, non esiste da nessuna parte che un <div> impedisca il passaggio di un parametro via GET o POST, a meno che non si faccia riferimento a elementi della pagina in JavaScript prescindendo da una struttura ben specifica che il <div> contribuisce ad alterare rispetto alle attese (ma anche in quel caso, è la logica a essere sbagliata e/o da modificare).

    Chissà cosa è stato toccato che ha ripristinato il modo di funzionamento corretto della pagina. :|

  • Re: Form in HTML e PHP - non mi visualizza messaggio di Inserimento record

    30/05/2023 - Alka ha scritto:


    30/05/2023 - alessandro.vitale ha scritto:


    era il DIV  <div class="form-widget"> che non consentiva il passaggio del parametro message con il metodo GET.

    Supponendo che la pagina sia ben formata, o che il <div> non la “deformi” alterando quello che viene dopo o che si trova al suo interno, non esiste da nessuna parte che un <div> impedisca il passaggio di un parametro via GET o POST, a meno che non si faccia riferimento a elementi della pagina in JavaScript prescindendo da una struttura ben specifica che il <div> contribuisce ad alterare rispetto alle attese (ma anche in quel caso, è la logica a essere sbagliata e/o da modificare).

    Chissà cosa è stato toccato che ha ripristinato il modo di funzionamento corretto della pagina. :|

    questoè il guaio dei template scaricati! chepoi uno deve riuscire a capire cosa non va!

  • Re: Form in HTML e PHP - non mi visualizza messaggio di Inserimento record

    30/05/2023 - alessandro.vitale ha scritto:


    questoè il guaio dei template scaricati! chepoi uno deve riuscire a capire cosa non va!

    No, i template scaricati non hanno nessuna colpa: il “guaio” è che bisogna sapere quello che si sta facendo e il significato di quello che c'è nel template. :)

  • Re: Form in HTML e PHP - non mi visualizza messaggio di Inserimento record

    Comunque il codice non valido con Location.

    <?php
    ?>
    
    <p>testo</p>
    
    <?php
    
    header('Location: percorso?chiave=valore');

    Non segue la sintassi di documento valido ma p viene interpretato come paragrafo e quindi output prima del redirect Location.

Devi accedere o registrarti per scrivere nel forum
13 risposte