IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

Sauvegarde en texte avant suppression


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Services de proximité

    Informations forums :
    Inscription : Mars 2007
    Messages : 95
    Points : 48
    Points
    48
    Par défaut Sauvegarde en texte avant suppression
    Bonjour, je souhaiterai ajouter une petite fonction sur mon site pour mon administration personnelle.

    Chaque membre inscrit a le droit de supprimer ses données.
    Cependant, j'aimerai pour éviter tout abus, créer un fichier txt avant chaque suppression de la base de données.

    En clair :

    Un membre veut supprimer son profil, ...
    Je voudrais introduire sur le page de suppression un code qui agirait comme ceci

    1/ créer un fichier .txt avec comme nom le pseudo ou l'ID du membre
    2/ introduire dans ce fichier pseudo.txt les données lui concernant que je pourrais choisir dans mes tables
    3/ sauvegarder ce fichier pseudo.txt sur mon serveur dans un dossier /suppression/ par exemple

    Donc pour chaque pseudo supprimé, un fichier txt.

    Merci pour votre aide.

  2. #2
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Pourquoi ne pas créer une table users_deleted_datas ?

    Parce que après ton fichier txt je vois pas trop ce que tu pourras en faire, si c'est pour remettre les infos en DB autant avoir une table de secours.

    Lorsqu'un utilisateur a supprimé ses données, elles vont dans users_deleted_datas(id_user,data1,data2,data3,dataN). Tant qu'il n'a pas remplacé de données, il a toujours la possibilité de récupérer les dernieres.

    Ou sinon tu ajoutes la notion de version a la table user_deleted_datas(id_versionGUID,id_user,data1,data2....etc) afin qu'il puisse toujours récupérer d'anciennes données. Tu pourras fixer une limite, les données datant de 3 mois sont supprimées par exemple.

    Sinon pour ta solution bah quand le mec il supprime ses données, tu fais fwrite ou fputs comme tu veux et t'écris ca dans ton fichier.txt
    Tu peux générer un fichier par utilisateur.

    /suppression/user1/datas.txt
    /suppression/user2/datas.txt

    Du XML ca aurait été un poil plus classe

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Services de proximité

    Informations forums :
    Inscription : Mars 2007
    Messages : 95
    Points : 48
    Points
    48
    Par défaut
    Ce que je cherche réellement n'est pas une sauvegarde pour remettre par après ... juste une archive des données de l'utilisateur.

    C'est un site que j'ai créé moi-même et je voudrais juste qu'après chaque suppression j'ai une trace de "qui s'est supprimé et quelles données ont été supprimées"

    Donc pour moi un fichier .txt par pseudo dans un dossier est plus simple qu'une table.

  4. #4
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Ok, et quel est ton problème ?

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Services de proximité

    Informations forums :
    Inscription : Mars 2007
    Messages : 95
    Points : 48
    Points
    48
    Par défaut
    Mon problème c'est
    Comment faire ça ?

  6. #6
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Bah ca dépend t'en es où, t'as fait en sorte que les utilisateurs puissent gérer leur données ? En supprimer ?

    Si oui alors il faut simplement qu'avant la suppression des infos de la DB tu les écrives dans un fichier texte.

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Services de proximité

    Informations forums :
    Inscription : Mars 2007
    Messages : 95
    Points : 48
    Points
    48
    Par défaut
    Les membres qui veulent supprimer leurs données accèdent par un lien sur la page quit.php

    De la, en cliquant sur confirmer, toutes les données dans les tables contenant l'ID du membre ou le pseudo sont supprimées.

    Je voudrais donc qu'il y ai une trace dans un fichier txt qui porte le nom du membre

  8. #8
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Euhhh, tu lis ce que j'écris un peu ?
    Avant d'effectuer le DELETE dans ta base de données (la suppression des données du membre).

    Tu fais un SELECT * FROM donnees_membres WHERE membre_id='.$m_id;
    Et pour chacune de ces données tu l'écris dans un fichier /donnees/$m_id/datas.txt

    Tu trouveras ton bonheur dans le lien posté précedemment.

  9. #9
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Services de proximité

    Informations forums :
    Inscription : Mars 2007
    Messages : 95
    Points : 48
    Points
    48
    Par défaut
    oui oui j'ai imprimé le cours ... je vais y jeter un oeil mais je nettoie un peu le quit.php pour voir plus clair ..

  10. #10
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Services de proximité

    Informations forums :
    Inscription : Mars 2007
    Messages : 95
    Points : 48
    Points
    48
    Par défaut
    avant la suppression, j'ajoute ceci dans ma page quit.php :

    $sql = 'SELECT * FROM gaydate_user WHERE id = $userid';
    $userid = $_SESSION['UserId'];
    $fp = fopen("/suppression/$userid/datas.txt", "w+");
    fwrite($fp, $sql);
    fclose($fp);

    Le compte est bien supprimé mais aucun fichier .txt n'est créé dans /suppression sur mon serveur

  11. #11
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $sql = 'SELECT * FROM gaydate_user WHERE id='. $_SESSION['UserId'];
    $fp = fopen('/suppression/'.$_SESSION['UserId'].'/datas.txt', 'w+');
    fwrite($fp, $sql);
    fclose($fp);

  12. #12
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Services de proximité

    Informations forums :
    Inscription : Mars 2007
    Messages : 95
    Points : 48
    Points
    48
    Par défaut
    Non toujours aucun fichier dans /suppression

  13. #13
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $sql = 'SELECT * FROM gaydate_user WHERE id='. $_SESSION['UserId'];
    $dir = '/suppression/'.$_SESSION['UserId'].'/';
    if(!is_dir($dir)) mkdir($dir,0777);
    $fp = fopen($dir.'datas.txt', 'w+');
    fwrite($fp, $sql);
    fclose($fp);

  14. #14
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Services de proximité

    Informations forums :
    Inscription : Mars 2007
    Messages : 95
    Points : 48
    Points
    48
    Par défaut
    et non toujours pas
    tant pis
    merci

  15. #15
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Est ce que tu as un message d'erreur ?
    Sinon ca peut venir du fait qu'il trouve pas le dossier "/suppression/".
    Si tu es en local écrit plutot 'suppression/'.$_SESSION[...]... (sans le '/' en fait car ca représente la racine du site et sur apache il faut le configurer pour chaque site)

  16. #16
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Services de proximité

    Informations forums :
    Inscription : Mars 2007
    Messages : 95
    Points : 48
    Points
    48
    Par défaut
    oui j'y ai pensé et je l'ai testé mais ça ne fonctionne pas
    Le compte s'efface correctement de la BDD
    mais aucun fichier .txt n'est créé dans le dossier suppression sur le serveur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    if ($_POST['action'] == '' or !$_POST['action']) {
     
        $t->assign('step','1');
     
    } else {
     
        if ($_POST['action'] == get_lang('quit_opt01')) {
        /* Supprimer le compte */
     
    $sql = 'SELECT * FROM gaydate_user WHERE id='. $_SESSION['UserId'];
    $dir = '/suppression/'.$_SESSION['UserId'].'/';
    if(!is_dir($dir)) mkdir($dir,0777);
    $fp = fopen($dir.'datas.txt', 'w+');
    fwrite($fp, $sql);
    fclose($fp);
     
     
            $username = $db->getOne('select username from ! where id = ?',array( USER_TABLE, $_SESSION['UserId'] ) ) ;
     
            // Profil de base        
            $sql = 'DELETE FROM ! WHERE id = ?';
            // $sql = 'update ! set status=?, active=?, regdate = ? where id = ?';
            $db->query($sql, array( USER_TABLE, $_SESSION['UserId'] ) );
     
         ETC POUR TOUTES LES TABLES

    le dossier suppression est à la racine du site, la page quit.php contenant le code aussi.

  17. #17
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Je sais pas ce qui fait que ca marche pas mais une autre question me trotte dans la tete, tu veux juste écrire la requête SQL dans le fichier ?
    Si non, il faut utiliser la fonction mysql_query('SELECT * FROM ...); et lire les résultats qu'elle renvoie dans une boucle while(condition).
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    // FOPEN ETC..
    $sql = mysql_query('SELECT * FROM ...');
    while($res = mysql_fetch_assoc($sql))
        {
        // FWRITE ETC..
        }
    // FCLOSE ETC..

  18. #18
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Services de proximité

    Informations forums :
    Inscription : Mars 2007
    Messages : 95
    Points : 48
    Points
    48
    Par défaut
    Merci pour ton aide,
    en fait il y avait beaucoup trop de requêtes je les ai donc numérotées :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $sql1 = 'SELECT * FROM gaydate_user WHERE id='. $_SESSION['UserId'];
    $dir = 'suppression/'.$_SESSION['UserId'].'/';
    if(!is_dir($dir)) mkdir($dir,0777);
    $fp = fopen($dir.'datas.txt', 'w+');
    fwrite($fp, $sql1, $res);
    fclose($fp);
    Ca fonctionne, le fichier datas est créé mais il ne contient pas ce que j'ai besoin.

    Au lieu des éléments contenus dans la table, que je veux reprendre, je retrouve ceci :

    SELECT * FROM gaydate_user WHERE id=2447


    2447 étant l'ID de l'utilisateur supprimé.
    mais aucune autre données.

    Je suis nul et j'en suis désolé ;-)

  19. #19
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Lis le message que j'ai écris ci-dessus ca répond exactement à ta question.

  20. #20
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Services de proximité

    Informations forums :
    Inscription : Mars 2007
    Messages : 95
    Points : 48
    Points
    48
    Par défaut
    Oui j'ai lu et j'ai essayé mais le problème est qu'il me met une erreur

    Fatal error: Call to undefined method DB_mysqlc::fetch_array() in /home/gaydatec/www/quit.php on line 19

    comme quoi il ne connait pas cette commande.
    J'essaie de trouver en quoi est convertie la commande sur mon site car mysql_query par exemple équivaut à $db->query chez moi...

    Je cherche mais merci pour le temps passé à m'aider.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Sauvegarder une selection de texte avant blur ?
    Par blackmario dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 06/07/2012, 14h43
  2. Afficher le texte avant les images et les pubs
    Par topolino dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 21/04/2006, 08h33
  3. Message avant suppression ne passe pas
    Par leloup84 dans le forum Langage
    Réponses: 9
    Dernier message: 22/02/2006, 17h36
  4. [Formulaire] Alerte avant suppression d'une donnée via un formulaire
    Par leloup84 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 26/01/2006, 10h50
  5. Réponses: 2
    Dernier message: 03/08/2004, 16h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo