Envoie donnée
Résolu
Mopire
Messages postés
23
Date d'inscription
Statut
Membre
Dernière intervention
-
Mopire Messages postés 23 Date d'inscription Statut Membre Dernière intervention -
Mopire Messages postés 23 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je ne savais pas quoi mettre en titre donc j'ai mis ça...
Sur mon site j'ai un espace membre avec une gestion de droit il y a n'a que 3 droits (administrateur, fournisseur et administration) sur une page il y a des fichiers a télécharger où seulement les fournisseur et l'administrateur peux accéder (macher.php). Si un fournisseur télécharge un fichier, l'administrateur doit être au courant de quel fournisseur a télécharger (grâce a son nom d'entreprise) et la date auquel il l'a télécharger. Pour cela on rentre ces informations dans une table (on y stockera le nom de l'entreprise et la date et la nom du fichier) et un mail sera envoyer à l'administrateur avec ces informations pour le mettre au courant (telecharger.php).
telecharger.php
La date s'affiche bien dans la BDD mais pas dans le mail. Et ni le nom de l'entreprise ni le nom de fichier s'insert dans la BDD ni dans le mail.
Merci d'avance de votre aide.
Je ne savais pas quoi mettre en titre donc j'ai mis ça...
Sur mon site j'ai un espace membre avec une gestion de droit il y a n'a que 3 droits (administrateur, fournisseur et administration) sur une page il y a des fichiers a télécharger où seulement les fournisseur et l'administrateur peux accéder (macher.php). Si un fournisseur télécharge un fichier, l'administrateur doit être au courant de quel fournisseur a télécharger (grâce a son nom d'entreprise) et la date auquel il l'a télécharger. Pour cela on rentre ces informations dans une table (on y stockera le nom de l'entreprise et la date et la nom du fichier) et un mail sera envoyer à l'administrateur avec ces informations pour le mettre au courant (telecharger.php).
telecharger.php
<?php $Nom_Entreprise = $_POST["Nom_Entreprise"]; $destinataire = "speedy.02.lesblairs@hotmail.fr"; mysql_connect("", "", ""); mysql_select_db(""); $result = mysql_query(" INSERT INTO info_dl( Nom_Entreprise , nom_fichier , date_telechargement ) VALUES( '" . $_POST["Nom_Entreprise"] . "' , '" . $_POST["Fichier_a_telecharger"] . "' , NOW() ) "); if(!$result) { $messages = "Erreur d'accès à la base de données lors de la création du compte utilisateur"; } else { $sujet = "Téléchargement de fichier"; $message = "$Nom_Entreprise vient de télécharge le fichier $Fichier_a_telecharger le $date"; mail($destinataire, $sujet, $message); } // on essaie de reconnaitre l'extension pour que le téléchargement corresponde au type de fichier afin d'éviter les erreurs de corruptions switch(strrchr(basename($Fichier_a_telecharger), ".")) { case ".gz": $type = "application/x-gzip"; break; case ".tgz": $type = "application/x-gzip"; break; case ".zip": $type = "application/zip"; break; case ".pdf": $type = "application/pdf"; break; case ".png": $type = "image/png"; break; case ".gif": $type = "image/gif"; break; case ".jpg": $type = "image/jpeg"; break; case ".txt": $type = "text/plain"; break; case ".htm": $type = "text/html"; break; case ".html": $type = "text/html"; break; default: $type = "application/octet-stream"; break; } header("Content-disposition: attachment; filename=$Fichier_a_telecharger"); header("Content-Type: application/force-download"); header("Content-Transfer-Encoding: $type\n"); // Surtout ne pas enlever le \n header("Content-Length: ".filesize($chemin . $Fichier_a_telecharger)); header("Pragma: no-cache"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0, public"); header("Expires: 0"); readfile($chemin . $Fichier_a_telecharger); ?>
La date s'affiche bien dans la BDD mais pas dans le mail. Et ni le nom de l'entreprise ni le nom de fichier s'insert dans la BDD ni dans le mail.
Merci d'avance de votre aide.
4 réponses
Bonjour,
Les données qui viennent de liens ne sont pas des données POST, mais des données GET.
Donc dans ton telecharger.php, puisque les variables proviennent du lien, il faut remplacer tes POST par des GET.
En ce qui concerne la date, il est normal qu'elle ne soit qu'en base de données puisque le PHP ne la connait à aucun moment... Ta variable $date est lue mais jamais écrite.
Xavier
Les données qui viennent de liens ne sont pas des données POST, mais des données GET.
Donc dans ton telecharger.php, puisque les variables proviennent du lien, il faut remplacer tes POST par des GET.
En ce qui concerne la date, il est normal qu'elle ne soit qu'en base de données puisque le PHP ne la connait à aucun moment... Ta variable $date est lue mais jamais écrite.
Xavier
Ok j'ai remplacer les POST par des GET, le nom du fichier et le nom de l'entreprise s'insère dans la BDD. Comment faire pour la date?
Bonjour,
Trois possibilités :
Soit faire une requête SELECT pour récupérer celle qui vient d'être insérée, si tu veux la date exacte.
Soit récupérer en PHP la date (par exemple $date = date('d/m/Y H:i:s');)
http://fr.php.net/manual/en/function.date.php
Soit encore récupérer la date en PHP, et insérer celle-là dans ta base plutôt que NOW().
La deuxième solution est plus simple, mais ne donnera pas exactement la même date que celle de la base de données (quelques millisecondes, voire secondes de décalage, surtout si PHP et MySQL ne sont pas sur le même serveur).
À voir selon tes besoins.
Xavier
Trois possibilités :
Soit faire une requête SELECT pour récupérer celle qui vient d'être insérée, si tu veux la date exacte.
Soit récupérer en PHP la date (par exemple $date = date('d/m/Y H:i:s');)
http://fr.php.net/manual/en/function.date.php
Soit encore récupérer la date en PHP, et insérer celle-là dans ta base plutôt que NOW().
La deuxième solution est plus simple, mais ne donnera pas exactement la même date que celle de la base de données (quelques millisecondes, voire secondes de décalage, surtout si PHP et MySQL ne sont pas sur le même serveur).
À voir selon tes besoins.
Xavier