* * mysql_query("SET AUTOCOMMIT=0"); * $req=" BEGIN"; * */ //pour rechercher l'id de l'insertion il faut savoir depuis quand l'insertion s'est faite $req = "select now()"; $date = requete_champ_unique($req); $req = creerDiscussion($sujet, $intitule, $idAok, $dest); $res = requete($req); if (mysql_errno()) { $echec = "erreur lors de la création de la discussion."; } //puisqu'on ne peut garantir qu'il n'y a pas eu d'autre insertion entre les deux (pb LAST_INSERT_ID()) //on recherche donc la discussion créée avec ces paramètres depuis quelques secondes. $req = derniereDiscussion($sujet, $intitule, $idAok, $dest, $date); $id_d = requete_champ_unique($req); //Rq : il ne faut SURTOUT PAS tenter d'affecter un retour en comparant avec une valeur : $var=fonction()==null ne met pas le résultat de fonction dans var mais rien (pas même false ou true apparemment) ! if ($id_d == null || trim($id_d) == "") { $echec = "erreur : discussion introuvable. Sans doute non créée."; } if ($echec != "") { //erreur d'ajout de la nouvelle discussion xmlErreur($echec); } else { //discussion lancée //on peut maintenant enregistrer le nouveau message $req = ecrireMessage($auteur, $id_d, $intitule, $texte); requete($req); if (mysql_errno() == 0) { // if (requete($req)==null) { header('Content-Type: application/xml');
//contrôle des données if (!isset($_GET["titre"]) || !$_GET["titre"] || !isset($_GET["corps"]) || !$_GET["corps"]) { xmlErreur("Veuillez remplir tous les champs."); exit; } if (!isset($_GET["id_mess"]) || !$_GET["id_mess"] || !isset($_GET["id_disc"]) || !$_GET["id_disc"]) { xmlErreur("Un souci a eu lieu avec le formulaire d'envoi."); exit; } $titre = $_GET["titre"]; $corps = $_GET["corps"]; $id_mess = $_GET["id_mess"]; $id_disc = $_GET["id_disc"]; if (!isset($lid)) { //retrouver l'id du lapin qui écrit, celui du propriétaire courant $req_id = "SELECT id_lapin FROM `{$prefixe}Discussion` d join {$prefixe}lapin l on d.dest=l.id_lapin\n\t\t\tWHERE id_disc='{$id_disc}' and l.id_profil='{$pid}' \n\t\t\tunion\n\t\t\tSELECT id_lapin FROM `{$prefixe}Discussion` d join {$prefixe}lapin l on d.auteur=l.id_lapin\n\t\t\tWHERE id_disc='{$id_disc}' and l.id_profil='{$pid}'"; $lid = requete_champ_unique($req_id); if (!isset($lid)) { xmlErreur("Aucun lapin n'est identifié."); exit; } } $req_ins = "insert into `{$prefixe}Message` values ('', '{$titre}','{$corps}',NOW(),'{$id_disc}','{$lid}')"; $res = requete_champ_unique($req_ins); header('Content-Type: application/xml'); $data = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?> \n<messagerie>"; $data .= "<contexte>ajout</contexte>\n"; $data .= "<retour>ok</retour>\n"; $data .= "</messagerie>"; echo $data; //echo "insertion : $res ".mysql_error();
<?php require_once "include/sql.php"; if (connect()) { //!!! vérifier que la personne est bien connectée (cookie/session) //!!! gérer l'erreur d'absence de paramètres GET //!!! gérer la sécurité (ne pas inclure GET directement !) $req_mess = "select texte from `{$prefixe}Message` where id_mess='" . $_GET['id_mess'] . "'"; $corps = requete_champ_unique($req_mess); header('Content-Type: application/xml'); $data = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?> \n<message>"; $data .= "<corps>{$corps}</corps>"; $data .= "\n</message>"; echo $data; } else { //!!! à tester echo "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?> \n<boite>\n</boite>"; }
//le compte ne se fait qu'en étant connecté if (isset($_SESSION["identifiant"])) { //connecté : afficher les messages en relation avec le membre et la fiche //identifier le membre connecté $mid = $_SESSION['mid']; //connecté à la base ? if (!connect()) { //gestion de l'erreur header("Location: ../../index.php?page=erreur&message=La messagerie n'est pas accessible actuellement."); // echo "<div class='erreur'>\nLa messagerie n'est pas accessible actuellement.</div>\n"; // exit; } //aucun membre identifié (ou un des ses lapins) if (!isset($mid) && !isset($_SESSION['lid'])) { //gestion de l'erreur //Rq : à priori inutile avec la connexion ; conservé pour éviter un appel direct header("Location: ../../index.php?page=erreur&message=Vous devez être identifié pour accéder à la messagerie."); // echo "<div class='erreur'>\nVous devez être identifié pour accéder à la messagerie.</div>\n"; // exit; } //rechercher le nombre de nouveaux messages depuis le dernier accès à sa messagerie $req_disc = nonLus($mid); $nb_disc = requete_champ_unique($req_disc) or 0; //envoyer le résultat header('Content-Type: application/xml'); $data = "<?xml version=\"1.0\" encoding=\"utf-8\" ?> \n<nouveaux>"; $data .= "<nombre>{$nb_disc}</nombre>"; $data .= "</nouveaux>"; echo $data; } //non connecté : on ne fait rien
$message = " \nun probleme s'est produit."; //renvoi tout sauf mots de passe, mail, code postal (parametres en GET ) header('Location: ../index.php?page=inscription&mess=' . urlencode($message) . '&user='******'&nom=' . urlencode($nom) . '&prenom=' . urlencode($prenom)); } else { //c'est bon //GESTION DE LA PHOTO require_once "upload_photo.inc.php"; if (isset($_FILES['trombine'])) { $fich = enregistrer_photo($_FILES['trombine'], $user); if ($fich) { //succes upload $sql = "UPDATE lapin_proprietaire SET trombine = '" . $fich . "' WHERE identifiant = '" . $user . "';"; mysql_query($sql); } } //ne pas oublier l'identifiant du profil pour la messagerie et la recherche $sql = "SELECT id_profil FROM lapin_proprietaire WHERE identifiant = '" . $user . "'"; $mid = requete_champ_unique($sql); //if( ! isset($_SESSION['identifiant']) ){ // modif dom : dans tous les cas réinitialiser l'identifiant $_SESSION['identifiant'] = $user; // $_SESSION['mid'] = $mid; // session_regenerate_id(true); //} //goto profile page header('Location: ../index.php?page=profil&user=' . urlencode($user)); } disconnect(); //deconnexion MySQL }
foreach ($lapins as $lapin) { $code .= "<option value='{$lapin->id_lapin}'>{$lapin->nomlap}</option>"; } $code .= "</select>"; $code .= "<label>Thème : </label><input type='text' name='sujet' value=''>"; $code .= "<br />Détails<br /><div class='detailsMess'>\n"; $code .= "<label>Titre : </label><input type='text' name='intitule' value=''>"; $code .= "<label>Message : </label><textarea name='corps'></textarea>\n</div>"; //mid est passé par la session $code .= "<input type='hidden' name='id_dest' value='" . $_SESSION['fiche'] . "'>"; $code .= "<input type='submit' name='submit' value='Envoyer' />\n</form>"; $code .= "</fieldset>\n</div>"; } } //clore les conteneurs $code .= "</div>\n</article>\n"; echo $code; //mettre à jour l'heure de dernière consultation pour le compte des nouveaux messages $req_date = MajConsultation($mid); $lapins = requete_champ_unique($req_date); } else { echo "<i>Aucune discussion trouvée.</i> "; } //est-ce toujours nécessaire ? La connexion est peut-être encore utile => l'ajouter systématiquement dans un document générique (moteur) ? disconnect(); //ne pas oublier les fonctionnalités de communications avec le serveur pour ouvrir les discussions et les messages. ?> <script type="text/javascript" language="Javascript" src="scripts/messagerie.js"></script> <?php } //$pid=$_SESSION['pid'];