ho ritrovato un vecchio codice che ho riutilizzato e ho risolto (anche se non continuo a capire qual'era il problema) in più ho aggiunto una parte di codice che permette di inserire nelle varie checkbox i caratteri speciali come " ' , " ecc, l'ho posizionato sopra la query (magari può essere utile a qualcuno):
Codice PHP:
$firstname = mysqli_real_escape_string($con, $_POST['firstname']);
Codice PHP:
<?php
session_start();
if(!isset($_SESSION['idUtente'])) header("Location: index.php");
?>
<html>
<head>
<!--comandi tabella per lo spostamento top è sopra o sotto, left sinistra o destra, dipende il numero-->
<style>
#box8
{
position: absolute;
top: 34px; /*più piccolo è il numero più sale*/
left: -10px; /*più piccolo è il numero più si sposta a sx*/
}
#box2
{
position: absolute;
top: 250px;
left: 50x;
}
#titolo
{
position: absolute;
top: 80px;
left: 560px;
}
#tipologia /*rende invisibile la tipologia del radio*/
{
visibility:hidden;
}
h2
{
position: absolute;
top: 200px;
left: 750px;
}
body{
background-image: url("sfondo_segnalazione_avvistato.png");
background-repeat: no-repeat;
background-position: 50% 0%;
background-color: #4efd94;
}
</style>
<link real="stylesheet" type="text/css" href="styleRegister.css"/>
<script src="http//code.jquery.com/jquery-1.6.4.min-js" type="text/javascript"></script>
<script language="javascript">
function Disattiva(){
if(document.getElementById('box').checked){
document.getElementById('collare').checked=false;
document.getElementById('collare').disabled=true;
document.getElementById('microchip').checked=false;
document.getElementById('microchip').disabled=true;
document.getElementById('tatuaggio').checked=false;
document.getElementById('tatuaggio').disabled=true;
document.getElementById('altro').checked=false;
document.getElementById('altro').disabled=true;
}else{
document.getElementById('collare').disabled=false;
document.getElementById('microchip').disabled=false;
document.getElementById('tatuaggio').disabled=false;
document.getElementById('altro').disabled=false;
}
}
</script>
</head>
<SPAN style="position: absolute; top: 5px; left: 660px;">
<a href=utente.php alt="Torna alla pagina principale"><img src="sfondo_segnalazione_avvistato2.png" ></a>
</SPAN>
<!--sfondo pagina-->
<body>
<?php
//Controlla se la variabile invia dati è vuota compare il form, se è piena si prende i dati
if (!(isset($_POST['invia_dati']))){
?>
<form enctype="multipart/form-data" action="form_avvistati.php" method="POST">
<div align="right">
<table style="position: absolute; top: 140px; right: 190px;">
<!--tabella spostata con il css di cane, gatto e altro-->
<tr><th><div id="box8">
<fieldset>
<legend>Selez. il tipo di animale e la data e ora della segnalazione</legend>
Cane <input type="radio" name="tipo" value="cane"/>
Gatto <input type="radio" name="tipo" value="gatto"/>
Altro <input type="radio" name="tipo" value="altro"/><br>
<div id="tipologia"><input type="radio" checked="checked" name="segnalazione" value="avvistato"></div>
Data <input type="date" name="data"/>
Orario <input type="time" name="orario"/>
</fieldset></th></tr>
</div>
<!--2 tabella spostata con il css di collare, microchip e tatuaggio-->
<tr><th><div id="box2">
<fieldset>
<legend>Seleziona il gadget che hai notato</legend>
Collare <input type="Checkbox" name="gadget[]" id ="collare" value="collare"/>
Microchip <input type="Checkbox" name="gadget[]" id ="microchip" value="microchip"/>
Tatuaggio <input type="Checkbox" name="gadget[]" id ="tatuaggio" value="tatuaggio"/>
Altro <input type="Checkbox" name="gadget[]" id ="altro" value="altro"/>
Nulla/Non ricordo <input type="Checkbox" name="gadget[]" id="box" onClick="Disattiva()" value="nulla/non ricordo"/><br>
Maschio <input type="radio" name="sesso" value="Maschio"/>
Femmina <input type="radio" name="sesso" value="Femmina"/>
Non ricordo <input type="radio" name="sesso" value="sconosciuto"/>
</fieldset></th></tr>
</div>
<!--TITOLO H1-->
<div id="titolo"><h1><font color="#3074fe">HEY! Inserisci le informazioni dell'amichetto avvistato!</font></h1></div>
<tr><th>Carica foto animale: </th><th><input name="file_name" type="file"></th></tr><br><br>
<tr><td><br><br><br><br><br><br><br>Descrizione: </td><td><br><br><br><br><br><br><br><textarea rows="2" cols="25" placeholder="Inserisci qui la descrizione!" name="caratteristiche"></textarea></td></tr>
<tr><td><br><br><br><br><br><br>luogo avvistamento?: </td><td><br><br><br><br><br><br><textarea rows="2" cols="25" placeholder="Inserisci qui il luogo di smarrimento!" name="luogo"></textarea></td></tr>
<tr><td>Nome targhetta animale?: </td><td><input type="name" name="nomeA" /><br></td></tr>
<tr><td><input type="reset" value="Resetta campi!"/></td><td><input type="submit" name="invia_dati" value="Invia!"/></td></tr>
</table>
</div>
<?php
}else {
$luogo = $_POST['luogo'];
$data = $_POST['data'];
$orario = $_POST['orario'];
$segnalazione = $_POST['segnalazione'];
// controlla se l'email inserita è corretta o meno
//if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
//die("<center>errore nell'inserimeto della email, controlla meglio<br><a href='form smarriti.php'>Riprova</a></center>");
//}
//controllo variabili (com lisset) essiste
if (!isset($_POST['sesso']) || !isset($_POST['gadget']) || !isset($_POST['tipo']) || !isset ($_POST['caratteristiche'])) {
echo "<center><h2>devi compilare i campi<br><a href='form avvistati.php'>Riprova</a></h2></center>";
}
else {
$sesso = $_POST['sesso'];
$gadget = $_POST['gadget'];
$tipo = $_POST['tipo'];
$caratteristiche = $_POST['caratteristiche'];
$nomeA = $_POST['nomeA'];
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "my_trovaamico";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die ("Connection failed: " . $conn->connection_error);
}
// Controlliamo che il file è stato trasferito correttamente
if($_FILES['file_name']['error']!=UPLOAD_ERR_OK)
{
echo "<br><br><br><br><br><br><br><br><center>Errore nel trasferimento dell'immagine, <a href='form avvistati.php'> riprova</a></center><br>\n";
}
else
{
//Memorizziamo il file nella cartella images del sito
copy($_FILES['file_name']['tmp_name'],"http://forum.it.altervista.org/images/".$_FILES['file_name']['name']); //Memorizza il file nella cartella "images"
unlink($_FILES['file_name']['tmp_name']); //Elimina il file temporaneo creato sul server
// Creiamo la stringa con il nome del file e il suo percorso della cartella images
$nomeFile="http://forum.it.altervista.org/images/".$_FILES['file_name']['name'];
//Ora la variabile $nomeFile contiene il percorso del file che puoi mettere nel database con una INSERT
$str="";
foreach ($gadget as $a)
{
$str.=$a." ";
}
$caratteristiche = mysqli_real_escape_string($conn, $_POST['caratteristiche']);
$query = "INSERT INTO animale (nomeA, image, tipo, caratteristiche, gadget, sesso, idUtente, tipoSegnalazione) VALUES
('$nomeA', '$nomeFile', '$tipo', '$caratteristiche', '$str', '$sesso', ".$_SESSION['idUtente'].", '$segnalazione')";
$result = $conn->query($query);
if (!$result) {
die($conn->error);
}
//prende l'id massimo di animale
$query="SELECT MAX(idAnimale) FROM animale";
$result = $conn->query($query);
if (!$result) {
die($conn->error);
}
//prende l'id massimo di animale
$query="SELECT MAX(idAnimale) AS idAnimale FROM animale";
$result = $conn->query($query);
if (!$result) {
die($conn->error);
}
//è una funziona che restituisce un array associativo il cui ogni elemento è un campo del record
$ris=$result->fetch_assoc();
$idAnimale=$ris['idAnimale'];
$luogo = mysqli_real_escape_string($conn, $_POST['luogo']);
$query = "INSERT INTO ritrovato (luogo, data, orario,idAnimale, idUtente) VALUES
('$luogo','$data', '$orario' , $idAnimale, ".$_SESSION['idUtente'].")";
$result = $conn->query($query);
if (!$result) {
die($conn->error);
}
// Inserimento avvenuto con successo
echo "<center><h2>Registrazione amichetto effettuata! <br>".$_SESSION['nome'].", Ritorna alla Homepage! <br><a href='utente.php'>Entra</a></center></h2>";
}
}
}
?>
</form>
</body>
</html>
codice corretto
se riuscite a trovare dove stava il problema mi toglierete un grosso dubbio.
comunque grazie mille per la disponibilità!
adesso ho un'altro piccolo problema, quando voglio aggiornare la via (inserendo caratteri speciali tipo " ' ") mi dice questo:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'a' WHERE `utente`.`idUtente` = '11'' at line 1
invece se non metto " ' " nell'aggiornamento funziona