Aller au contenu

arkilon

Membre
  • Compteur de contenus

    2
  • Inscrit(e) le

  • Dernière visite

Tout ce qui a été posté par arkilon

  1. Bon deja quand on parle d'un script c mieux si on le pose : edit oups pardon ouais y manque des bouts a mon message deja erreur de ma part c'est msgparid et pas msg, parid Alors les pieces jointes doivent etre stocké dans un dossier a par et je pensais utiliser l'Idmsg afin de lier la pj au message et de retrouver le msg dans une autre table avec en reference l'id du msg function upload ($Userid, $userfile_size, $userfile_type, $msgID, $type, $defaut ) <?php /* ***********************************************************</ * Messages Fonctions diverses * * Fonctions : * * * - formulaireMessage($ref_dossier) : * * /***********************************************************/ // $modeformulaire : creer - mode creation // - voir : lecture - permet de repondre // - relire : lecture sans bouton pour répondre ( cas d'un mssage envoyé) // - repondre au message $ficheID // $special = 'dossier' 'commande' // La variable $special permet de préciser si le message est rattaché a un dossier par exemple // $ref : précisera le numéro de dossier, ou le parametre a transmettre avec $special function EditerMessage($modeformulaire, $ficheID = '0',$special='',$ref=0) { global $sessid, $sesscode; global $uid; // 3 modes d'affichages // Creer, Modifer, voir // Affichage : on affiche le formulaire, mais tous les champs sont marqués en READONLY if ($modeformulaire == 'voir') $readonly = 'readonly'; else $readonly = ''; switch ($modeformulaire) { case 'creer': $contactID = 'creation'; $titre = stripslashes($_POST['titre']); $message = stripslashes($_POST['message']); $destinataire = $_POST['destinataire']; break; case 'voir' : case 'relire': // tester si c'est le destinataire case 'repondre': case 'modifier' : // $requeteFiche="Select * from $TABLE_rubrique WHERE rubriqueID=\"$rubriqueID\""; // $fiche=DB_RequeteBase($requeteFiche); $reqMsg=MCI_safe_query("SELECT * FROM MCI_msgtable WHERE msgID=\"$ficheID\""); $fichemessage=mysql_fetch_array($reqMsg); // on cherche a savoir si l'utilisateur qui lit est bien le destinataire $reqUser=MCI_safe_query("SELECT date_lecture FROM MCI_msgsend WHERE msgID=\"$ficheID\" AND toUserID=\"$uid\""); if ( list($date_lecture)=mysql_fetch_array($reqUser) ) { if ($date_lecture=='0000-00-00 00:00:00') { // 1ere lecture - Mettre a jour la fiche $rightnow=date("Y-m-d H:i:s"); $lecture=MCI_safe_query("UPDATE MCI_msgsend SET date_lecture=\"$rightnow\" WHERE msgID=\"$ficheID\" AND toUserID=\"$uid\""); } } // Cas d'un message systeme // on verif qu'il s'agit d'un message systeme // si oui, on insere une entrée dans msgsend pour indiquer l'heure de lecture par l'utilisateur en cours $reqMsgSys=MCI_safe_query("SELECT date_lecture FROM MCI_msgSystem AS sys LEFT JOIN MCI_msgsend AS lu ON (lu.msgID=sys.msgID) WHERE sys.msgID=\"$ficheID\" "); if ( list($msgID)=mysql_fetch_array($reqMsgSys) ) { // si date_lecture est vide, alors le message n'a pas encore été lu par l'utilisateur if ($date_lecture=='') { $rightnow=date("Y-m-d H:i:s"); $lecture=MCI_safe_query("INSERT INTO MCI_msgsend SET date_lecture=\"$rightnow\" , msgID=\"$ficheID\" , toUserID=\"$uid\""); } } $msgID = $ficheID; $fromUserID= $fichemessage['fromUserID']; $titre = stripslashes($fichemessage['titre']); $message = stripslashes($fichemessage['message']); $date_envoi= $fichemessage['date']; $piece_jointe_id = stripslashes($fichemessage['piecejoinjte']); $msgParID = $fichemessage['msgParID']; $readonly='readonly'; break; default: } if ($modeformulaire=='repondre') { $message_origine=$message; $message=""; $titre="Re : ".$titre; $destinataire=$fromUserId; $readonly=''; } $disp = ''; $disp .= "<form name='formContact' action='$PHPSELF' method=POST>"; // $disp .= '<a href="#p1" class="toggle">Infos</a> | <a href="#p2" class="toggle">Commentaires</a> | <a href="#p3" class="toggle">Appels</a> | <a href="#p4" class="toggle">Groupes</a>'; $disp .= '<div id="skform">'; $disp .= session_form(); // Indiquer le destinataire if ($modeformulaire=='creer') { $disp.= '<div class="row">'; $disp .= "<label class='col1'></label>"; $disp.= '<span class="col2"><b>Nouveau message</b></span>'; $disp.= '</div>'; //$disp .= '<div style="float:left;margin-left:50px;margin-right:20px;">'; $disp.= '<div class="row">'; $disp .= "<label class='col1'>Destinataire :</label>"; $boite_select='<br><select name="destinataire[]" '.$readonly.' multiple size=\'15\'><option value="-1">-------------</option>'; $utilisateurs=MCI_safe_query("SELECT uid,login,nom,prenom FROM MCI_utilisateur WHERE type!='Profil' ORDER BY nom"); while(list($user_id,$login,$nom,$prenom)=mysql_fetch_array($utilisateurs)){ $boite_select.="<option value='$user_id'>$nom $prenom</option>"; } // while $boite_select.='</select>'; $disp .= "<span class='col2'>$boite_select</span>"; $disp .= "</div>\n"; //$disp.='<div style="float:right;">'; } if ($modeformulaire=='repondre'){ $utilisateurs=MCI_safe_query("SELECT uid,login,nom,prenom FROM MCI_utilisateur WHERE uid=\"$fromUserID\""); list($user_id,$login,$nom,$prenom)=mysql_fetch_array($utilisateurs); $disp .= '<div class="row">'; $disp .= "<label class='col1'>Destinataire :</label>"; $disp .= "<span class='col2'>$nom $prenom </span>"; $disp .= "</div>\n"; mysql_free_result($utilisateurs); // transmettre la valeur du destinataire // transmis comme un tableau ( meme si le destinataire est ici unique) // ( pour n'avoir qu'un seul code de traitement) $disp .= "<input type='hidden' name='destinataire[]' value=\"$fromUserID\">"; } // Si message rattaché à un dossier // transmettre en champ caché le dossier // Si on est dans le cas d'une réponse, on regarde si le message parent est un message deja rattaché // a un dossier. Si c'est le cas , on recupere les infos. $attachDossier=MCI_safe_query("Select ref_dossier from MCI_msgdossiers WHERE msgID=\"$ficheID\""); if (list($ref_dossier)=mysql_fetch_array($attachDossier)) { $special='dossier'; // on passe dans le cas dossier $ref=$ref_dossier; } if ($special=='dossier') { if ($modeformulaire=='creer') $titre="Dossier $ref : ".$titre; // indiquez si public ou privé if ($modeformulaire=='creer') { $disp_mode='<select name="prive" style="font-family : monospace; font-size : 7pt"><option value="0">public</option><option value="1">privé</option></select>'; } else { // on hérite du message parent list($prive)=mysql_fetch_array(MCI_safe_query("SELECT prive FROM MCI_msgdossiers WHERE msgID=\"$ficheID\"")); $disp.="<input type='hidden'name='prive' value='$prive'>"; if ($prive==0) $disp_mode='public'; else $disp_mode='privé'; } $disp .= "<input type='hidden' name='dossier' value='$ref'>"; $disp .= '<div class="row">'; $disp .= "<label class='col1'></label>"; $disp .= "<span class='col2'>Message $disp_mode rattaché au dossier $ref</span>"; $disp .= "</div>\n"; } // Sujet du message $disp .= '<div class="row">'; $disp .= "<label class='col1'>Sujet :</label>"; if ($modeformulaire!='voir') $disp .= "<span class='col2'><input name='titre' value=\"$titre\" size='50' $readonly></span>"; else $disp.="<span class='col2'><b>$titre</b></span>"; $disp .= "</div>\n"; if ($modeformulaire=='voir') { $utilisateurs=MCI_safe_query("SELECT uid,login,nom,prenom FROM MCI_utilisateur WHERE uid=\"$fromUserID\""); list($user_id,$login,$nom,$prenom)=mysql_fetch_array($utilisateurs); $disp .= '<div class="row">'; $disp .= "<label class='col1'>Exp. :</label>"; $disp .= "<span class='col2'>$nom $prenom - $date_envoi</span>"; $disp .= "</div>\n"; // reafficher le destinataire - pour impression $utilisateurs=MCI_safe_query("SELECT uid,login,nom,prenom FROM MCI_utilisateur WHERE uid=\"$uid\""); list($user_id,$login,$nom,$prenom)=mysql_fetch_array($utilisateurs); $disp .= '<div class="row">'; $disp .= "<label class='col1'>Dest. :</label>"; $disp .= "<span class='col2'>$nom $prenom </span>"; $disp .= "</div>\n"; mysql_free_result($utilisateurs); } // Message $disp .= '<div class="row">'; $disp .= "<label class='col1'>Message :</label>"; if ($modeformulaire!='voir')$disp .= "<span class='col2'><textarea name='message' cols='60' rows='10' $readonly>$message</textarea></span>"; else $disp.='<span class="col2">'.nl2br($message).'</span>'; $disp .= "</div>\n"; // rappeler message d'origine et transmettre le numéro d'ID parent if ($modeformulaire=='repondre') { $disp .= '<div class="row">'; $disp .= "<label class='col1'></label>"; $disp .= "<span class='col2'><b>Rappel du message reçu : </b><br>$message_origine</span>"; $disp .= "</div>\n"; $disp.="<input type='hidden' name='msgParID' value='$ficheID'>"; } // afficher les boutons d'action if ($modeformulaire == 'voir') { // Transmettre en hidden le numero du message Parent $disp .= "<input type='hidden' name='msgID' value='$ficheID'>"; // Inclure le bouton Répondre $disp .= '<div class="row">'; $disp .= "<label class='col1'></label>"; $disp .= "<span class='col2'><input type='submit' name='bouton' value='répondre'></span>"; $disp .= "<span class='col2'><input type='hidden' name='action' value='lire'></span>"; $disp .= "<span class='col2'><input type='hidden' name='sousaction' value='repondre'></span>"; $disp .= "</div>\n"; } if ($modeformulaire == 'creer' ) { $disp .= '<div class="row">'; $disp .= "<label class='col1'></label>"; $disp .= "<span class='col2'><input type='submit' name='bouton' value='envoyer'></span>"; $disp .= "<span class='col2'><input type='hidden' name='action' value='creer'></span>"; $disp .= "<span class='col2'><input type='hidden' name='sousaction' value='envoyer'></span>"; $disp .= "</div>\n"; } if ($modeformulaire == 'repondre' ) { $disp .= '<div class="row">'; $disp .= "<label class='col1'></label>"; $disp .= "<span class='col2'><input type='submit' name='bouton' value='envoyer'></span>"; $disp .= "<span class='col2'><input type='hidden' name='action' value='lire'></span>"; $disp .= "<span class='col2'><input type='hidden' name='sousaction' value='validerrepondre'></span>"; $disp .= "</div>\n"; } //if ($modeformulaire=='creer') $disp.='</div>'; $disp .= '<div class="row">'; $disp .= "<label class='col1'></label>"; $disp .= "<span class='col2'><br><br><a href='java script:history.back()'>Retour Page précédente</a></span>"; $disp .= "</div>\n"; $disp .= '</div>'; // fin div id=skform $disp .= '</form>'; echo $disp; } function ValiderMessage($modeformulaire) { global $sessid, $sesscode; global $uid; if ((!isset($_POST["destinataire"])) || $_POST['destinataire'] == "") $erreurs[] = "Indiquez un destinataire"; if ((!isset($_POST["titre"])) || $_POST['titre'] == "") $erreurs[] = "Merci de donner un titre à votre message"; if ((!isset($_POST["message"])) || $_POST['message'] == "") $erreurs[] = "Votre message est vide"; if (!count($erreurs)) { // Champs communs pour une insertion ou une modification $date_rightnow = date("Y-m-d H:i:s"); $requeteSQL = " fromUserID=\"$uid\", titre = '" . FORM_FormateEntree($_POST['titre']) . "', message = '" . FORM_FormateEntree($_POST['message']) . "', date=\"$date_rightnow\" "; // Creation de la requete SQL en entier switch ($modeformulaire) { case 'creer': // Ajout des champs complétmentaires //$requeteSQL = "date_inscription='$date_today'," . $requeteSQL; // Creation de la commande d'insertion $requeteSQL = "INSERT into MCI_msgtable SET " . $requeteSQL; break; case 'repondre': // ajouter le message parent $requeteSQL = "msgParID='" . $_POST['msgParID'] . "'," . $requeteSQL; $requeteSQL = "INSERT into MCI_msgtable SET " . $requeteSQL; break; case 'modifier': $requeteSQL = "UPDATE MCI_msgtable SET " . $requeteSQL; $requeteSQL .= "WHERE contactID='{$_POST['ficheID']}'"; break; } // Fin switch $resultDB = MCI_safe_query($requeteSQL); if ($modeformulaire=='creer' || $modeformulaire=='repondre') $ficheID = mysql_insert_id(); else $ficheID=$_POST['ficheID']; // Remplir la table des destinataires $destinataires=$_POST['destinataire']; if ($destinataires){ foreach ($destinataires as $destID){ $requeteEnvoi="INSERT INTO MCI_msgsend SET msgID=\"$ficheID\", toUserID='" . $destID . "' "; $envoi=MCI_safe_query($requeteEnvoi); } } // traiter les cas spéciaux // message d'un dossier if (isset($_POST["dossier"])){ $requeteEnvoi="INSERT INTO MCI_msgdossiers SET msgID=\"$ficheID\", ref_dossier='" . $_POST['dossier'] . "', prive='" . $_POST['prive'] . "' "; $envoi=MCI_safe_query($requeteEnvoi); } echo ".....Message envoyé"; // Envoyer une notification au destinataire // si le champ notification est a oui $requete_notification=MCI_safe_query("SELECT notification,email FROM MCI_utilisateur WHERE uid=\"$destID\" "); if ( list($notification,$email)=mysql_fetch_array($requete_notification) ) { if ($notification=='oui') { $expediteur=MCI_safe_query("SELECT nom, prenom FROM MCI_utilisateur WHERE uid=\"$uid\" "); list($nom,$prenom)=mysql_fetch_array($expediteur); $to_email=$email; $from_email='arkilon_AT_yahoo.fr; $reply_email='no-reply_AT_free.fr; $sujet="Intra : ".$_POST['titre']; $signature_email="\n\n\n==========================================\n\n==========================================\n\n\n"; $message="Vous avez reçu un nouveau message dans l'intranet.\n\n"; $message.="\n Copie du message :\n"; $message.="\n -------------------------------------------------------"; $message.="\nExpéditeur : $prenom $nom\n\n"; $message.=$_POST['message']; $message.="\n -------------------------------------------------------"; $message.="\n Merci d'utiliser l'intranet pour répondre à ce message"; $entetedate = date("D, j M Y H:i:s -0000"); // avec offset horaire -0600 decalage 6 heures $entetemail = "From: $from_email \n"; // Adresse expéditeur $entetemail .= "Reply-To: $reply_email \n"; // Adresse de retour - Par defaut sur l'email fourni par l'internaute repondant $entetemail .= "X-Mailer: MaxChaoulProd/" . phpversion() . "\n" ; $entetemail .= "Date: $entetedate"; mail($to_email,$sujet,$message,$entetemail); echo "<br>..... Notification envoyée."; } } listing(); } else { foreach($erreurs as $val) { echo "<LI><div class='erreur'>$val</div></LI>"; } EditerMessage($modeformulaire, $_POST['ficheID']); } // fin else } /////////////////////////////////////////////////////////// // function listing() // // //////////////////////////////////////////////////////// function listing() { global $uid; // Afficher la liste des messages recus $msgRecus=MCI_safe_query("SELECT msg.msgID,titre,date,date_lecture,fromUserID,nom,prenom FROM MCI_msgsend AS send LEFT JOIN MCI_msgtable AS msg ON (msg.msgID=send.msgID) LEFT JOIN MCI_utilisateur AS user ON (user.uid=msg.fromUserID) WHERE toUserID=\"$uid\" AND fromUserID<>'0' ORDER BY date DESC LIMIT 200"); //AND msgParID='0' $disp_recus='<div id="p1">'; $disp_recus.='<b>Messages recus</b>'; $disp_recus.='<ul class="listeMessages">'; while( list($msgID,$titre,$date,$date_lecture,$fromUserID,$nom,$prenom)=mysql_fetch_array($msgRecus)) { $titre=stripslashes($titre); $nom=stripslashes($nom); $prenom=stripslashes($prenom); $url= session_url("messages.php?action=lire&msgID=".$msgID); if ($date_lecture=='0000-00-00 00:00:00') { $disp_recus=$disp_recus."<li><b><a href='$url'>$titre</a> - $nom $prenom - $date - Non Lu</b></li>"; } else $disp_recus=$disp_recus."<li><a href='$url'>$titre</a> - $nom $prenom - $date - Lu :$date_lecture</li>"; } $disp_recus.='</ul>'; $disp_recus.='</div>'; // Messages envoyés // Afficher la liste des messages envoyés $msgRecus=MCI_safe_query("SELECT msg.msgID,titre,date,date_lecture,fromUserID,nom,prenom FROM MCI_msgsend AS send LEFT JOIN MCI_msgtable AS msg ON (msg.msgID=send.msgID) LEFT JOIN MCI_utilisateur AS user ON (user.uid=send.toUserID) WHERE fromUserID=\"$uid\" ORDER BY date DESC LIMIT 200"); $disp_envoyes='<div id="p2">'; $disp_envoyes.='<b>Messages Envoyés</b>'; $disp_envoyes.='<ul class="listeMessages">'; while( list($msgID,$titre,$date,$date_lecture,$fromUserID,$nom,$prenom)=mysql_fetch_array($msgRecus)) { $titre=stripslashes($titre); $nom=stripslashes($nom); $prenom=stripslashes($prenom); $url= session_url("messages.php?action=relire&msgID=".$msgID); if ($date_lecture=='0000-00-00 00:00:00') { $disp_envoyes=$disp_envoyes."<li><b><a href='$url'>$titre</a> - $nom $prenom - $date - Non Lu</b></li>"; } else $disp_envoyes=$disp_envoyes."<li><a href='$url'>$titre</a> - $nom $prenom - $date - Lu :$date_lecture</li>"; } $disp_envoyes.='</ul>'; $disp_envoyes.='</div>'; // Messages Systemes $id_menu_msgSystem = MCI_ValeurChampSimpleCle("MCI_menu", 'id_menu', 'url', 'matieres.php?action=msgSystem' , "silence"); if (check_niveau_acces($uid, $id_menu_msgSystem)) { $msgSys=MCI_safe_query("SELECT send.msgID,titre,date,toUserID,date_lecture FROM MCI_msgSystem AS msgSys LEFT JOIN MCI_msgtable AS send ON (msgSys.msgID=send.msgID) LEFT JOIN MCI_msgsend AS lu ON (msgSys.msgID=lu.msgID) WHERE fromUserID=\"0\" ORDER BY date DESC LIMIT 300"); $disp_system='<div id="p3">'; $disp_system.='<b>Messages Système</b>'; $disp_system.='<ul class="listeMessages">'; while( list($msgID,$titre,$date,$toUserID,$date_lecture)=mysql_fetch_array($msgSys)) { $titre=stripslashes($titre); $nom='System'; $prenom='Neosys'; $url= session_url("messages.php?action=lire&msgID=".$msgID); // on teste dans MCI_msgsend s'il existe un enregistrement de lecture pour l'utilisateur en cours // sinon la fiche n'existe pas' if ($toUserID='' || ($toUserID!=$uid) ) { $disp_system=$disp_system."<li><b><a href='$url'>$titre</a> - $nom $prenom - $date - Non Lu</b></li>"; } else $disp_system=$disp_system."<li><a href='$url'>$titre</a> - $nom $prenom - $date - Lu : $date_lecture</li>"; } $disp_system.='</ul>'; $disp_system.='</div>'; } // fin panel msg System $url= session_url("messages.php?action=creer"); $disp_entete="<a href='$url'>Créer un message</a><br><br>"; $disp_entete.='<ul class="onglets"> <li><a href="#p1" class="toggle">Messages reçus</a></li> <li><a href="#p2" class="toggle">Messages envoyés</a></li>'; if (check_niveau_acces($uid, $id_menu_msgSystem)) $disp_entete.='<li><a href="#p3" class="toggle">Messages Système</a></li>'; $disp_entete.='</ul>'; echo '<blockquote>'; echo $disp_entete; echo $disp_recus; echo $disp_envoyes; echo $disp_system; echo '</blockquote>'; } ?>
  2. Bonjour, Aprés m"etre creuser la tete et fais de nombreuses recherche sur google je me decide a poster car la je bloque mon script de messagerie interne fonctionne et cela sans probleme, toutefois je me suis penché sur l'idee de mettre des pieces jointes avec et la je bloque... je n'ai trouvé sur google aucun lien, sur les forums peu de chose non plus voir meme rien du tout. Ma table message contient msgID, fromUserID, titre, message, date, msg,ParID, piecejointe si quelqu'un a vu passer ce genre de script ou a une idee je suis preneur merci
×
×
  • Créer...