Buon giorno a tutti! Io sto cercando di creare una pagina admin dove sia possibile anche (inserendo del testo) creare nuove pagine. Il problema viene quando devo inserire degli apostrofi. Quando mi sono accorto di questo problema sono subito ricorso a
Il mio codice attuale è il seguente:
Ringrazio tutti coloro che mi vorranno aiutare
Forse ho risolto... ditemi se sto dicendo una cavolata o meno... comunque funziona.
Riflettendoci un attimo la risposta è molto semplice: io ho creato una variabile
mysqli_real_escape_string($connessione, $stringa)
e naturalmente ha funzionato inserendomi correttamente il testo nel database. Il problema ora sorge nel momento in cui voglio prendere quel testo e inserirlo nella nuova pagina che deve essere creata... a questo punto infatti mi viene trascritto anche \ vicino agli apostrofi, cosa che non voglio. Qualcuno mi sa consigliare in maniera abbastanza dettagliata quale può essere un altro metodo per evitare la SQL injection? Calcolate che tutto quello che so sulla programmazione l'ho imparato da youtube e internet quindi la mia conoscenza è abbastanza ridotta. E poi non ho neanche trovato nulla di decente che mi spiegasse una cosa di questo tipo.Il mio codice attuale è il seguente:
Codice:
<form action="#" method="POST" enctype="multipart/form-data">
<tr>
<td></td>
<td><input type="text" name="nomeevento" placeholder="Evento" class="textAdmin"></td>
<td><textarea name="descrizione" id="msg" cols="30" rows="10" placeholder="Scrivi qui la descrizione dell'evento ..."></textarea><br/><span id="conteggio"></span></td>
<td><p>Data: </p><input type="text" placeholder="<?php echo date('d/m/Y', time()); ?>" name="data" class="textAdmin"><br><p>Orario: </p><input type="text" name="ora" placeholder="<?php echo date('H:i', time()); ?>" class="textAdmin"></td>
<td><input type="file" name="nomeimg"></td>
<td></td>
<td><button class="home hover" name="addevent" type="submit">Aggiungi Evento</button></td>
</tr>
</form>
<?php
if(isset($_POST['addevent'])){
// Aggiunta Dati a Database
$NomeEventoText = $_POST['nomeevento'];
$DescrizioneText = $_POST['descrizione'];
$Data = $_POST['data'];
$Ora = $_POST['ora'];
$Immagine = $_POST['nomeimg'];
$NomeEvento = mysqli_real_escape_string($connessione, $NomeEventoText);
$Descrizione = mysqli_real_escape_string($connessione, $DescrizioneText);
if(!empty($NomeEvento) && !empty($Descrizione) && !empty($Data) && !empty($Ora)){
$query = "INSERT INTO `eventiorganizzati`(`nomeevento`, `descrizione`, `data`, `ora`, `nomeimmagine`) VALUES ('$NomeEvento', '$Descrizione', '$Data', '$Ora', '$Immagine')";
$inserisciDati = mysqli_query($connessione,$query);
header("Location: index.php?EventoAggiunto=$NomeEvento");
if(!$inserisciDati){
die('Query fallita' . mysqli_error($connessione));
echo "Errore inserimento dati";
}
}else{
header("Location: index.php?EventoNonAggiunto");
echo "Inserire tutti i dati necessari";
}
Post unito automaticamente:
Forse ho risolto... ditemi se sto dicendo una cavolata o meno... comunque funziona.
Riflettendoci un attimo la risposta è molto semplice: io ho creato una variabile
$DescrizioneText
di cui poi ho fatto l'escape inserendolo in una variabile $Descrizione
. Se creando la nuova pagina uso la prima variabile invece che la seconda mi inserisce il testo come interessa a me senza crearmi problemi
Ultima modifica: