cs_switsh
Messages postés27Date d'inscriptiondimanche 18 mai 2003StatutMembreDernière intervention18 août 2005
-
20 juil. 2005 à 13:48
cs_marq
Messages postés1Date d'inscriptiondimanche 25 novembre 2007StatutMembreDernière intervention19 décembre 2008
-
19 déc. 2008 à 01:36
Bonjour
J'ai créé un site avec bdd dans lequel je rentre des informations. Le
contenu du site est important et si jamais mon hébergeur avait des
problèmes je ne dois pas tout perdre. J'ai pensé faire une sauvegarde
automatique à chaque nouvel envoie d'information. En gros il sagit
d'ajouter des personnes avec plussieurs autres informations les
concernants. Entre 10 et 20 personnes seront rentré par semaines.
Je souhaiterais procéder de la maniere suivante :
Une fois les informations sur la personne envoyées dans la base
automatiquement je sauvegarde celle-ci et je fais un envoie de mail
automatique sur une boite mail prévu a cet effet.
Je voudrais savoir si sauvegarder le contenu d'une base le mettre dans
une variable et l'envoyer a une adresse mail demanderais bcp de temps.
En effet je n'ai pas envie d'attendre 3h apres chaque ajouts d'infos.
Le principe étant de ne pa sperdre son temps en ajoutant les nouvelles
personnes dans la base.
Si cela ne demande pas trop de ressource est il possible de faire un
exporte de la base comme dans phpmyadmin comme ca si jamais il y a un
problème je recupere le dernier mail et j'importe le contenu dans ma
base une fois les problèmes resolu.
malik7934
Messages postés1154Date d'inscriptionmardi 9 septembre 2003StatutMembreDernière intervention15 août 200917 20 juil. 2005 à 14:15
Hello, je suis pas sur d'avoir tout compris ce que tu demandes, mais quoi qu'il en soit ce bout de code peut t'aider: il s'agit d'un code sans fioriture pour sauver et mailer une bdd...
$mail_mime = "Date: ".date("l j F Y, G:i")."\n";
$mail_mime .= "MIME-Version: 1.0\n";
$mail_mime .= "Content-Type: multipart/mixed;\n";
$mail_mime .= " boundary="----=$limite"\n\n";
//Le message en texte simple pour les navigateurs qui n'acceptent pas le HTML
$texte = "This is a multi-part message in MIME format.\n";
$texte .= "Ceci est un message est au format MIME.\n";
$texte .= "------=$limite\n";
$texte .= "Content-Type: text/plain; charset="iso-8859-1"\n";
$texte .= "Content-Transfer-Encoding: 7bit\n\n";
$texte .= $message;
$texte .= "\n\n";
username est le nom d'utilisateur (ne pas oublier le -u), dbname le nom de la base que tu veux sauver et passwd (ne pas oublier le -p) est le mot de passe pour mysql. Oublie pas qu'il faut pouvoir ecrire, donc etre dans un dossier avec un chmod 703
Le probleme connu est que parfois des personnes ont un fichier vide (sosofi pourrait t'en dire qqch! http://phpcs.com/forum.v2.aspx?ID=508416) et aucune idee pourquoi ca ne marche pas chez ces personnes (si quelqu'un a une idee?).
Chez moi tout beigne.
Il faut par contre que ton hebergeur autorise la fonction passthru.
cs_switsh
Messages postés27Date d'inscriptiondimanche 18 mai 2003StatutMembreDernière intervention18 août 2005 9 août 2005 à 12:35
Bonjour !!
Je susi en train de tester avec un peu de retard car bcp de chose etaient a faire avant la sauvegarde.
Jai créé un dossier sur mon ftp, je lui ai donné la permission 777 pour
etre tranquile j'ai utilisé le code modifié les infos de connection à
la base et de mail mais cela ne marche pas.
J'ai l'erreur suivante :
Warning: fread(): Length parameter must be greater than 0. in //****/test/savebdd.php on line 28
la ligne 28 :
$contenu = fread( $fd, filesize( $fichier ) );
J'ai regardé un peu la fonction fread et il n'y a aps l'air d'avoir
d'erreur auriez vous une idée ? ou cela fait partie des problèmes de
sauvegarde de bases ?
arnal69130
Messages postés445Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention22 mars 20072 9 août 2005 à 12:46
Bojour,
Apparement, le 2nd paramètre de fread vaut 0, cad que filesize($fichier) renvoie 0 (ou plutôt FALSE) => soit le fichier n'existe pas, soit le serveur n'arrive pas à y accéder.
cs_switsh
Messages postés27Date d'inscriptiondimanche 18 mai 2003StatutMembreDernière intervention18 août 2005 9 août 2005 à 12:48
D'apres l'autre j'ai tenté de créer un fichier avec ca dedans :
<?php passthru('mysqldump -u root ao_champagne > db.sql'); ?>
Lorsque je l'execute j'ai bien la création d'un fichier mais lui aussi vide.
malik7934
Messages postés1154Date d'inscriptionmardi 9 septembre 2003StatutMembreDernière intervention15 août 200917 9 août 2005 à 12:51
Ca c'est un probleme etrange que je ne comprends pas.
Certains l'ont, d'autres pas. T'es en tous cas pas le premier a dire ca... J'ai en tous cas la certitude que ca ne vient pas du code php mais de la configuration du serveur puisque tu peux creer un fichier!
A savoir que je n'ai pas ce probleme avec le meme code... c'est pourquoi j'accuse le serveur!
cs_switsh
Messages postés27Date d'inscriptiondimanche 18 mai 2003StatutMembreDernière intervention18 août 2005 23 août 2005 à 10:13
Leur réponse : on va develloper un systeme de sauvegarde en septembre veuillez patienter d'ici la un truc dans le genre ...
Je crois que je n'aurais pas reponse, j'essairais de trouver un autre script si jamais il deande trop cher pour sauvegarder les bases de donnée.
Merci pour l'aide.
newmorning
Messages postés47Date d'inscriptionmercredi 20 juin 2007StatutMembreDernière intervention26 février 2023 4 sept. 2008 à 15:10
"D'apres l'autre j'ai tenté de créer un fichier avec ca dedans :
db.sql'); ?>
Lorsque je l'execute j'ai bien la création d'un fichier mais lui aussi vide."
Heu... tu pourrais m'expliquer un peu plus ? J'ai exactement la même erreur et je ne comprend pas exactement ce que tu as fait pour résoudre le pb...
Surtout, tu as trouvé une autre solution depuis le temps ?
cs_marq
Messages postés1Date d'inscriptiondimanche 25 novembre 2007StatutMembreDernière intervention19 décembre 2008 19 déc. 2008 à 01:36
Tout réside dans l'execution du dump, il manque un paramètre dans la commande, pour un serveur sql chez ovh, et comme pratiquement chez tous les hébergeurs, le serveur sql n'est pas en localhost, il faut donc le préciser dans notre dump.
Si ton fichier en p.j. est vide, c'est simplement parce que:
passthru('mysqldump -u '.$MySQL[user].' -p'.$MySQL[pass].' --opt '.$MySQL[base].' -h '.$MySQL[host].' > upload/db.sql');
Je pense pas devoir expliquer plus l'utilisation de mes variables :P
mon dossier /upload/ est pratique, mais vous pouvez le retirer pour adapter à votre script.