Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Privilegi DELETE

  1. #1

    Privilegi DELETE

    In un db mysql ho una tabella "utenti_registrati". Come faccio a dare a ciascun utente il privilegio DELETE per cancellare il record corrispondente al proprio account? Vorrei creare una sorta di opzione cancella account. Ho provato così:

    ho un link "cancella il tuo account" che ha come collegamento la pagina cancella_account.php?id=$id_utente dove id_utente viene postato attraverso la sessione di login, e fin qui nessun problema.

    nella pagina cancella_account.php ho questo codice:

    Codice PHP:
    $id_utente $_GET['id']; 
    $sqlquery "DELETE FROM utenti_registrati WHERE id = '$id_utente'"
    if (
    $sqlquery) { echo 'il tuo account è stato eliminato'; }else{ echo 'errore'; } 
    Quando clicco sul link cancella il tuo account vengo correttamente indirizzato alla pagina e mi dice "il tuo account è stato cancellato correttamente". Però poi vado a controllare nel db e tutto è rimasto invariato.

    Qualcuno può aiutarmi?

  2. #2
    Ciao,
    non è questione di privilegi, è solo che se non invii il comando di DELETE con mysql_query( ) è un po' difficile che il record venga cancellato;

    Codice PHP:
    $id_utente $_GET['id']; 
    $sqlquery "DELETE FROM utenti_registrati WHERE id = '$id_utente'"
    //qui usi mysql_query
    $result mysql_query($sqlquery);
    if (
    $result) { echo 'il tuo account è stato eliminato'; }else{ echo 'errore'; } 

  3. #3
    grazie! soliti errori di distrazione

  4. #4
    comunque c'è ancora una cosa che non va bene. se l'id utente è già stato cancellato come risultato ottengo lo stesso "il tuo account è stato eliminato", anzichè ottenere "errore"

  5. #5
    Originariamente inviato da rikardinho90
    comunque c'è ancora una cosa che non va bene. se l'id utente è già stato cancellato come risultato ottengo lo stesso "il tuo account è stato eliminato", anzichè ottenere "errore"
    Beh, infatti quello lì mica è un errore!!!
    No lo è nè per MySql, né per PHP.
    Quindi $result ritorna true.

    Se nello script che stai implementando vuoi trattare in maniera particolare il caso in cui non siano stati cancellati record sulla tua DELETE, allora subito dopo la mysql_query( ) puoi usare la mysql_affected_rows().
    Così controlli quante righe sono state cancellate e se sono state cancellate 0 righe fai quello che devi fare (nel tuo caso stampare un messaggo di errore o di avvertimento)

    Codice PHP:
    if(mysql_affected_rows() == 0)
    {
    echo 
    'blablabla';


  6. #6
    grazie

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 © 2025 vBulletin Solutions, Inc. All rights reserved.