Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. non inserisce i dati nel db
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • T
      thedarkita ModSenior • ultima modifica di

      Non arrivano quelle variabili POST che tu utilizzi, ci sarà un altro nome impostato nel form.

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • K
        krisincrediblegirl User • ultima modifica di

        @Thedarkita said:

        Non arrivano quelle variabili POST che tu utilizzi, ci sarà un altro nome impostato nel form.

        Non riesco a modificare i dati...anche con le modifiche...ecco il codice modificato...

        [PHP]<?php
        //inizio la sessione utente
        session_start();
        //includo i parametri del db
        include("varDB.inc");
        //apro la connessione al db e lo seleziono
        $conn=mysql_connect($host,$user,$password) or die;
        mysql_select_db($db);

        //inizializzo la variabile messaggio
        $messaggio="";

        ?>

        <html> <!-- striscia in alto-->

        <head>
            <!-- css esterno -->
                <link rel="stylesheet" type="text/css" href="stile.css">
                <title>modifica annunci </title>
        </head>
        
        
            <body>
            <!-- striscia in alto -->
                <table>
                        <tr>
                            <td>
                                <p><font face="magneto" color="black" size="20px"><center><b><i>"LA BOTTEGA DELL'USATO"</i></b></center></p>    
                                
                            </td>         
                        </tr>
                </table>
        

        <div id="menu">
        <ul>
        <?php
        //controllo che ci sia una sessione utente, altrimenti "sessione scaduta"

        if(isset($_SESSION['utente'])){
        
         echo"<li><font face='georgia' color='red'size='4px'>ciao " . $_SESSION['utente'] . "!</li>";
                                            echo"<li><a href='login.php?azione=logout'>logout</a></li>";
                                            echo"<li><a href='cancellato.php'>cancella</a></li>";
                                            
                                            echo"<br>";
                                            echo"<br>";
                                        }else{
                                        
                                        $messaggio= "<font color='black' face='times new roman' size='4px'>sessione scaduta";
                                    }
                                    
        ?>
           </ul>
                                </div>
        

        <?php

        $id_ann=$_GET['annuncio'];
        $ris=mysql_query("SELECT * FROM annunci_cerco WHERE id=".$_GET['annuncio']);

        ?>
        <form method="POST" action="modifica_annunci_2.php"><?php echo $id_ann ?>
        <p>modifica i tuoi annunci</p>

        Titolo  <input type="text" name="title" value=""/><br>
        
        Testo <textarea name="body" cols="10" rows="10"></textarea>
        
        <input type="submit" name="invia" value="inserisci"/>
        

        </form>

        <?php
        mysql_close();

        ?>

        </body>
        </html>
        [/PHP]

        [PHP]<?php
        //inizio la sessione utente
        session_start();
        //includo i parametri del db
        include("varDB.inc");
        //apro la connessione al db e lo seleziono
        $conn=mysql_connect($host,$user,$password) or die;
        mysql_select_db($db);

        //inizializzo la variabile messaggio
        $messaggio="";

        ?>

        <html> <!-- striscia in alto-->

        <head>
            <!-- css esterno -->
                <link rel="stylesheet" type="text/css" href="stile.css">
                <title>modifica annunci </title>
        </head>
        
        
            <body>
            <!-- striscia in alto -->
                <table>
                        <tr>
                            <td>
                                <p><font face="magneto" color="black" size="20px"><center><b><i>"LA BOTTEGA DELL'USATO"</i></b></center></p>    
                                
                            </td>         
                        </tr>
                </table>
        

        <div id="menu">
        <ul>
        <?php
        //controllo che ci sia una sessione utente, altrimenti "sessione scaduta"

        if(isset($_SESSION['utente'])){
        
         echo"<li><font face='georgia' color='red'size='4px'>ciao " . $_SESSION['utente'] . "!</li>";
                                            echo"<li><a href='login.php?azione=logout'>logout</a></li>";
                                            echo"<li><a href='cancellato.php'>cancella</a></li>";
                                            
                                            echo"<br>";
                                            echo"<br>";
                                        }else{
                                        
                                        $messaggio= "<font color='black' face='times new roman' size='4px'>sessione scaduta";
                                    }
                                    
        ?>
           </ul>
                                </div>
        

        <?php

        $id_ann=$_GET['id'];
        $title=$_POST['title'];

        $body=$_POST['body'];

        if($title=="" ||$body==""){
        echo "<font color='black' face='times new roman' size='4px'>Non hai riempito i campi";

                    $q="UPDATE annunci_cerco SET title='$title', body='$body' WHERE id=$id_ann";
        

        mysql_query($q);

        echo"modifica ok";
        }else{

            echo"impossibile modificare";}
        
        
        mysql_close();    
        

        ?>

        </body>
        </html>
        [/PHP]

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • T
          thedarkita ModSenior • ultima modifica di

          Ma che senso ha fare un controllo che i campi siano vuoti e fare l'update in quel caso? Non dovresti fare il contrario?

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • K
            krisincrediblegirl User • ultima modifica di

            Hai ragione, ma ero solo per leggere se la modifica era andata a buon fine...al posto di quello ho inserito...

            [PHP]$m=mysql_query("UPDATE annunci_cerco SET title='$title',body='$body' WHERE id=$id_ann");
            if($m){

            echo"modifica ok";
            }else{

                echo"impossibile modificare";}
            

            [/PHP]

            Però le modifiche non vanno a buon fine..perchè leggo impossibile modificare...come è possibile?

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • T
              thedarkita ModSenior • ultima modifica di

              La query genera un qualche errore, aggiungi mysql_error() per mostrarlo.

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • K
                krisincrediblegirl User • ultima modifica di

                @Thedarkita said:

                La query genera un qualche errore, aggiungi mysql_error() per mostrarlo.

                Mi da questo messaggio fallitaQuery was empty

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • T
                  thedarkita ModSenior • ultima modifica di

                  Devi fare in questo modo:
                  [php]
                  $m=mysql_query("UPDATE annunci_cerco SET title='$title',body='$body' WHERE id=$id_ann") or die(mysql_error());
                  if($m){

                  echo"modifica ok";
                  }else{

                      echo"impossibile modificare";} 
                  

                  [/php]

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • K
                    krisincrediblegirl User • ultima modifica di

                    ecco l'errore che mi da..

                    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 '' at line 1

                    la seconda olta che ho provato mi dice sempre fallitaQuery was empty

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • T
                      thedarkita ModSenior • ultima modifica di

                      Avrai il carattere ' in una delle 3 variabili che passi alla query, devi usare addslashes.
                      TI consiglio inoltre una lettura di questa guida:
                      http://www.giorgiotave.it/forum/scripting-e-risorse-utili/189074-guida-sql-injection.html

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • K
                        krisincrediblegirl User • ultima modifica di

                        Mi puoi spiegare cosa significa?

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • T
                          thedarkita ModSenior • ultima modifica di

                          Dovresti leggere la guida per capire, li è tutto spiegato sui problemi che derivano dagli apici e determinate configurazioni di php.

                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          • K
                            krisincrediblegirl User • ultima modifica di

                            Adesso funziona tutto!!!mi è bastato cambiare questo della pag contenente i dati inviati dal form
                            $id_ann=$_POST['id'];
                            al postodi $id_ann=$_GET['id'];

                            graazie dell'aiuto!!!

                            0 Miglior Risposta Ringrazia Cita Rispondi

                              1 Risposta Ultima Risposta
                            • K
                              krisincrediblegirl User • ultima modifica di

                              volevo chiedere ancora una volta..vorrei verificare prima di una modifica e di una cancellazione l'esistenza del messaggio..come posso fare?

                              0 Miglior Risposta Ringrazia Cita Rispondi

                                1 Risposta Ultima Risposta
                              • T
                                thedarkita ModSenior • ultima modifica di

                                Fai una query select e controlli con mysql_num_rows se c'è il record.

                                0 Miglior Risposta Ringrazia Cita Rispondi

                                  1 Risposta Ultima Risposta
                                • K
                                  krisincrediblegirl User • ultima modifica di

                                  Tipo una cosa del genere?

                                  [PHP]if($title!="" && $body !=""){
                                  $risultato = mysql_query("SELECT * FROM annunci_offro WHERE autore='".$_SESSION['utente']."'")or die(mysql_error("query annunci fallita"));
                                  mysql_num_rows($risultato);

                                  $modifica=mysql_query("UPDATE annunci_offro SET title='$title',body='$body' WHERE id=$id_ann") or die(mysql_error("query modifica fallita"));

                                  echo"modifica ok";
                                  header("refresh:2;URL=annunci_offro.php");
                                  }else{

                                      echo"impossibile modificare";
                                      header("refresh:2;URL=annunci_offro.php");
                                      } 
                                  

                                  }
                                  mysql_close();

                                  ?>
                                  [/PHP]

                                  dove prima della query update ho messo select con il num_rows

                                  0 Miglior Risposta Ringrazia Cita Rispondi

                                    1 Risposta Ultima Risposta
                                  • T
                                    thedarkita ModSenior • ultima modifica di

                                    [php]
                                    mysql_num_rows($risultato);
                                    [/php]
                                    Restituisce il numero di record quindi tu dovresti fare una cosa del tipo:
                                    [php]
                                    if(mysql_num_rows($risultato) == 0)
                                    die('ID non presente');
                                    [/php]

                                    0 Miglior Risposta Ringrazia Cita Rispondi

                                      1 Risposta Ultima Risposta
                                    • K
                                      krisincrediblegirl User • ultima modifica di

                                      [PHP]
                                      if($title!="" && $body !=""){
                                      $risultato = mysql_query("SELECT * FROM annunci_offro WHERE autore='".$_SESSION['utente']."'")or die(mysql_error("query annunci fallita"));
                                      if(mysql_num_rows($risultato) == 0)
                                      die('ID non presente');

                                      $modifica=mysql_query("UPDATE annunci_offro SET title='$title',body='$body' WHERE id=$id_ann") or die(mysql_error("query modifica fallita"));

                                      echo"modifica ok";
                                      header("refresh:2;URL=annunci_offro.php");
                                      }else{

                                          echo"impossibile modificare";
                                          header("refresh:2;URL=annunci_offro.php");
                                          } 
                                      

                                      }
                                      mysql_close();

                                      ?>

                                      [/PHP]

                                      Mi diresti se va bene così?

                                      0 Miglior Risposta Ringrazia Cita Rispondi

                                        1 Risposta Ultima Risposta
                                      • T
                                        thedarkita ModSenior • ultima modifica di

                                        Si va bene cosi, ma la funzione mysql_error non ha come primo parametro una stringa.

                                        0 Miglior Risposta Ringrazia Cita Rispondi

                                          1 Risposta Ultima Risposta
                                        • K
                                          krisincrediblegirl User • ultima modifica di

                                          @Thedarkita said:

                                          Si va bene cosi, ma la funzione mysql_error non ha come primo parametro una stringa.

                                          Quindi dovrei togliere il mysql_error?

                                          0 Miglior Risposta Ringrazia Cita Rispondi

                                            1 Risposta Ultima Risposta
                                          • T
                                            thedarkita ModSenior • ultima modifica di

                                            Dovrebbe diventare una cosa di questo tipo:
                                            [php]
                                            or die("query annunci fallita: ".mysql_error())
                                            [/php]

                                            0 Miglior Risposta Ringrazia Cita Rispondi

                                              1 Risposta Ultima Risposta
                                            Caricamento altri post
                                            Rispondi
                                            • Topic risposta
                                            Effettua l'accesso per rispondere
                                            • Da Vecchi a Nuovi
                                            • Da Nuovi a Vecchi
                                            • Più Voti