Visualizzazione risultati 1 fino 9 di 9

Discussione: problema form con connessioneal database

  1. #1
    TrovaAmico non è connesso Neofita
    Data registrazione
    09-06-2018
    Messaggi
    6

    Predefinito problema form con connessioneal database

    salve a tutti (sono l'utente prova111111111 ho creato un nuovo account per avere il nome del sito per gli asami ), ho un piccolo problema che non riesco a risolvere, nel mio sito http://trovaamico.altervista.org/ dopo (che l'utente si è registrato o loggato) che compila il form "animali avvistati" non mi fa andare avanti e quindi non inserisce nulla nel database, e ovviamente lo stesso procedimento vale se vado nel menù "visualizza liste -> tutti gli animali avvistati" come posso risolvere? da premettere che prima funzionava!

  2. #2
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,166

    Predefinito

    Hai attivato il database? Hai modificato il nome del database in my_TrovaAmico ?

    Ciao!

  3. #3
    TrovaAmico non è connesso Neofita
    Data registrazione
    09-06-2018
    Messaggi
    6

    Predefinito

    si, ho attivato il database (infatti è solo questo form che non va più) e ho già messo la connessione al database (ma sta di fatto che prima funzionava)

    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>




    <title>Animali segnalati</title>
    <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>
    <!--sfondo pagina-->
    <body>
    <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>


    <?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: 100px;">

    <!--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"/>
    </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>Descrizione: </td><td><br><br><br><br><br><br><textarea rows="2" cols="25" placeholder="Inserisci qui la descrizione!" name="caratteristiche"></textarea></td></tr>
    <center><th>Maschio <input type="radio" name="sesso" value="Maschio"/></th>
    <th>Femmina <input type="radio" name="sesso" value="Femmina"/></th><th>Non ricordo <input type="radio" name="sesso" value="Non ricordo"/></th></center>
    <tr><td><br><br><br><br><br>luogo avvistamento?: </td><td><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
    if (!isset($_POST['tipo']) || !isset($_POST['caratteristiche']) || !isset($_POST['gadget']) || !isset($_POST['sesso'])) {
    echo
    "<center><h2>devi compilare tutti i campi<br><a href='form_avvistati.php'>Riprova</a></h2></center>";

    }


    else {

    $tipo = $_POST['tipo'];
    $caratteristiche = $_POST['caratteristiche'];
    $nomeA = $_POST['nomeA'];
    $gadget = $_POST['gadget'];
    $sesso = $_POST['sesso'];


    $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)
    {


    //Memorizziamo il file nella cartella images del sito
    copy($_FILES['file_name']['tmp_name'],"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="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." ";
    }
    $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 dell'ultimo animale inserito
    $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'];


    $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>Segnalazione animale effettuata! <br>".$_SESSION['nome'].", Ritorna alla Homepage! <br/><a href='utente.php'>Entra</a></h2></center>";
    }

    }
    }

    ?>
    </form>
    </body>
    </html>

  4. #4
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,166

    Predefinito

    Controlla meglio:
    $dbname = "my_trovaamico";
    I dati per la connessione li puoi trovare qui.

    Ciao!
    Ultima modifica di alemoppo : 16-06-2018 alle ore 20.39.20

  5. #5
    TrovaAmico non è connesso Neofita
    Data registrazione
    09-06-2018
    Messaggi
    6

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Controlla meglio:


    I dati per la connessione li puoi trovare qui.

    Ciao!
    già il nome del database era presente e scritto anche in modo corretto, ho ricontrollato per sicurezza, ma niete non funziona solo con questo form

  6. #6
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,166

    Predefinito

    Ma cosa significa "non funziona"? appare qualche errore?
    Le tabelle necessarie al corretto funzionamento dello script sono presenti nel database?


    Ciao!

  7. #7
    TrovaAmico non è connesso Neofita
    Data registrazione
    09-06-2018
    Messaggi
    6

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Ma cosa significa "non funziona"? appare qualche errore?
    Le tabelle necessarie al corretto funzionamento dello script sono presenti nel database?


    Ciao!
    il sito è completo, anche il database è completo, per "non funziona" faccio un esempio per far capire ciò:
    l'utente dopo aver compilato il form inserendo le relative informazioni dell'animale e le altre relative informazioni (che corrisponde al codice che ho pubblicato sopra) e dopo aver cliccato il pulsante "invia", (tramite l'esecuzione delle query presenti nel codice) dovrebbe spuntare la scritta

    "Segnalazione animale effettuata! <br>".$_SESSION['nome'].", Ritorna alla Homepage! <br/><a href='utente.php'>Entra"

    ma non mi spunta completamente nulla! dopo aver cliccato "invia" mi scompare tutto il form! ma il bello è che prima funzionava senza problemi e il codice non lho toccato per niente!

    la pagina che da problemi è questa -> http://trovaamico.altervista.org/form_avvistati.php
    Ultima modifica di TrovaAmico : 16-06-2018 alle ore 23.34.08

  8. #8
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,166

    Predefinito

    Il resto delle interazioni con il database funzionano?

    Se sì, prova a stampare la query (echo $query;) ed incollarla e eseguirla su phpMyAdmin (alla voce SQL dopo aver premuto su my_TrovaAmico nel menù a sinistra).

    Comunque è strano perché vedo che hai aggiunto die($conn->error); quindi dovrebbe almeno mostrarti l'errore.

    Ciao!

  9. #9
    TrovaAmico non è connesso Neofita
    Data registrazione
    09-06-2018
    Messaggi
    6

    Predefinito

    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
    Ultima modifica di TrovaAmico : 17-06-2018 alle ore 15.36.44

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •