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

PHP & Base de données Discussion :

sav base de donnée et rep photo


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Homme Profil pro
    Pour le plaisir
    Inscrit en
    Novembre 2012
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pour le plaisir
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Novembre 2012
    Messages : 164
    Points : 61
    Points
    61
    Par défaut sav base de donnée et rep photo
    bonjour
    je voudrais savoir si c'est possible de récupérer les rep photos de mon site (hebergeur mutualisé) et de l'envoyer sur google drive ou autre en automatique idem avec la base de donnée ?
    Actuellement je fait avec cron pour le mettre dans un répertoire et ensuite je voudrais m'envoyer le fichier par mail, mais je ne reçois rien et ne vois pas erreur.
    Est ce que le code envoi mail avec pièce jointe est bon, il n'est pas de moi ?

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
     
    function taille($n){
    if($n>1024){ return round(round($n/1024,1)/1024,1)." Mo"; }
    else{ return round(round($n/1024,1),1)." Ko"; }
    }
     
    $fichier = $backup_name;
    //verfie si fichier existe et supprime ancien fichier
     
    if($opdossier = opendir($dossier))
    {
    while(false !== ($fichier = readdir($opdossier)))
    {
    if($fichier != '.' && $fichier != '..' && $fichier != 'dd.php' && $fichier != 'dd.html')
    {
    $explo = explode("_", $fichier);
    $recdate = $explo[1];	
    if ($recdate < $datvieux){
    	//suppime fichier de + de 30 jours
    	unlink ($fichier); 
    } else if ($recdate == $datnow)
    	{
    	 $tailfichier = taille(filesize($backup_name));
    	 $tailfich = filesize($backup_name);
    	if ($tailfich < 24000000){	
     
    	//recupère le fichier du jour et l'envoyer dans un mail en pièce jointe si taille inferieur à 24mo
    	$to = 'dd@yahoo.fr';
    $from = 'dd@yahoo.fr';
    $subject = 'Sav_Bd_dd';
    $message_html = 'Sauvegarde de la base de données : dd <br />
    Fichier : '.$backup_name.'<br />
    Taille : '.$tailfichier;
    $file_content = $backup_name;
     
    $boundary_structure = md5(rand());
    $boundary_alternatives = md5(rand());
     
    $headers = [
            "From: $from",
            "Reply-To: $from",
            "Content-Type: multipart/mixed; boundary=\"$boundary_structure\""
    ];
     
    /* Encodage du contenu du fichier à envoyer. En accord avec la RFC 2045. */
    $attachment = chunk_split(base64_encode($file_content));
     
    /* Le mieux serait d'inclure un fichier de template mais pour l'exemple un ob_start fera l'affaire. */
    ob_start();
    ?>
    --<?=$boundary_structure . PHP_EOL /* Première partie de la structure: le message */?>
    Content-Type: multipart/alternative; boundary="<?=$boundary_alternatives?>"
     
    --<?=$boundary_alternatives . PHP_EOL /* Première alternative: plain text */?>
    Content-Type: text/plain; charset="utf-8"
    Content-Transfer-Encoding: 8bit
     
    <?=strip_tags($message_html)?>
     
    --<?=$boundary_alternatives . PHP_EOL /* Seconde alternative: HTML */?>
    Content-Type: text/html; charset="utf-8"
    Content-Transfer-Encoding: 8bit
     
    <?=$message_html?>
     
    --<?=$boundary_alternatives /* Fin des alternatives */?>--
     
    --<?=$boundary_structure . PHP_EOL /* Seconde partie de la structure: le fichier */?>
    Content-Type: text/csv; name="nom_fichier.csv"
    Content-Transfer-Encoding: base64
    Content-Disposition: attachment
     
    <?=$attachment?>
     
    --<?=$boundary_structure /* Ferme la structure */?>--
    <?php
    $message = ob_get_clean();
     
    $is_mail_sent = mail($to, $subject, $message, implode(PHP_EOL, $headers));
     
    	}
    	}
    } 
    }
    }
    closedir($opdossier);

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    la syntaxe des e-mails n'est pas facile donc pour envoyer des e-mails complexes, il vaut mieux utiliser phpmailer :
    https://github.com/PHPMailer/PHPMailer

  3. #3
    Membre du Club
    Homme Profil pro
    Pour le plaisir
    Inscrit en
    Novembre 2012
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pour le plaisir
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Novembre 2012
    Messages : 164
    Points : 61
    Points
    61
    Par défaut
    bonjour
    je comprend pas leur code
    j'ai télécharger phpmailer6.5.1

    j'ai une erreur syntax error, unexpected 'use'

    le require '../vendor/autoload.php'; on le trouve ou ? pas de autoload dans leur zip

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
     echo $fich = "/dd/dd/".$fichier;
     
    //Import the PHPMailer class into the global namespace
    use PHPMailer\PHPMailer\PHPMailer;
    use PHPMailer\PHPMailer\Exception;
     
    require 'PHPMailer/src/Exception.php';
    require 'PHPMailer/src/PHPMailer.php';
    require 'PHPMailer/src/SMTP.php';
     
    require '../vendor/autoload.php';
     
    //Create a new PHPMailer instance
    $mail = new PHPMailer();
    //Set PHPMailer to use the sendmail transport
    $mail->isSendmail();
    //Set who the message is to be sent from
    $mail->setFrom('from@example.com', 'First Last');
    //Set an alternative reply-to address
    $mail->addReplyTo('dd@yahoo.fr', 'First Last');
    //Set who the message is to be sent to
    $mail->addAddress('dd@yahoo.fr', 'John Doe');
    //Set the subject line
    $mail->Subject = 'PHPMailer sendmail test';
    //Read an HTML message body from an external file, convert referenced images to embedded,
    //convert HTML into a basic plain-text alternative body
    $mail->msgHTML(file_get_contents('contents.html'), __DIR__);
    //Replace the plain text body with one created manually
    $mail->AltBody = 'This is a plain-text message body';
    //Attach an image file
    $mail->addAttachment($fich);
     
    //send the message, check for errors
    if (!$mail->send()) {
        echo 'Mailer Error: ' . $mail->ErrorInfo;
    } else {
        echo 'Message sent!';
    }

  4. #4
    Inactif  
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2021
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2021
    Messages : 645
    Points : 1 280
    Points
    1 280
    Par défaut
    Bonjour,

    • pourquoi ne pas le faire manuellement via FTP ? (Filezilla,...)
    • pour la base de données, il suffit d'y accéder avec phpmyAdmin, non ?

    Certes, ce n'est pas "en automatique"...
    mais, sauf erreur ou exception, les boites de messageries ne sont pas configurées pour accepter de grandes quantités de fichiers (et Mo) en pièces jointes.

  5. #5
    Membre du Club
    Homme Profil pro
    Pour le plaisir
    Inscrit en
    Novembre 2012
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pour le plaisir
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Novembre 2012
    Messages : 164
    Points : 61
    Points
    61
    Par défaut
    bonjour
    j’essaie toujours a sauvegarder ma base de donnée sur mon pc et certain dossier photos.

    j'ai installer filezilla server sur un pc portable créer user et mot de pass.
    je test avec internet explorer 11 sur windows 7 du même portable en entrant l'ip du portable = je vois les fichiers.
    je fait la même chose sur un autre pc windows 10 internet explorer version 1809 = page blanche me demande même pas le login.
    en entrant la même chose sur filezilla client toujours avec l'ip du portable = ne veut pas se connecter
    sur filezilla server je vois aucune connections.
    en regardant dans le pare-feu, il n'y avait pas filezilla client donc mis, mais c'est pareille.

    en utilisant ce script en local
    j'ai comme erreur undefined function ftp_connect()

    en ligne : ça reste en page d’accueil, ça mouline pendant 1 min puis :
    Warning: ftp_login() expects parameter 1 to be resource,

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    if($opdossier = opendir($dossier))
    {
    while(false !== ($fichier = readdir($opdossier)))
    {
    if($fichier != '.' && $fichier != '..' && $fichier != 'savebase.php' && $fichier != 'index.html')
    {
    $explo = explode("_", $fichier);
    if(isset($explo[1])){
    $recdate = $explo[1];	
    }
    if (isset($recdate) AND $recdate < $datvieux){
    	//suppime fichier de + de 30 jours
    	unlink ($fichier); 
    } else if ($recdate == $datnow)
    	{
     
    	 $tailfichier = taille(filesize($backup_name));
    	 $tailfich = filesize($backup_name);
    	if ($tailfich < 24000000){	
     
       $fich = "./../../admin/basesav/".$fichier;
     echo 'ttt';
     
     
    // Données de connexion au serveur FTP
    $ftpServer = '192.168.1.21';
    $ftpUser = 'ftp';
    $ftpPwd = 'aaa';
    $ftpTarget = '/ftpsav/';
     
     
      // On spécifie le chemin absolu où le script stockera les sorties .gz et .html
    $path = './../../admin/basesav/';
     
     
      $connection = ftp_connect($ftpServer);
      $login = ftp_login($connection, $ftpUser, $ftpPwd);
     
      if ($connection && $login) {
        echo 'La tentative de connexion FTP a réussi !<br>';
     
        $upload = ftp_put($connection, $ftpTarget . $fichier, $path . $fichier, FTP_BINARY);
     
        if ($upload) {
          echo '<span style="color:#090">Le téléversement par FTP a réussi !</span><br>';
        } else {
          echo '<span style="color:#900">Le téléversement par FTP a échoué !</span><br>';
        }
      } else {
        echo 'La tentative de connexion FTP a échoué !<br>';
      }
     
    } 
    }
    }
    }
    }
    closedir($opdossier);
    dans phpinfo
    FTP support enabled
    FTPS support enabled
    en faisant une condition sur $connection = ftp_connect($ftpServer);
    il me dit non...
    Est que c'est bien l'ip de mon ordi portable pour le serveur ?

    si quelqu'un peut m'aider, je ne sais plus quoi faire ?

Discussions similaires

  1. Insérer une photo sur base des donnes
    Par octal2007 dans le forum VB.NET
    Réponses: 9
    Dernier message: 22/04/2008, 14h41
  2. Base de donnée photo
    Par tarmin dans le forum IHM
    Réponses: 10
    Dernier message: 12/07/2007, 08h58
  3. affichage de photos et texte venant d une base de données.
    Par xtiand4 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 23/06/2006, 14h14
  4. stockage de photos dans base de données ou dans un répertoir
    Par papy_tergnier dans le forum PostgreSQL
    Réponses: 9
    Dernier message: 08/12/2005, 16h22
  5. [MySQL] Afficher une photo à partir de la base de données
    Par microcongo dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 07/09/2005, 17h29

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