• User

    @Thedarkita said:

    Devi usare $riga['username'] visto che lo hai inserito nella tabella del database.

    grazie funziona perfettamente!! 😄


  • User

    Grazie!!!

    Volevo chiedere un'altra cosa..perchè ho un problema...

    Quando cerco di cancellare i messaggi inseriti, ho fatto in modo che se non è quell'utente che l'ha inserito legga il messaggio "non sei l'autore del messaggio", fin li funziona, ma quando l'utente che inserisce il messggio cerca di cancellarlo leggo "non sei l'autore del messaggio" però cancella effettivamente il messsaggio dal db, ma perchè non vedo il messaggio "dati cancellati"?

    ho fatto un po di confusione...

    [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("localhost","root","") or die;
    mysql_select_db("sito");

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

    ?>

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

    <head>
        <!-- css esterno -->
            <link rel="stylesheet" type="text/css" href="stile.css">
            <title>cancella 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

    if (isset($_SESSION['utente'])){

    ?>

    <form method="POST" action="cancellato1.php">
    <p><font face="Times new roman" color="black" size="4px">vuoi cancellare il messaggio?</p>

    Si<input type="radio" name="canc" value="si"/>
    No<input type="radio" name="canc" value="no"/>
    <br>
    <br>
    <input type="submit" value="invia" name="invia"/>

    </form>

    <?php
    }else{

    $messaggio="sessione scaduta";
    }

    mysql_close();
    ?>
    </body>
    </html>[/PHP]

    questa è la pag che mi da problemi..
    [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("localhost","root","") or die;
    mysql_select_db("sito");

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

    ?>

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

    <head>
        <!-- css esterno -->
            <link rel="stylesheet" type="text/css" href="stile.css">
            <title>cancella 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

    // recupero i dati della sessione utente in corso
    $autore=$_SESSION['utente'];
    $c="cancella";
    //l'azione cancella prevede l'opzione si/no
    $c = isset($_GET['cancella']) ? $_GET['cancella'] : "";

    if ($autore=$_SESSION['utente']){

                if ($_POST["canc"]=="si") { // se sceglie si
                //eseguo la query per la cancellazione dell'account
                $query="DELETE FROM annunci_cerco WHERE autore='$autore'";
        $res=mysql_query($query) or die("fallita"); // in caso di problemi con la query
        
        
        $messaggio="dati cancellati";
                
                
                }else{
                
                $messaggio="non sei l'autore del messaggio";
    

    }
    //altrimenti se sceglgo no i dati non vengono cancellati
    if($_POST["canc"]=="no"){
    echo"i dati non sono stati cancellati";

    }else{
    echo"non sei l'autore del messaggio";
    }
    

    }
    //chiudo la connessione con il db
    mysql_close();

    ?>

    </body>

    </html> [/PHP]


  • ModSenior

    Nell'if hai messo un assegnazione, non un confronto (hai dimenticato un uguale).
    In ogni caso se sopra fai:
    $autore=$_SESSION['utente'];
    E sotto metti:
    if($autore==$_SESSION['utente'])
    Mi sembra scontato che la condizione vada sempre in true. Devi recuperare il messaggio dal database per sapere chi l'ha scritto.


  • User

    @Thedarkita said:

    Mi sembra scontato che la condizione vada sempre in true. Devi recuperare il messaggio dal database per sapere chi l'ha scritto.

    mi dici cosa intendi di preciso?

    perchè adesso ho provato a mettere due == come mi hai detto, solo che quando cerco di cancellare il messaggio scritto non da quell'utente, vedo la scritta che mi dice che non sono l'autore, ma cancella l'annuncio dell'utente loggato...come fare?


  • User

    come faccio a non far eliminare e aggiornare tutti i messaggi che scrive l'utente?perchè io vorrei che potesse agire solo su quello interessato...il codice:

    [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("localhost","root","") or die;
    mysql_select_db("sito");

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

    ?>

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

    <head>
        <!-- css esterno -->
            <link rel="stylesheet" type="text/css" href="stile.css">
            <title>modifica/cancella 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 account</a></li>";
                                        
                                        echo"<br>";
                                        echo"<br>";
                                    }else{
                                    
                                    $messaggio= "<font color='black' face='times new roman' size='4px'>sessione scaduta";
                                }
                                
    ?>
       </ul>
                            </div>
    

    <?php

    //seleziono gli annunci inseriti del db e li mostro
    $risultato = mysql_query("SELECT * FROM annunci_cerco WHERE autore='".$_SESSION['utente']."'");
    //mostro tutti gli annunci inseriti 
    

    while ($riga = mysql_fetch_array($risultato)) {

    echo "<br>";
    echo"<br>";

    ?>

    <table id="table1">

    <tr>
    <td><?php echo"autore"; ?></td>
    <td><?php echo "titolo" ?></td>
    <td> <?php echo "testo"; ?></td>

    </tr>

    <tr>
        
        <td id="testo"><?php echo $riga['autore'];?></td>
        <td id="testo"><?php  echo $riga['title']; ?></td>
        <td id="testo"> <?php echo $riga['body']; ?></td>
        
    </tr> 
    
    <tr>
    
        <td id="testo"><?php echo"<a href='inserisci1.php'>modifica</a>";?></td>
        <td id="testo"><?php echo"<a href='cancella1.php'>cancella</a>"?></td>
    </tr>    
    

    </table>

    <?php }
    

    //chiudo la connessione al db
    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("localhost","root","") or die;
    mysql_select_db("sito");

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

    ?>

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

    <head>
        <!-- css esterno -->
            <link rel="stylesheet" type="text/css" href="stile.css">
            <title>cancella 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 account</a></li>";
                                                                                
                                        echo"<br>";
                                        echo"<br>";
                                    }else{
                                    
                                    $messaggio= "<font color='black' face='times new roman' size='4px'>sessione scaduta";
                                }
                                
    ?>
       </ul>
                            </div>
    

    <?php

    if (isset($_SESSION['utente'])){

    ?>

    <form method="POST" action="cancellato1.php">
    <p><font face="Times new roman" color="black" size="4px">vuoi cancellare il messaggio?</p>

    Si<input type="radio" name="canc" value="si"/>
    No<input type="radio" name="canc" value="no"/>
    <br>
    <br>
    <input type="submit" value="invia" name="invia"/>

    </form>

    <?php
    }else{

    $messaggio="sessione scaduta";
    }

    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("localhost","root","") or die;
    mysql_select_db("sito");

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

    ?>

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

    <head>
        <!-- css esterno -->
            <link rel="stylesheet" type="text/css" href="stile.css">
            <title>cancella 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 account</a></li>";
                                        
                                        echo"<br>";
                                        echo"<br>";
                                    }else{
                                    
                                    $messaggio= "<font color='black' face='times new roman' size='4px'>sessione scaduta";
                                }
                                
    ?>
       </ul>
                            </div>
    

    <?php

    // recupero i dati della sessione utente in corso
    $autore=$_SESSION['utente'];

    $c="cancella";
    //l'azione cancella prevede l'opzione si/no
    $c = isset($_GET['cancella']) ? $_GET['cancella'] : "";

                if ($_POST["canc"]=="si") { // se sceglie si
                //eseguo la query per la cancellazione dell'account
                $cancellannunci="DELETE FROM annunci_cerco WHERE autore='$autore'";
        $res=mysql_query($cancellannunci) or die("fallita"); // in caso di problemi con la query
        
                echo"<font color='black' face='times new roman' size='4px'>dati cancellati";
                header("refresh:2,URL=annunci.php");
    

    }
    //altrimenti se sceglgo no i dati non vengono cancellati
    if($_POST["canc"]=="no"){
    echo"<font color='black' face='times new roman' size='4px'>i dati non sono stati cancellati";
    header("refresh:2,URL=annunci.php");

      }
    

    //chiudo la connessione con il db
    mysql_close();

    ?>

    </body>

    </html>
    [/PHP]


  • User

    Adesso il problema ce l'ho solo nella pagina di aggiornamento dei messaggi...

    Ho creato una pagina dove l'utente trova i link per cancellare e modificare, che rimandeerà ad una form per scrivere il messaggio modificato e una che dovrebbe modificare e inserire nel db la modifica, ma leggo solo la modifica di fallimento...mi aiutate???

    [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/cancella 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 account</a></li>";
                                        
                                        echo"<br>";
                                        echo"<br>";
                                    }else{
                                    
                                    $messaggio= "<font color='black' face='times new roman' size='4px'>sessione scaduta";
                                }
                                
    ?>
       </ul>
                            </div>
    

    <?php

    //seleziono gli annunci inseriti del db e li mostro
    $risultato = mysql_query("SELECT * FROM annunci_cerco WHERE autore='".$_SESSION['utente']."'");
    //mostro tutti gli annunci inseriti 
    

    while ($riga = mysql_fetch_array($risultato)) {

    echo "<br>";
    echo"<br>";

    ?>

    <table id="table1">

    <tr>
    <td><?php echo"autore"; ?></td>
    <td><?php echo "titolo" ?></td>
    <td> <?php echo "testo"; ?></td>

    </tr>

    <tr>
        
        <td id="testo"><?php echo $riga['autore'];?></td>
        <td id="testo"><?php  echo $riga['title']; ?></td>
        <td id="testo"> <?php echo $riga['body']; ?></td>
        
    </tr> 
    

    <tr>
    <?php $id= $riga['id']?>
    <td id="testo"><?php echo"<a href='modifica_annunci_1.php?annuncio=".$riga['id']."'>modifica</a>"?></td>
    <td id="testo"><?php echo"<a href='cancellato1.php?annuncio=".$riga['id']."'>cancella</a>"?></td>
    </tr>
    </table>

    <?php }
    

    //chiudo la connessione al db
    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

    $_GET['annuncio'];
    $id_ann=$_GET['annuncio'];

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

    ?>
    <form method="POST" action="modifica_annunci_2.php">
    <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
    $_GET['annuncio'];
    $id_ann=$_GET['annuncio'];
    $title=$_POST['title'];

    $body=$_POST['body'];

    $modificannunci="UPDATE annunci_cerco SET title='$title',body='$body' WHERE id=$id_ann";
    $res=mysql_query($modificannunci) or die("fallita");

    mysql_close();    
    

    ?>

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


  • ModSenior

    Invece di:
    [php]
    mysql_query($modificannunci) or die("fallita");
    [/php]
    Metti:
    [php]
    mysql_query($modificannunci) or die("fallita".mysql_error());
    [/php]
    Cosi da visualizzare l'errore.


  • User

    Notice: Undefined index: annuncio in C:\xampp\htdocs\prova\modifica_annunci_2.php on line 60

    Notice: Undefined index: annuncio in C:\xampp\htdocs\prova\modifica_annunci_2.php on line 61
    fallitaYou 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

    Mi dice questo


  • ModSenior

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


  • User

    @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]


  • ModSenior

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


  • User

    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?


  • ModSenior

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


  • User

    @Thedarkita said:

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

    Mi da questo messaggio fallitaQuery was empty


  • ModSenior

    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]


  • User

    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


  • ModSenior

    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


  • User

    Mi puoi spiegare cosa significa?


  • ModSenior

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


  • User

    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!!!