"; else return webUserDataFolder()."avatars/".$adresse_avatar; } //Affichage de l'image de fond //Recherche de l'image de fond de la personne function imgfond($id_img_fond, $urlsite="./", $whidth=32, $height=32, $id="", $juste_url = false) { //On vérifie si un complément est disponible if(file_exists(relativeUserDataFolder("imgfond/adresse_imgfond/".$id_img_fond.".txt"))) $url = webUserDataFolder("imgfond/".file_get_contents(relativeUserDataFolder("imgfond/adresse_imgfond/".$id_img_fond.".txt"))); else $url = webUserDataFolder("imgfond/0.jpg"); if(!$juste_url) return ""; else return $url; } //Fonction permettant de définir le niveau de visibilité de l'avatar de l'utilisateur //Valeur de retour : // 1 - L'utilisateur et ses amis uniquement // 2 - L'utilisateur, ses amis et les personnes connectées // 3 - L'utilisateur, ses amis, les personnes connectées et non connectées -> Tout le monde function get_niveau_visibilite_avatar($id, $urlsite = "./") { //On définit qu'il est visible par tout le monde $niveau_visibilite_avatar = 3; //On vérifie si ce niveau de visibilité a été personalisé par l'utilisateur $adresse_fichier = relativeUserDataFolder("avatars/adresse_avatars/limit_view_".$id.".txt"); if(file_exists($adresse_fichier)) { //Récupération du contenu du fichier $content_file = file_get_contents($adresse_fichier); //Contrôle du contenu du fichier (on ne prendra en compte sa valeur que si elle ne présente un intérêt if( $content_file == 1 OR $content_file == 2 ) $niveau_visibilite_avatar = $content_file; //On enregistre la nouvelle valeur } //Renvoi du résultat return $niveau_visibilite_avatar; } //Fonction de modification du niveau de visibilité de l'avatar function modifie_niveau_visibilite_avatar($id_personne, $nouveau_niveau, $urlsite = "./") { //Définition de l'adresse du fichier $adresse_fichier = relativeUserDataFolder("avatars/adresse_avatars/limit_view_".$id_personne.".txt"); //Contrôle du nouveau niveau if($nouveau_niveau == 3) { //Niveau égal à trois -> Suppression du fichier if(file_exists($adresse_fichier)) //Suppression du message return unlink($adresse_fichier); else //Rien à faire, retour positif return true; } elseif($nouveau_niveau == 2 OR $nouveau_niveau == 1) { //Edition du fichier et retour (positif ou négatif suivant la réponse) return file_put_contents($adresse_fichier, $nouveau_niveau); } else //Erreur return false; } //Fonction d'ajout de texte function ajouttexte($idpersonne, $texte, $bdd, $niveau_visibilite = 2, $type="texte", $path = "", $annee_fin = 0, $mois_fin = 0, $jour_fin = 0, $url_page="", $titre_page = "", $description_page = "", $image_page = "") { $sql = 'INSERT INTO texte (ID_personne, date_envoi, texte, niveau_visibilite, type, path, annee_fin, mois_fin, jour_fin, url_page, titre_page, description_page, image_page) VALUES (?, NOW(), ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) '; //Exécution de la requete $insertion = $bdd->prepare($sql); $insertion->execute(array($idpersonne, corrige_echapement($texte), $niveau_visibilite, $type, $path, $annee_fin, $mois_fin, $jour_fin, $url_page, $titre_page, $description_page, $image_page)); //Et la notification (uniquement si nécessaire => Si le post n'a pas un niveau égal à 3) if(!visibilite_privee($niveau_visibilite)) sendnotification($_SESSION['ID'], "a ajouté un texte sur sa page.", $bdd, "page:".$_SESSION['ID']); else sendnotification($_SESSION['ID'], "a ajouté un texte sur sa page.", $bdd, "page:".$_SESSION['ID'], "", "texte", list_personnes_groupes($niveau_visibilite, $bdd)); } //Fonction d'ajout de texte sur la page d'un amis //Paramètres de la fonction //$idpersonne : la personne qui ENVOI le texte //$idamis la personne à qui est DESTINE le texte //----------------------------------------- //DB SQL //ID_personne : la personne à qui est DESTINE le texte //ID_amis : la personne qui ENVOI le texte function ajouttexte_amis($idpersonne, $idamis, $texte, $bdd, $niveau_visibilite = 2, $type = "texte", $path = "", $annee_fin = 0, $mois_fin = 0, $jour_fin = 0, $url_page="", $titre_page = "", $description_page = "", $image_page = "") { $sql = 'INSERT INTO texte (ID_personne, ID_amis, date_envoi, texte, niveau_visibilite, type, path, annee_fin, mois_fin, jour_fin, url_page, titre_page, description_page, image_page) VALUES (?, ?, NOW(), ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) '; //Exécution de la requete $insertion = $bdd->prepare($sql); $insertion->execute(array($idamis, $idpersonne, corrige_echapement($texte), $niveau_visibilite, $type, $path, $annee_fin, $mois_fin, $jour_fin, $url_page, $titre_page, $description_page, $image_page)); //La notification UNIQUEMENT SI LE POST EST OUVERT AUX AMIS if(!visibilite_privee($niveau_visibilite)) { //And the notification $infopersonne = cherchenomprenom($idamis, $bdd); sendnotification($_SESSION['ID'], "a ajouté un texte sur la page de ".$infopersonne['prenom'].' '.$infopersonne['nom'].".", $bdd, "page:".$infopersonne['ID'], $idamis); } else { //And the notification $infopersonne = cherchenomprenom($idamis, $bdd); sendnotification($_SESSION['ID'], "a ajouté un texte sur la page de ".$infopersonne['prenom'].' '.$infopersonne['nom'].".", $bdd, "page:".$infopersonne['ID'], $idamis, "texte", list_personnes_groupes($niveau_visibilite, $bdd)); } //Inclusion de la configuration include('inc/config/config.php'); $info_destinataire = cherchenomprenom($idamis, $bdd); //Vérification de l'autorisation d'envoi de mails if($active_envoi_mail == "oui" && $info_destinataire['autorise_mail'] == 1) { //Envoi d'un message au demandé $info_amis = cherchenomprenom($idpersonne, $bdd); $send_mail = true; $sujet = "Nouveau texte sur votre page"; $description_rapide = "Un de vos amis a posté un texte sur votre page."; $nom_destinataire = $info_destinataire['prenom']." ".$info_destinataire['nom']; $adresse_mail_destinataire = $info_amis['mail']; $texte_message = "
Un de vos amis a posté un texte sur votre page.
Voici le texte:
".avatar($idamis, $urlsite)." |
".$info_amis['prenom']." ".$info_amis['nom']." |
".$texte." |
Connectez-vous pour accéder à toute les notifications de Comunic.
"; //Envoi du message include('inc/envoi_mail.php'); } } //Fonction de demande en amis //Fonction nécessaire : liste_amis function demandeamis($idpersonne, $iddemandeur, $bdd) { //On vérifie si une demande n'a pas déjà été postée $liste_verification = liste_amis($idpersonne, $bdd, 0); //On vérifie foreach($liste_verification as $verifier) { if($verifier == $iddemandeur) { //On affiche un message d'erreur echo ""; //On bloque le tout $bloque = 1; } } //On vérifie si un bloquage a été effectué if(!isset($bloque)) { //On poste la demande $sql = "INSERT INTO amis (ID_personne, ID_amis) VALUES (?, ?)"; //Exécution de la requete $insertionamis = $bdd->prepare($sql); $insertionamis->execute(array($idpersonne, $iddemandeur)); //Inclusion de la configuration include('inc/config/config.php'); //Vérification de l'autorisation d'envoi de mails $info_destinataire_demande = cherchenomprenom($idpersonne, $bdd); if($active_envoi_mail == "oui" && $info_destinataire_demande['autorise_mail'] == 1) { //Envoi d'un message au demandé $info_demandeur = cherchenomprenom($iddemandeur, $bdd); $send_mail = true; $sujet = "Demande d'amis de ".$info_demandeur['prenom']." ".$info_demandeur['nom']; $description_rapide = "Vous avez une nouvelle demande d'amis sur Comunic"; $nom_destinataire = $info_destinataire_demande['prenom']." ".$info_destinataire_demande['nom']; $adresse_mail_destinataire = $info_destinataire_demande['mail']; $texte_message = "Une nouvelle demande d'amis a été postée sur votre compte.
Voici la personne qui vous a demandé en amis:
".avatar($iddemandeur, $urlsite)." |
".$info_demandeur['prenom']." ".$info_demandeur['nom']." |
Connectez-vous pour accéder à toute les notifications de Comunic.
"; //Envoi du message include('inc/envoi_mail.php'); } } } //Fonction permettant de vérifier si une demande à devenir ami a déjà été faite function isset_demande_amis($idpersonne, $iddemandeur, $bdd) { //On vérifie si une demande n'a pas déjà été postée $liste_verification = liste_amis($idpersonne, $bdd, 0); //On vérifie foreach($liste_verification as $verifier) { if($verifier == $iddemandeur) { return true; } } return false; } //Fonction de recherche de tous les textes function affichertextes($id, $bdd, $lignedepart = 0, $limit = 10, $niveau_visibilite = 2, $tous_texte_personne = false, $post_precis = false, $liste_groupes = array(), $type = "all") { //Complément de source pour les groupes $complement_source_groupes = ""; foreach($liste_groupes as $ajouter) { $complement_source_groupes .= " OR (niveau_visibilite LIKE '%|".$ajouter."')"; $complement_source_groupes .= " OR (niveau_visibilite LIKE '%|".$ajouter."|%')"; } //Complément de source pour les types de post $complement_source_type = ""; if($type != "all") $complement_source_type = "AND type = '".$type."' "; //Recherche des textes de la personne (en fonction de de tous ou non) if(isset($_SESSION['ID'])) { if($post_precis != false) { $sql = "SELECT * FROM texte WHERE (ID_personne = ".$id.") ".$complement_source_type." AND (((niveau_visibilite <= ?) OR (niveau_visibilite LIKE ?)) ".$complement_source_groupes.") AND ID = ".$post_precis*1; } elseif(!$tous_texte_personne) $sql = "SELECT * FROM texte WHERE (ID_personne = ".$id.") ".$complement_source_type." AND ((((niveau_visibilite <= ?) OR (niveau_visibilite LIKE ?)) ".$complement_source_groupes.") OR ID_amis = ".(isset($_SESSION['ID']) ? $_SESSION['ID'] : "'null'").") ORDER BY ID DESC LIMIT ".$lignedepart.", ".$limit; else $sql = "SELECT * FROM texte WHERE (ID_personne = ".$id.") ".$complement_source_type." AND (((niveau_visibilite <= ?) OR (niveau_visibilite LIKE ?) ".$complement_source_groupes.") OR ID_amis = ".(isset($_SESSION['ID']) ? $_SESSION['ID'] : "'null'").") ORDER BY ID DESC LIMIT ".$lignedepart.", ".$limit; } else { if($post_precis != false) { $sql = "SELECT * FROM texte WHERE ID_personne = ".$id." ".$complement_source_type." AND niveau_visibilite = 1 AND ID = ".$post_precis*1; } elseif(!$tous_texte_personne) $sql = "SELECT * FROM texte WHERE ID_personne = ".$id." ".$complement_source_type." AND niveau_visibilite = 1 ORDER BY ID DESC LIMIT ".$lignedepart.", ".$limit; else $sql = "SELECT * FROM texte WHERE ID_personne = ".$id." ".$complement_source_type." AND niveau_visibilite = 1 ORDER BY ID DESC LIMIT ".$lignedepart.", ".$limit; } //Exécution de la requete $textes = $bdd->prepare($sql); $textes->execute(array($niveau_visibilite, $niveau_visibilite."%")); //Affichage des résultats $retour = array(); while($afficherresultats = $textes->fetch()) { $retour[] = $afficherresultats; } //On renvoi les résultats return $retour; //Fermeture de la requete $textes->closeCursor(); } //Fonction qui permet d'aimer ou de ne plus aimer function aimeaimeplus($actionid, $idtextelike, $idpersonne, $bdd, $type = "texte") { //Recherche de la cause d'appel de cette fonction $sql = "SELECT * FROM aime WHERE (ID_type = ?) && (ID_personne = ?) && (type = ?)"; $requete = $bdd->prepare($sql); $requete->execute(array($idtextelike, $idpersonne, $type)); $tour = "0"; while($executionrequete = $requete->fetch()) { $tour = "1"; } if($actionid == 2) { $action = "Je n'aime plus"; } else { $action = "J'aime"; } //Fermeture de la requete de recherche $requete->closeCursor(); //Si la requete est d'aimer, ajouter une entrée dans la table aimer if($action == "J'aime") { //On vérifie avant si la personne n'aime pas déjà if($tour != 0) { //On affiche un message d'erreur: la personne aime déjà le texte echo ''; } else { //Requete d'insertion $sql = "INSERT INTO aime (ID_type, ID_personne, Date_envoi, type) VALUES (?, ?, NOW(), ?)"; $insertion = $bdd->prepare($sql); $insertion->execute(array($idtextelike, $idpersonne, $type)); } } //Si la requete est de ne plus aimer, supprimer l'entrée de la table if ($action == "Je n'aime plus") { $sql = "DELETE FROM aime WHERE (ID_type = ?) && (ID_personne = ?) && (type = ?)"; $suppression = $bdd->prepare($sql); $suppression->execute(array($idtextelike, $idpersonne, $type)); } } //Fonction de requete de recherche des aime function requeteaime($idtexte, $bdd, $type = "texte") { //On compte ensuite les j'aime pour le texte $sqlaime = ("SELECT * FROM aime WHERE ID_type = ? && type= ?"); $requeteaime = $bdd->prepare($sqlaime); $requeteaime->execute(array($idtexte, $type)); $retour['personnesaiment'] = 0; $retour['vousaimez'] = 0; if(isset($_SESSION['ID'])) { $idpourlescom = $_SESSION['ID']; } else { $idpourlescom = 'x'; } while($afficheraime = $requeteaime->fetch()) { if($afficheraime['ID_personne'] != $idpourlescom) { $retour['personnesaiment']++; } else { $retour['vousaimez'] = 1; $retour['personnesaiment']++; } } //On renvoi le résultat return $retour; //Fermeture de la requete $requeteaime->closeCursor(); } //Fonction permettant de supprimer tous les "aimes" d'un type pour un id function delete_aimes_type_id($idcontent, $type, $bdd) { //Exécution de la requête $sql = "DELETE FROM aime WHERE (ID_type = ?) && (type = ?)"; $requete = $bdd->prepare($sql); $requete->execute(array($idcontent, $type)); } //Fonction d'affichage du bouton j'aime pour un commentaire function bouton_aime_commentaire($idcommentaire, $idtexte, $bdd) { //Recherche du nombre de j'aime $nombre_aime = requeteaime($idcommentaire, $bdd, "commentaire"); //Développement uniquement //print_r($nombre_aime); echo " "; echo $nombre_aime["personnesaiment"]; } //Fonction de suppression de commentaires function suppcom($id, $bdd) { //On récupère les informations dans la base de données $infos_commentaire = select_sql("commentaires", "ID = ?", $bdd, array($id)); //On supprime les mentions "j'aime" du commentaire delete_aimes_type_id($id, "commentaire", $bdd); //On vérifie si une image est associée au commentaire if(preg_match("Type d'image incompatible avec ce service.
"); } // Redimensionnement imagecopyresized($thumb, $source, 0, 0, 0, 0, $width, $height, $infos_image[0], $infos_image[1]); //Détermination du nom de l'image $nom_img_commentaire = sha1(time().$_SESSION['ID'].sha1($commentaire).$_SERVER['REMOTE_ADDR']); //Checking user's folder path checkPersonnalFolder(relativeUserDataFolder("imgcommentaire/"), $_SESSION['ID']); //Check if an image with the same name already exists while(file_exists(relativeUserDataFolder("imgcommentaire/".$_SESSION['ID']."/".$nom_img_commentaire.".png"))) $nom_img_commentaire = crypt($nom_img_commentaire); $nom_img_commentaire = "imgcommentaire/".$_SESSION['ID']."/".$nom_img_commentaire.".png"; //Ecriture du fichier imagepng($thumb, relativeUserDataFolder($nom_img_commentaire)); //On indique où se trouve dans le fichier dans la bdd $image = "file:".$nom_img_commentaire; } } } else ob_end_clean(); } } //Contrôle de la validité du commentaire (nécessite verifie_validite_ajout) if(verifie_validite_ajout($commentaire, true) || $image != "") { //Insertion du commentaire $sql = "INSERT INTO commentaires (ID_personne, ID_texte, date_envoi, commentaire, image_commentaire) VALUES (".$idpersonne.", ".$idtexte.", NOW(), ?, ?)"; $insertion = $bdd->prepare($sql); $insertion->execute(array(corrige_echapement($commentaire), $image)); } else { //Message d'erreur echo ""; } } //Fonction de recherche des informations d'une personne function cherchenomprenom($ID, $bdd = false, $type = 'ID', $messageerreur = "Erreur! Le profil demandé n'existe pas.
") { //On vérifie si il s'agit ou non du fil d'actualité if($ID != "fil" && $bdd) { //Recherche du nom de la personne $sql = "SELECT * FROM utilisateurs WHERE ".$type." = ?"; $nompersonne = $bdd->prepare($sql); $nompersonne->execute(array($ID)); //Affichage du nom de la personne ob_start(); if(!$infos_user = $nompersonne->fetch()) { ob_end_clean(); echo $messageerreur; die(); } ob_end_clean(); //Fermeture de la requete $nompersonne->closeCursor(); } elseif($ID == "fil") { //Informations factices /* Echantillon d'exemple --- [ID] => 1 [nom] => Hubert [prenom] => Pierre [date_creation] => 2013-11-10 09:17:56 [mail] => pierrot42100@yahoo.fr [password] => dsqfqdfqsgq5 [affiche_chat] => 0 [public] => 1 [pageouverte] => 1, [bloquecommentaire] --- */ $infos_user = array( "ID" => "fil", "nom" => "d'actualite", "prenom" => "Fil", "date_creation" => "0000-00-00 00:00:00", "mail" => "no-reply@communiquons.org", "password" => "", "public" => 1, "site_web" => "", "page_verifiee" => 0, "autoriser_post_amis" => 1, "liste_amis_publique" => 0, "bloquecommentaire" => 0 ); } else { ?>Informations manquantes pour accéder à la base de données. Ce n'est pas de votre faute, cependant cette erreur implique l'arrêt du chargement de la page. Essayez d'actualiser la page pour essayer de corriger le problèm.
prepare($sql); $requeteverification->execute(array($idpersonne)); //On prépare les variables pour l'étapge suivante $autorisationspeciale = 0; //On vérifie maintenant if($verifier = $requeteverification->fetch()) { if(($verifier['public'] == 1) && ($verifier['pageouverte'] == 1)) { //On donne alors une autorisation spéciale $autorisationspeciale = 1; } //Fermeture de la requete $requeteverification->closeCursor(); } //On renvoi le résultat suivant si la page est publique ou non if($autorisationspeciale == 1) { return true; } else { return false; } } //Fonction qui permet de vérifier si une personne est un ami ou non function detectesilapersonneestamie($personneconnecte, $secondepersonne, $bdd) { //On vérifie si c'est un amis $sql = "SELECT * FROM amis WHERE (ID_personne = ?) && (ID_amis = ?) && (actif = 1)"; //Exécution de la requete $requeteamis = $bdd->prepare($sql); $requeteamis->execute(array($personneconnecte, $secondepersonne)); //On renvoi le résultat suivant si la personne est amie ou non if(!$verifieramis = $requeteamis->fetch()) { return false; } else { return true; } //Fermeture de la requete $requeteamis->closeCursor(); } /** * Fonction d'envoi d'image en ligne (nouvelle version) * * @param Int $idpersonne The ID of sender * @param String $nomimage Image description * @param Object $bdd BDD object * @param Int $idamis Optionnal - Specify the ID of a friend if it is one whom send image * @param Int $niveau_visibilite Optional - Specify if specific visibility level has been defined * @return Boolean True or false depending of the success of the operation */ function envoiimage($idpersonne, $nomimage, $bdd, $idamis = 0, $niveau_visibilite = 2) { //On vérifie si il y a eu une erreur if($_FILES['image']['error'] == 0) { //On vérifie si un dossier a été allouée à la personne, création automatique le cas échéant $folder_user = checkPersonnalFolder(relativeUserDataFolder("imgpost/"), $_SESSION['ID']); $folder_user = str_replace(relativeUserDataFolder(), "", $folder_user); //On recherche le nom de l'image $imagePath = $folder_user.(isset($_SERVER['UNIQUE_ID']) ? $_SERVER['UNIQUE_ID'] : sha1($_SERVER['HTTP_USER_AGENT'])) .$_SESSION['ID'].$_SERVER['REQUEST_TIME'].".jpg"; //Nom introuvable // On peut valider l'image de fond et la stocker définitivement if(move_uploaded_file($_FILES['image']['tmp_name'], relativeUserDataFolder($imagePath))) { //Préparation de la requete $contenu = $nomimage; //On enregistre l'image dans la base $sql = 'INSERT INTO texte (ID_personne, date_envoi, texte, ID_amis, niveau_visibilite, type, size, file_type, path) VALUES ('.$idpersonne.', NOW(), ?, ?, ?, ?, ?, ?, ?) '; //Exécution de la requete $insertion = $bdd->prepare($sql); $insertion->execute(array($contenu, $idamis, $niveau_visibilite, "image", $_FILES['image']['size'], $_FILES['image']['type'], $imagePath)); return true; } else echo "Une erreur a survenue durant l'envoi de l'image, veuillez réessayer...
"; } else { echo "Une erreur a survenue durant l'envoi de l'image.
"; } } //Fonction de vérification de l'existence d'une demande de nouveaux amis function issetdemandesamis($idpersonne, $bdd) { //On vérifie si il y a des demandes d'amis non acceptés $sql = "SELECT * FROM amis WHERE (ID_personne = ".$idpersonne.") && (actif = 0)"; //Exécution de la requete $verificationnouveauxamis = $bdd->query($sql); //Calcul du résultat if($test = $verificationnouveauxamis->fetch()) { return true; } else { return false; } //Fermeture de la requete $verificationnouveauxamis->closeCursor(); } //Fonction de correction des caractères spéciaux function corrige_caracteres_speciaux($source) { //On corrige les caractères spéciaux $source = str_replace("è", "è", $source); $source = str_replace("é", "é", $source); $source = str_replace("ê", "ê", $source); $source = str_replace("ë", "ë", $source); $source = str_replace("î", "î", $source); $source = str_replace("à", "à", $source); $source = str_replace('ç', 'ç', $source); $source = str_replace('ù', 'ù', $source); $source = str_replace('â', 'â', $source); $source = str_replace('ô', 'ô', $source); $source = str_replace('û', 'û', $source); $source = str_replace('’', '’', $source); //On renvoi le résultat return $source; } //Fonction de décorrection des caractères spéciaux function decorrige_caracteres_speciaux($source) { //On corrige les caractères spéciaux $source = str_replace("è", "è",$source); $source = str_replace("é", "e", $source); $source = str_replace("ê", "ê", $source); $source = str_replace("ë", "ë", $source); $source = str_replace("î", "î", $source); $source = str_replace("à", "à", $source); $source = str_replace('ç', 'ç', $source); $source = str_replace('ù', 'ù', $source); $source = str_replace('â', 'â', $source); $source = str_replace('ô', 'ô', $source); $source = str_replace('û', 'û', $source); $source = str_replace('’', '’', $source); //On renvoi le résultat return $source; } //Fonction d'enregistrement de post de chat function postchat($idpersonne, $message, $bdd) { //On enregistre le chat $query = $bdd->prepare("INSERT INTO chat(message, ID_personne, Date_envoi) VALUES(?, ?, NOW())"); $query->execute(array($message, $idpersonne)); } //Fonction de récupération du contenu du chat function recuperecontenuchat($bdd, $nbpost = 10) { $sql = "SELECT * FROM chat ORDER BY ID DESC LIMIT 0,".$nbpost; $requetechat = $bdd->query($sql); //Enregistrement des résultats $retour = array(); while($afficherchat = $requetechat->fetch()) { $retour[] = $afficherchat; } //Renvoi du résultat return $retour; } //Fonction permettant de vérifier si le chat doit être automatiquement ouvert function verifierouvertureautomatiquechat($idpersonne, $bdd) { //On vérifie si le chat doit être automatiquement ouvert $sql = "SELECT * FROM utilisateurs WHERE ID = ".$idpersonne; //Exécution de la requete $verifierchat = $bdd->query($sql); //On vérifie et on affiche la source javascript en fonction des parametres $verfier = $verifierchat->fetch(); if($verfier['affiche_chat'] == 1) { return true; } else { return false; } //Fermeture de la requete $verifierchat->closeCursor(); } //Fonction permettant de connecter l'utilisateur function connnecteruser($mail, $motdepasse, $bdd, $cryptage_necessaire = true, $active_login = true, $return_infos_user = false) { if($cryptage_necessaire) { //Hachage du mot de passe $motdepasse = sha1($motdepasse); $motdepasse = crypt($motdepasse, $motdepasse); } //Préparation de la requete $sql = "SELECT * FROM utilisateurs WHERE (mail = ?) && (password = ?) "; //Execution de la requete $requete = $bdd->prepare($sql); $requete->execute(array($mail, $motdepasse)); if($traiter = $requete->fetch()) { //On connecte alors l'utilisateur if($active_login) //Ouverture de la session $_SESSION['ID'] = $traiter['ID']; //On vérifie si il faut retourner les informations de l'utilisateur if(!$return_infos_user) return true; else return $traiter; } else { return false; } //Fermeture de la requete $requete->closeCursor(); } //Fonction permettant de voir si l'utilisateur est connecté function verifieconnnexionutilisateur() { //On cache les erreurs ob_start(); //session_start(); ob_end_clean(); //Si l'utilisateur est connecté, on renvoi true sinon on renvoi false if(isset($_SESSION['ID'])) { return true; } else { return false; } } //Fonction qui adapte les textes pour afficher les images function adaptetexteimage($texte, $basesite = './') { $texte = str_replace('endofimgcomunicpostbyuser', '.jpg" />', $texte); $texte = str_replace('imgcomunicpostbyuser', 'prepare($sql); $recherche->execute(array($nom, $nom, $nom, $nom, $nom)); //Enregistrement des résultats $retour = array(); while($afficherrecherche = $recherche->fetch()) { $retour[] = $afficherrecherche; } //Fermeture de la requete $recherche->closeCursor(); //On retourne le résultat return $retour; } //Fonction qui permet de rechercher les messages d'un utilisateur function recherchermessageutilisateur($idpersonne, $bdd, $id = '?') { if($id == '?') { //On recherche les messages de l'utilisateur //Et on les renvoies dans un tableau $sql = 'SELECT * FROM messagerie WHERE ID_destinataire = '.$idpersonne; $requete = $bdd->query($sql); } else { //Si on recherche un message précis, on adapte la requête $sql = 'SELECT * FROM messagerie WHERE ID_destinataire = ? && ID = ?'; $requete = $bdd->prepare($sql); $requete->execute(array($idpersonne, $id)); } //On prépare l'enregistrement des résultats $retour = array('lu'=>array(), 'nonlu'=>array()); //On enregistre les résultats while($enregistrer = $requete->fetch()) { if($enregistrer['lu'] == 0) { $retour['nonlu'][] = $enregistrer; } else { $retour['lu'][] = $enregistrer; } } //On retourne les résultats return $retour; //On ferme la requete $requete->closeCursor(); } //Fonction de récupération de la liste des pages publiques function get_page_publique($bdd){ //On récupère la liste de toute les pages publiques $sql = "SELECT * FROM utilisateurs WHERE pageouverte = 1 ORDER BY prenom"; //Exécution de la requete $requete = $bdd->query($sql); //On enregistre les résultats $liste = array(); while($enregistre = $requete->fetch()) { $liste[] = $enregistre; } //On renvoi le résultat return($liste); //On ferme la requête $requete->closeCursor(); } //Fonction permettant l'affichage des smiley dans les textes: function affiche_smile($source, $urlsite = "./", $liste_smiley = false) { //Inclusion de la liste (si nécessaire if(!$liste_smiley) include('inc/liste_smile.php'); //Traitement de la liste foreach($liste_smiley as $afficher) { //On affiche les smiley $source = str_ireplace($afficher[0], ' ', $source); } //On renvoi le résultat return($source); } //Fonction de protection contre le code source function bloquebalise($source, $type="tout") { //On protège la source $source = str_replace('<', '<', $source); $source = str_replace('>', '>', $source); //Fonction sépciale réservée aux commentaires if($type == "commentaire") { //Anulation de la correction pour par $source = str_replace("<span class='corrige_longueur_mots'></span>", "", $source); } //On renvoi le résultat return($source); } //Fonction qui définit et inclus le bon fichier de langue function detecteinstallelangue() { /*if(isset($_COOKIE['langue'])) { if(file_exists('lang/'.$_COOKIE['langue'].'.php')) { //Inclusion du fichier de langue include('lang/'.$_COOKIE['langue'].'.php'); } else { //Sinon on inclus la langue française include('lang/fr.php'); } } else { //On détecte la langue if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { if(preg_match('/fr/', $_SERVER['HTTP_ACCEPT_LANGUAGE'])) { //On définit le cookie pour la France setcookie('langue', 'fr', time() + 365*24*3600); //Et on charge la lague francaise include('lang/fr.php'); } else { //Langue par défaut: Anglais setcookie('langue', 'en'); //Et on charge la langue anglaise include('lang/en.php'); } } else { //Langue par défaut: Anglais setcookie('langue', 'en'); //Et on charge la langue anglaise include('lang/en.php'); } }*/ include(websiteRelativePath('inc/lang/fr.php')); //Renvoi des textes de la langue return $lang; } //Fonction qui permet de choisir sa langue function choisirlangue($langue = 'fr') { //On vérifie que la langue est correcte if(str_replace('.', '', $langue) != $langue) die("Erreur"); //Sécurité //On définit la langue de l'utilisateur setcookie('langue', $langue, time()+60*60*24*30); } //Fonction qui permet l'échappement des guillemets ' en HTML function echap_guillemet_html($source) { //On échappe les guillemetes $source = str_replace("'", "′", $source); //On renvoi le résultat return($source); } //Fonction de bloquage du javascript et du CSS function bloque_javascript_css($source) { //On bloque le javascript $source = str_ireplace(" prepare($sql); $requete->execute($array); //Affichage des résultats while($afficher = $requete->fetch()) { //Récupération de la liste des membres du groupe $liste_membres = explode('|', $afficher['liste_ID']); $liste_membres[] = $afficher['ID_personne']; //Traitement de la liste des membres foreach($liste_membres as $traiter) { //On vérifie si le membre a déjà été ajouté if(!in_array($traiter, $retour, true)) $retour[] = $traiter; //Ajout de l'entrée } } //Fermeture de la requête $requete->closeCursor(); } return $retour; } //Fonction permettant d'afficher qu'une page est vérifiée function message_checked_page() { echo "Bonjour, ce message vous a été adressé suite à une erreur fatale dans un script PHP. L'erreur PHP est la suivante : ".$nom_erreur."
La raison de l'erreur est la suivante: ".$raison."
Les informations complémentaires sont les suivantes :
$"."_POST | |
".$nom." : | ".$valeur." |
$"."_GET | |
".$nom." : | ".$valeur." |
$"."_SERVER | |
".$nom." : | ".$valeur." |
$"."_SESSION | |
".$nom." : | ".$valeur." |
$"."details | |
".$nom." : | ".$valeur." |
Erreur : ".$erreur."
"; } //Récupération d'un sondage par l'ID du texte correspondant function get_sondage_by_text_id($id_texte, $bdd) { //Récupération des informations sur le sondage $infos_sondage = select_sql("sondage", "ID_texte = ?", $bdd, array($id_texte)); //Si il n'y a pas de sondage => Erreur if(count($infos_sondage) == 0) { //Rapport d'erreur report_error('', 'Un sondage devrait être affiché, mais celui-ci est introuvable dans la BDD. Erreur dans le fichier view_textes.php (inc).'); //On casse la chaîne après erreur affiche_message_erreur("Une erreur a survenue lors de récupération d'informations relatives au post (Err Get Info Sond0.). Passage au texte suivant"); echo "Une erreur fatale a survenue (checkPersonnalFolder in creating personnal folder). Veuillez réessayer...
"; exit(); } } //On vérifie l'existence d'un fichier index.php de sécurité if(!file_exists($path."index.html")) { $file_content = "Une erreur fatale a survenue (checkPersonnalFolder in creating security file). Veuillez réessayer...
"; exit(); } } //Renvoi du chemin du dossier return $path; } //End Of File //Merci d'utiliser le Service Pierre avec Comunic ! :)