Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Cancellazione record

  1. #1

    Cancellazione record

    Ciao a tutti, il problema è molto facile da spiegare.
    In una pagina, dove stampo i commenti relativi ad essa, ho creato lo script per la cancellazione di quei commenti, dove il bottone "Elimina" appare soltanto alla persona che l'ha scritto e all'admin, alla pressione di quel bottone, purtroppo, vengono cancellati tutti i commenti che seguono quello che avrei voluto cancellare... Ovviamente di dovrebbe cancellare solo quello dove clicco Elimina..

    Ecco il codice:

    codice:
    <?
    if(isset($_SESSION[valid_user]))
        echo " ";//script per inserire commenti
    else
        echo '<br><div align="center" class="error"><img border="0" src="./image/report.png"> Per commentare devi effettuare il login.</div><br>';
    
    
    $q_dati="SELECT * FROM commenti WHERE id_gui='$id' ORDER BY data DESC";
    $dati=mysql_query($q_dati);
    $n_dati=mysql_num_rows($dati);
    if($n_dati<1){
        echo '<div class="info"><img border="0" src="image/info.png"> Nessun commento presente in questa guida.</div>';
    }else{
        $i=0;
        while ($i<$n_dati){
            $noid=mysql_result($dati,$i,"id");
            $id_ut=mysql_result($dati,$i,"id_ut");
            $data=mysql_result($dati,$i,"data");
            $data    = strtotime($data);
            $il    = date('d/m/Y',$data);
            $alle= date('H:i',$data);
            $comm=mysql_result($dati,$i,"testo");
            $trovanome="SELECT username,avatar FROM utente WHERE id='$id_ut'";
            $nominativo=mysql_query($trovanome) or die ("Query fallita");
            $avatar=mysql_result($nominativo,0,"avatar");
            $di=mysql_result($nominativo,0,"username");
            $numcom=$n_dati-$i;
            ?>
    <table border="0" width="750" align="center" style="border-bottom: 2px solid #c0c0c0; background-color: #f8fdfe;">
        <tr>
            <td rowspan="3" width="100" align="center">
                <img src="./<? echo $avatar; ?>" height="60">
                <br>
                <? echo $di; ?>
            </td>
        </tr>
        <tr>
            <td align="left">
                <font color="#c1c1c1" size="2">Commentato il: <i><? echo $il; ?></i> alle <i> <? echo $alle; ?></i>.</font>
            </td>
            <td align="right" >
                <?
                if($di==$_SESSION[valid_user] || $_SESSION[valid_user]=='admin'){
                        $delcomm="delcomm".$i; 
    ?>
                            <form method="post" action="?page=guide&act=wiev&id=<? echo $id; ?>">
                                <input type="submit" name="<? echo $delcomm; ?>" value="Elimina">
                                &nbsp;<font color="#c1c1c1" size="1"><i>#<? echo $numcom; ?></i></font>
                            </form>
    <?
                    }else{
                ?>
                <font color="#c1c1c1" size="1"><i>#<? echo $numcom; ?></i></font>
                <?
                }
                ?>
            </td>
        </tr>
        <tr>
            <td colspan="2" style="padding-left: 10px; border-left: 1px solid #e9e9e9; color: #636363;">
                <font size="2">
                <? echo nl2br(stripslashes(pulisci($comm))); ?>
                </font>
            </td>
        </tr>
    </table>
    <br>
    <?
        if(($_POST[$delcomm])=="Elimina"){
                    $del="DELETE FROM commenti WHERE id=$noid";
                    mysql_query($del);
                    header("refresh:0;");
                }
    
    
        $i++;
        }
    }
    
    
    ?>

  2. #2
    Scusate il doppio post ma non c'è il tasto Edit.
    Mi sono accorto che, se loggo con accoun X e nella mia pagina ci sono solo commenti di X e ne cancello uno, tutto va a buon fine, se invece nella pagina ci sono commenti di altri utenti e cancello il mio, allora si cancellano anche i commenti degli altri...

  3. #3
    Ho trovato la soluzione, lo script con la query veniva eseguito in ciclo per ogni record stampato. Ho risolto spostando lo script dentro l'IF che fa apparire Elimina.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.