<?php
//Nom de l'utilisateur
if(!defined("NOM")) {define("NOM","NomUtilisateur");}
//Mot de passe de l'utilisateur
if(!defined("MDP")) {define("MDP","Mot de passe");}
//Adresse/nom du serveur
if(!defined("SERVEUR")) {define("SERVEUR","adresse du serveur");}
//Nom de la base
if(!defined("BASE")) {define("BASE","nom de la baser");}
?>Code : Tout sélectionner
<?php
// on crée la fonction connexion() qui réalise la connexion à la BDD
function connexion()
{
// on se connecte à MySQL
mysql_connect('bases.sql','monidentifiant','monmotdepass' );
// on sélectionne la base de données
mysql_select_db("mp");
}
// fonction redirection qui redirige vers la page donnée en paramètre, faite en JavaScript
function redirection($url){
echo "<script type=\"text/javascript\">\n"
. "<!--\n"
. "\n"
. "function redirect() {\n"
. "window.location='" . html_entity_decode($url) . "'\n"
. "}\n"
. "setTimeout('redirect()','2000');\n"
. "\n"
. "// -->\n"
. "</script>\n";
}
?>
A tout hasardC'est vrai se serait plus clair.
Voila script de connexion tel qu'il se présente :Une petite précison dans le message d'erreur que je cite plus haut il y a un lien "Se connecter" si je l'active j'arrive sur une page de mon Fia que le dit que la page demandée n'exista plus ou mal demandée. Or je suis certain de mon identifiant et de mon mot de passe.Code : Tout sélectionner
<?php // on crée la fonction connexion() qui réalise la connexion à la BDD function connexion() { // on se connecte à MySQL mysql_connect('bases.sql','monidentifiant','monmotdepass' ); // on sélectionne la base de données mysql_select_db("mp"); } // fonction redirection qui redirige vers la page donnée en paramètre, faite en JavaScript function redirection($url){ echo "<script type=\"text/javascript\">\n" . "<!--\n" . "\n" . "function redirect() {\n" . "window.location='" . html_entity_decode($url) . "'\n" . "}\n" . "setTimeout('redirect()','2000');\n" . "\n" . "// -->\n" . "</script>\n"; } ?>
Version du serveur
* Apache/2.2.3 (Debian) PHP/5.2.0-8+etch13
* Version du client MySQL: 5.0.32
* Extension PHP: mysqli
<?php
// on commence par ouvrir la session
session_start();
// on inclut le fichier includes/fonction.php
require ('includes/fonction.php');
// on utilise la fonction connexion définit dans includes/fonction.php
connexion();
// Si la session est démarrée et si les variables $_GET['mp'] et $_GET['action'] n'existent pas, alors on affiche la page
if($_SESSION['logged'] == true AND !isset($_GET['mp']) AND !isset($_GET['action']))
{
// on compte le nombre de messages non lus et dont le destinataire est le membre actuellement connecté
$nbr_non_vus = mysql_query("SELECT COUNT(*) AS nbre FROM mp WHERE destinataire='".$_SESSION['pseudo']."' AND vu='0' AND (efface='0' OR efface='2')")or die(mysql_error());
// on en fait un array
$nbre_non_vus = mysql_fetch_assoc($nbr_non_vus);
// on récupère les données sur les messages adressés au membre connecté.
$retour = mysql_query("SELECT id, sujet, expediteur, timestamp, vu FROM mp WHERE destinataire='".$_SESSION['pseudo']."' AND (efface='0' OR efface='2') ORDER BY id DESC");
?>
<table class="table">
<caption class="caption">Boîte de réception</caption>
<thead>
<th class="th"><em>Lu</em>/<strong>Non lu (<?php echo $nbre_non_vus['nbre'];?>)</strong></th>
<th class="th">Sujet</th>
<th class="th">Auteur</th>
<th class="th">Date</th>
</thead>
<tfoot>
<th class="th"><em>Lu</em>/<strong>Non lu(<?php echo $nbre_non_vus['nbre'];?>)</strong></th>
<th class="th">Sujet</th>
<th class="th">Auteur</th>
<th class="th">Date</th>
</tfoot>
<tbody>
<?php
// on crée une boucle
while($donnees = mysql_fetch_assoc($retour))
{
// on enlève les slashs inutiles qui se seraient ajoutés
$sujet = stripslashes($donnees['sujet']);
$expediteur = stripslashes($donnees['expediteur']);
$date = $donnees['timestamp'];
// si le message n'est pas lu, on le montre et on marque son sujet en gras
if($donnees['vu'] == 0)
{
// on crée une ligne sur le tableau
echo'<tr><td class="td"><strong>Non lu</strong></td><td class="td"><strong><a href="mp.php?mp='.$donnees['id'].'&action=lire">'.$sujet.'</a></strong></td><td class="td">'.$expediteur.'</td><td class="td">Le' .date('d/m/Y \à H\hi', $date).'</td><td class="td"><a href="mp.php?action=supprimer&suppr=1&id='.$donnees['id'].'">Supprimer ce message</a></td></tr>';
}
// sinon, on marque que le sujet a été lu, et on met en italique
else
{
// on crée une nouvelle ligne sur le tableau
echo '<tr><td class="td"><em>Lu</em></td><td class="td"><em><a href="mp.php?mp='.$donnees['id'].'&action=lire">'.$sujet.'</a></em></td><td class="td">'.$expediteur.'</td><td class="td">Le' .date('d/m/Y \ê H\hi', $date).'</td><td class="td"><a href="mp.php?action=supprimer&suppr=1&id='.$donnees['id'].'">Supprimer ce message</a></td></tr>';
}
}
?>
</tbody>
</table>
<p><a href="mp.php?action=LireMpRecu">Voir les messages envoyés</a>
<a href="mp.php?action=ecrire">Ecrire un nouveau message</a></p>
<?php
// on ferme la condition
}
// sinon si la variable $_GET['mp'] existe, si l'utilisateur est connecté,
// si la variable $_GET['action'] existe et contient 'lire' alors...
elseif(isset($_GET['mp']) AND isset($_GET['action']) AND $_GET['action'] == 'lire' AND $_SESSION['logged'] == true)
{
$id_mp = $_GET['mp'];
// on récupère les données où l'id est égale à l'id envoyée par l'URL
$retour = mysql_query("SELECT destinataire, sujet, expediteur, timestamp, message FROM mp WHERE id='".$id_mp."'")or die(mysql_error());
$donnees = mysql_fetch_assoc($retour);
// vérification pour qu'une autre personne que le destinataire ne puisse voir le message
if($donnees['destinataire'] == $_SESSION['pseudo'])
{
?>
<table class="table">
<thead>
</thead>
<tfoot>
</tfoot>
<tbody>
<?php
// on enlève les slashs inutiles
$sujet = stripslashes($donnees['sujet']);
$expediteur = stripslashes($donnees['expediteur']);
// on met la date au format Jour/mois/année à heure h minutes
$date = date('d/m/Y \à H\hi', $donnees['timestamp']);
$mp = stripslashes($donnees['message']);
// on affiche le MP
echo '<tr><td class="td"><h1>'.$sujet.'</h1></td></tr><tr><td class="td">Le '.$date.'</td></tr><tr><td class="td">De : '.$expediteur.'</td></tr><tr><td class="td">Message :<br /><br/>'.$mp.'</td></tr><tr><td class="td"><a href="mp.php?action=ecrire&reponse='.$id_mp.'">Répondre</a> <a href="mp.php?action=ecrire">Nouveau</a> <a href="mp.php">Revenir au menu de la messagerie</a></td></tr>';
// on met que le message a été lu.
mysql_query("UPDATE mp SET vu='1' WHERE id='".$id_mp."'")or die(mysql_error());
?>
</tbody>
</table>
<?php
}
else
{
// on affiche un message d'erreur si on essaye de lire un message qui n'est pas adressé à soi-même.
echo 'Ceci est un message privé qui ne s\'adresse pas à vous mais à '.$donnees['destinataire'].'';
// on ferme la condition "secondaire"
}
// on ferme la condition "primaire"
}
// Sinon si l'URL indique qu'on veut envoyer un nouveau message ('ecrire'), on affiche un formulaire d'envoi.
elseif(isset($_GET['action']) AND $_GET['action'] == 'ecrire' AND $_SESSION['logged'] == true)
{
// si la variable $_GET['reponse'] n'existe pas, alors c'est un nouveau message
if(!isset($_GET['reponse']))
{
?>
<form action="mp.php?action=traitement" method="post">
<label>Sujet :<input type="text" name="sujet" /></label>
<label>Destinataire :<input type="text" name="destinataire" /></label>
<label>Message :<textarea name="message" rows="10" cols="40"></textarea></label>
<input type="submit" value="Envoyer le message" />
</form>
<?php
}
// sinon, c'est une réponse
else
{
// on récupère les données du mp dont l'id est égale à celle du message auquel on veut répondre
$retour_reponse = mysql_query("SELECT sujet, expediteur FROM mp WHERE id='".$_GET['reponse']."'");
$donnees_reponse = mysql_fetch_assoc($retour_reponse);
?>
<form action="mp.php?action=traitement" method="post">
<!-- on met RE : devant le sujet auquel on répond -->
<label>Sujet :<input type="text" name="sujet" value="RE : <?php echo $donnees_reponse['sujet'];?>"/></label>
<label>Destinataire :<input type="text" name="destinataire" value="<?php echo $donnees_reponse['expediteur']; ?>"/></label>
<label>Message :<textarea name="message" rows="10" cols="40"></textarea></label>
<input type="submit" value="Envoyer le message" />
</form>
<?php
}
}
// sinon si la variable $_GET['action'] est égale à 'traitement', alors on traite les données envoyées par le fomulaire
elseif(isset($_GET['action']) AND $_GET['action'] == 'traitement' AND $_SESSION['logged'] == true)
{
// si les champs "message", "sujet" et "destinataire" ne sont pas vides
if(!empty($_POST['sujet']) AND !empty($_POST['destinataire']) AND !empty($_POST['message']))
{
// on regarde s'il existe une entrée avec le pseudo du destinataire
$nbr_entree = mysql_query("SELECT COUNT(*) AS nbre_entrees FROM membres WHERE pseudo='".$_POST['destinataire']."'")or die(mysql_error());
$nbr_entrees = mysql_fetch_assoc($nbr_entree);
// s'il existe
if($nbr_entrees['nbre_entrees'] == 1)
{
// on sécurise les valeurs envoyées
$sujet = addslashes(htmlentities($_POST['sujet']));
$destinataire = addslashes(htmlentities($_POST['destinataire']));
$message = addslashes(nl2br(htmlentities($_POST['message'])));
$expediteur = $_SESSION['pseudo'];
$timestamp = time();
// on récupère le dernier message envoyé au destinataire
$retour = mysql_query("SELECT destinataire, sujet, message FROM mp WHERE expediteur='$expediteur' ORDER BY id DESC LIMIT 0,1");
$donnees = mysql_fetch_assoc($retour);
// si c'est le même que celui qu'on veut envoyer
if($donnees['destinataire'] == $destinataire AND $donnees['sujet'] == $sujet AND $donnees['message'] == $message)
{
// on ne l'enregistre pas, et on affiche un message d'erreur
echo 'Vous ne pouvez pas poster le même message 2 fois d\'affilée';
}
// sinon ce n'est pas un double post
else
{
// alors on enregistre dans la base de données
mysql_query("INSERT INTO mp(sujet, expediteur, destinataire, message, timestamp, vu, efface) VALUES('" . $sujet . "', '" . $expediteur . "', '" . $destinataire . "', '" . $message . "', '" . $timestamp . "', '0', '0')")or die(mysql_error());
// on met un message
echo 'Votre message a bien été envoyé à '.$destinataire.'. Vous allez être redirigé vers votre boîte de réception dans une seconde.';
// et on redirige vers la boîte de réception
redirection('mp.php');
}
}
// sinon le membre n'est pas enregistré dans la table
else
{
// alors on affiche un message d'erreur
echo 'Le membre à qui vous souhaitez envoyer ce message n\'existe pas/plus. Vous allez être redirigé vers votre boîte de réception dans 2 secondes';
// et on redirige vers la boîte de réception
redirection('mp.php');
}
}
// sinon tous les champs ne sont pas remplis
else
{
// alors on affiche un message d'erreur et un lien
echo 'Vous devez remplir tous les champs. <a href="mp.php?action=ecrire">Recommencer</a>.';
}
}
// sinon si la variable $_GET['action'] est égale à 'LireMpRecu', on affiche la boîte d'envoi
elseif($_GET['action'] == 'LireMpRecu' AND $_SESSION['logged'] == true AND !isset($_GET['mp']))
{
// on récupère les messages qu'on a envoyés et que l'on n'a pas supprimés
$retour = mysql_query("SELECT id, destinataire, sujet, timestamp FROM mp WHERE expediteur='".$_SESSION['pseudo']."' AND (efface='0' OR efface='1') ORDER BY id DESC")or die(mysql_error());
?>
<table class="table">
<caption class="caption">Messages envoyés</caption>
<thead>
<th class="th">Sujet</th>
<th class="th">Destinataire</th>
<th class="th">Date</th>
</thead>
<tfoot>
<th class="th">Sujet</th>
<th class="th">Destinataire</th>
<th class="th">Date</th>
</tfoot>
<tbody>
<?php
// on crée une boucle avec les entrées de la table
while($donnees = mysql_fetch_assoc($retour))
{
// on enlève les éventuels slashs superflus
$sujet = stripslashes($donnees['sujet']);
$destinataire = stripslashes($donnees['destinataire']);
$date = $donnees['timestamp'];
// on ajoute une ligne au tableau pour chaque message
echo'<tr><td class="td"><a href="mp.php?mp='.$donnees['id'].'&action=lire">'.$sujet.'</a></td><td class="td">'.$destinataire.'</td><td class="td">Le' .date('d/m/Y \à H\hi', $date).'</td><td class="td"><a href="mp.php?action=supprimer&suppr=2&id='.$donnees['id'].'">Supprimer ce message</a></td></tr>';
// on ferme la boucle
}
?>
</tbody>
</table>
<p><a href="mp.php">Boîte de réception</a>
<a href="mp.php?action=ecrire">Écrire un nouveau message</a></p>
<?php
// on ferme la condition
}
// si la variable $_GET['id'] qui contient l'id du message existe,
// si la variable $_GET['suppr'] qui indique qui a supprimé le message (destinataire ou expéditeur) existe
// et si la variable $_GET['action'] est égale à 'supprimer' qui indique la suppression d'un message, alors on le supprime.
elseif(isset($_GET['action']) AND isset($_GET['suppr']) AND isset($_GET['id']) AND $_GET['action'] == 'supprimer')
{
$id = $_GET['id'];
// si c'est l'expéditeur qui supprime le message
if($_GET['suppr'] == 2)
{
// alors on récupère les données où l'id du message à supprimer est égale à l'id d'un message
$retour = mysql_query("SELECT expediteur, efface FROM mp WHERE id='".$id."'")or die(mysql_error());
// on les met dans un array
$donnees = mysql_fetch_assoc($retour);
// si l'expéditeur est bien le membre qui veut supprimer le message
if($_SESSION['pseudo'] == $donnees['expediteur'])
{
// et si le message a déjà été supprimé par le destinataire
if($donnees['efface'] == 1)
{
// on supprime l'entrée correspondante de la table
mysql_query("DELETE FROM mp WHERE id='".$id."'")or die(mysql_error());
// on affiche un message
echo 'Le message a été supprimé avec succès. Vous allez être redirigé vers votre boîte de réception dans 2 secondes.';
// et on redirige
redirection('mp.php');
}
// sinon si le message n'a pas été supprimé par le destinataire
elseif($donnees['efface'] == 0)
{
// alors on modifie le champ efface par 2 pour que le destinataire puisse encore voir le message
mysql_query("UPDATE mp SET efface='2' WHERE id='".$id."'")or die(mysql_error());
// on affiche un message
echo 'Le message a été supprimé avec succès. Vous allez être redirigé vers votre boîte de réception dans 2 secondes.';
// et on redirige
redirection('mp.php');
}
// sinon
else
{
// on affiche un message d'erreur
echo 'Une erreur est survenue lors de votre demande. Veuillez recommencer ultèrieurement.';
}
}
// sinon, le membre qui veut supprimer le message n'est pas l'expéditeur
else
{
// donc on affiche un message d'erreur
echo 'Vous ne pouvez pas supprimer un message que vous n \'avez pas envoyé vous-même.';
}
}
// sinon si c'est le destinataire qui veut supprimer un message
elseif($_GET['suppr'] == 1)
{
// on récupère les données sur le message que l'on veut supprimer
$retour = mysql_query("SELECT destinataire, efface FROM mp WHERE id='".$id."'")or die(mysql_error());
// on les met dans un array
$donnees = mysql_fetch_assoc($retour);
// si le destinataire du message est bien le membre qui veut supprimer le message
if($_SESSION['pseudo'] == $donnees['destinataire'])
{
// et si le message a été supprimé par l'expéditeur
if($donnees['efface'] == 2)
{
// alors on supprime l'entrée correspondante de la table
mysql_query("DELETE FROM mp WHERE id='".$id."'")or die(mysql_error());
// on affiche un message
echo 'Le message a été supprimé avec succès. Vous allez être redirigé vers votre boîte de réception dans 2 secondes.';
// et on redirige
redirection('mp.php');
}
// sinon si le message n'a pas été supprimé par l'expéditeur
elseif($donnees['efface'] == 0)
{
// alors on modifie la valeur de efface par 1 pour que l'expéditeur puisse encore voir le message
mysql_query("UPDATE mp SET efface='1' WHERE id='".$id."'")or die(mysql_error());
// on affiche un message
echo 'Le message a été supprimé avec succès. Vous allez être redirigé vers votre boîte de réception dans 2 secondes.';
//et on redirige
redirection('mp.php');
}
// sinon
else
{
// on affiche un message d'erreur
echo 'Une erreur est survenue lors de votre demande. Veuillez recommencer ultérieurement.';
}
}
// sinon le membre qui veut supprimer le message n'est pas le destinataire de celui-ci
else
{
// donc on affiche un message d'erreur
echo 'Vous ne pouvez pas supprimer un message qui ne vous a pas été envoyé.';
}
}
// sinon l'action demandée n'existe pas($_GET['action'])
else
{
// alors on affiche un message d'erreur
echo 'Une erreur est survenue lors de votre demande. Veuillez recommencer ultérieurement.';
}
}
// sinon on met un message d'erreur qui envoie un lien pour se connecter.
else
{
echo 'Vous n\'êtes pas connecté ou une erreur est survenue lors de votre demande ; veuillez recommencer ultérieurement.<a href="connexion.php">Se connecter</a>';
}
mysql_close();
?>
Ci-dessus le script qui doit me permettre de complèter ma base de données et gère les erreurs.bonjour,Bonsoir,
Désolé je n'arrive pas à insérer une copie d'écran. En fait le message d'erreur dit tout simplement : "Vous n'êtes pas connecté ou une erreur est survenue lors de votre demande.Se connecter Si je clique ce texte je suis renvoyé sur le site de sfr qui me signale que la que la page demandé n'existe pas ou est mal orthographiée". Ce message m'est renvoyé par mon script PHP.Ci-dessus le script qui doit me permettre de complèter ma base de données et gère les erreurs.<?php // on commence par ouvrir la session session_start(); // on inclut le fichier includes/fonction.php require ('includes/fonction.php'); // on utilise la fonction connexion définit dans includes/fonction.php connexion(); // Si la session est démarrée et si les variables $_GET['mp'] et $_GET['action'] n'existent pas, alors on affiche la page if($_SESSION['logged'] == true AND !isset($_GET['mp']) AND !isset($_GET['action'])) { // on compte le nombre de messages non lus et dont le destinataire est le membre actuellement connecté $nbr_non_vus = mysql_query("SELECT COUNT(*) AS nbre FROM mp WHERE destinataire='".$_SESSION['pseudo']."' AND vu='0' AND (efface='0' OR efface='2')")or die(mysql_error()); // on en fait un array $nbre_non_vus = mysql_fetch_assoc($nbr_non_vus); // on récupère les données sur les messages adressés au membre connecté. $retour = mysql_query("SELECT id, sujet, expediteur, timestamp, vu FROM mp WHERE destinataire='".$_SESSION['pseudo']."' AND (efface='0' OR efface='2') ORDER BY id DESC"); ?> <table class="table"> <caption class="caption">Boîte de réception</caption> <thead> <th class="th"><em>Lu</em>/<strong>Non lu (<?php echo $nbre_non_vus['nbre'];?>)</strong></th> <th class="th">Sujet</th> <th class="th">Auteur</th> <th class="th">Date</th> </thead> <tfoot> <th class="th"><em>Lu</em>/<strong>Non lu(<?php echo $nbre_non_vus['nbre'];?>)</strong></th> <th class="th">Sujet</th> <th class="th">Auteur</th> <th class="th">Date</th> </tfoot> <tbody> <?php // on crée une boucle while($donnees = mysql_fetch_assoc($retour)) { // on enlève les slashs inutiles qui se seraient ajoutés $sujet = stripslashes($donnees['sujet']); $expediteur = stripslashes($donnees['expediteur']); $date = $donnees['timestamp']; // si le message n'est pas lu, on le montre et on marque son sujet en gras if($donnees['vu'] == 0) { // on crée une ligne sur le tableau echo'<tr><td class="td"><strong>Non lu</strong></td><td class="td"><strong><a href="mp.php?mp='.$donnees['id'].'&action=lire">'.$sujet.'</a></strong></td><td class="td">'.$expediteur.'</td><td class="td">Le' .date('d/m/Y \à H\hi', $date).'</td><td class="td"><a href="mp.php?action=supprimer&suppr=1&id='.$donnees['id'].'">Supprimer ce message</a></td></tr>'; } // sinon, on marque que le sujet a été lu, et on met en italique else { // on crée une nouvelle ligne sur le tableau echo '<tr><td class="td"><em>Lu</em></td><td class="td"><em><a href="mp.php?mp='.$donnees['id'].'&action=lire">'.$sujet.'</a></em></td><td class="td">'.$expediteur.'</td><td class="td">Le' .date('d/m/Y \ê H\hi', $date).'</td><td class="td"><a href="mp.php?action=supprimer&suppr=1&id='.$donnees['id'].'">Supprimer ce message</a></td></tr>'; } } ?> </tbody> </table> <p><a href="mp.php?action=LireMpRecu">Voir les messages envoyés</a> <a href="mp.php?action=ecrire">Ecrire un nouveau message</a></p> <?php // on ferme la condition } // sinon si la variable $_GET['mp'] existe, si l'utilisateur est connecté, // si la variable $_GET['action'] existe et contient 'lire' alors... elseif(isset($_GET['mp']) AND isset($_GET['action']) AND $_GET['action'] == 'lire' AND $_SESSION['logged'] == true) { $id_mp = $_GET['mp']; // on récupère les données où l'id est égale à l'id envoyée par l'URL $retour = mysql_query("SELECT destinataire, sujet, expediteur, timestamp, message FROM mp WHERE id='".$id_mp."'")or die(mysql_error()); $donnees = mysql_fetch_assoc($retour); // vérification pour qu'une autre personne que le destinataire ne puisse voir le message if($donnees['destinataire'] == $_SESSION['pseudo']) { ?> <table class="table"> <thead> </thead> <tfoot> </tfoot> <tbody> <?php // on enlève les slashs inutiles $sujet = stripslashes($donnees['sujet']); $expediteur = stripslashes($donnees['expediteur']); // on met la date au format Jour/mois/année à heure h minutes $date = date('d/m/Y \à H\hi', $donnees['timestamp']); $mp = stripslashes($donnees['message']); // on affiche le MP echo '<tr><td class="td"><h1>'.$sujet.'</h1></td></tr><tr><td class="td">Le '.$date.'</td></tr><tr><td class="td">De : '.$expediteur.'</td></tr><tr><td class="td">Message :<br /><br/>'.$mp.'</td></tr><tr><td class="td"><a href="mp.php?action=ecrire&reponse='.$id_mp.'">Répondre</a> <a href="mp.php?action=ecrire">Nouveau</a> <a href="mp.php">Revenir au menu de la messagerie</a></td></tr>'; // on met que le message a été lu. mysql_query("UPDATE mp SET vu='1' WHERE id='".$id_mp."'")or die(mysql_error()); ?> </tbody> </table> <?php } else { // on affiche un message d'erreur si on essaye de lire un message qui n'est pas adressé à soi-même. echo 'Ceci est un message privé qui ne s\'adresse pas à vous mais à '.$donnees['destinataire'].''; // on ferme la condition "secondaire" } // on ferme la condition "primaire" } // Sinon si l'URL indique qu'on veut envoyer un nouveau message ('ecrire'), on affiche un formulaire d'envoi. elseif(isset($_GET['action']) AND $_GET['action'] == 'ecrire' AND $_SESSION['logged'] == true) { // si la variable $_GET['reponse'] n'existe pas, alors c'est un nouveau message if(!isset($_GET['reponse'])) { ?> <form action="mp.php?action=traitement" method="post"> <label>Sujet :<input type="text" name="sujet" /></label> <label>Destinataire :<input type="text" name="destinataire" /></label> <label>Message :<textarea name="message" rows="10" cols="40"></textarea></label> <input type="submit" value="Envoyer le message" /> </form> <?php } // sinon, c'est une réponse else { // on récupère les données du mp dont l'id est égale à celle du message auquel on veut répondre $retour_reponse = mysql_query("SELECT sujet, expediteur FROM mp WHERE id='".$_GET['reponse']."'"); $donnees_reponse = mysql_fetch_assoc($retour_reponse); ?> <form action="mp.php?action=traitement" method="post"> <!-- on met RE : devant le sujet auquel on répond --> <label>Sujet :<input type="text" name="sujet" value="RE : <?php echo $donnees_reponse['sujet'];?>"/></label> <label>Destinataire :<input type="text" name="destinataire" value="<?php echo $donnees_reponse['expediteur']; ?>"/></label> <label>Message :<textarea name="message" rows="10" cols="40"></textarea></label> <input type="submit" value="Envoyer le message" /> </form> <?php } } // sinon si la variable $_GET['action'] est égale à 'traitement', alors on traite les données envoyées par le fomulaire elseif(isset($_GET['action']) AND $_GET['action'] == 'traitement' AND $_SESSION['logged'] == true) { // si les champs "message", "sujet" et "destinataire" ne sont pas vides if(!empty($_POST['sujet']) AND !empty($_POST['destinataire']) AND !empty($_POST['message'])) { // on regarde s'il existe une entrée avec le pseudo du destinataire $nbr_entree = mysql_query("SELECT COUNT(*) AS nbre_entrees FROM membres WHERE pseudo='".$_POST['destinataire']."'")or die(mysql_error()); $nbr_entrees = mysql_fetch_assoc($nbr_entree); // s'il existe if($nbr_entrees['nbre_entrees'] == 1) { // on sécurise les valeurs envoyées $sujet = addslashes(htmlentities($_POST['sujet'])); $destinataire = addslashes(htmlentities($_POST['destinataire'])); $message = addslashes(nl2br(htmlentities($_POST['message']))); $expediteur = $_SESSION['pseudo']; $timestamp = time(); // on récupère le dernier message envoyé au destinataire $retour = mysql_query("SELECT destinataire, sujet, message FROM mp WHERE expediteur='$expediteur' ORDER BY id DESC LIMIT 0,1"); $donnees = mysql_fetch_assoc($retour); // si c'est le même que celui qu'on veut envoyer if($donnees['destinataire'] == $destinataire AND $donnees['sujet'] == $sujet AND $donnees['message'] == $message) { // on ne l'enregistre pas, et on affiche un message d'erreur echo 'Vous ne pouvez pas poster le même message 2 fois d\'affilée'; } // sinon ce n'est pas un double post else { // alors on enregistre dans la base de données mysql_query("INSERT INTO mp(sujet, expediteur, destinataire, message, timestamp, vu, efface) VALUES('" . $sujet . "', '" . $expediteur . "', '" . $destinataire . "', '" . $message . "', '" . $timestamp . "', '0', '0')")or die(mysql_error()); // on met un message echo 'Votre message a bien été envoyé à '.$destinataire.'. Vous allez être redirigé vers votre boîte de réception dans une seconde.'; // et on redirige vers la boîte de réception redirection('mp.php'); } } // sinon le membre n'est pas enregistré dans la table else { // alors on affiche un message d'erreur echo 'Le membre à qui vous souhaitez envoyer ce message n\'existe pas/plus. Vous allez être redirigé vers votre boîte de réception dans 2 secondes'; // et on redirige vers la boîte de réception redirection('mp.php'); } } // sinon tous les champs ne sont pas remplis else { // alors on affiche un message d'erreur et un lien echo 'Vous devez remplir tous les champs. <a href="mp.php?action=ecrire">Recommencer</a>.'; } } // sinon si la variable $_GET['action'] est égale à 'LireMpRecu', on affiche la boîte d'envoi elseif($_GET['action'] == 'LireMpRecu' AND $_SESSION['logged'] == true AND !isset($_GET['mp'])) { // on récupère les messages qu'on a envoyés et que l'on n'a pas supprimés $retour = mysql_query("SELECT id, destinataire, sujet, timestamp FROM mp WHERE expediteur='".$_SESSION['pseudo']."' AND (efface='0' OR efface='1') ORDER BY id DESC")or die(mysql_error()); ?> <table class="table"> <caption class="caption">Messages envoyés</caption> <thead> <th class="th">Sujet</th> <th class="th">Destinataire</th> <th class="th">Date</th> </thead> <tfoot> <th class="th">Sujet</th> <th class="th">Destinataire</th> <th class="th">Date</th> </tfoot> <tbody> <?php // on crée une boucle avec les entrées de la table while($donnees = mysql_fetch_assoc($retour)) { // on enlève les éventuels slashs superflus $sujet = stripslashes($donnees['sujet']); $destinataire = stripslashes($donnees['destinataire']); $date = $donnees['timestamp']; // on ajoute une ligne au tableau pour chaque message echo'<tr><td class="td"><a href="mp.php?mp='.$donnees['id'].'&action=lire">'.$sujet.'</a></td><td class="td">'.$destinataire.'</td><td class="td">Le' .date('d/m/Y \à H\hi', $date).'</td><td class="td"><a href="mp.php?action=supprimer&suppr=2&id='.$donnees['id'].'">Supprimer ce message</a></td></tr>'; // on ferme la boucle } ?> </tbody> </table> <p><a href="mp.php">Boîte de réception</a> <a href="mp.php?action=ecrire">Écrire un nouveau message</a></p> <?php // on ferme la condition } // si la variable $_GET['id'] qui contient l'id du message existe, // si la variable $_GET['suppr'] qui indique qui a supprimé le message (destinataire ou expéditeur) existe // et si la variable $_GET['action'] est égale à 'supprimer' qui indique la suppression d'un message, alors on le supprime. elseif(isset($_GET['action']) AND isset($_GET['suppr']) AND isset($_GET['id']) AND $_GET['action'] == 'supprimer') { $id = $_GET['id']; // si c'est l'expéditeur qui supprime le message if($_GET['suppr'] == 2) { // alors on récupère les données où l'id du message à supprimer est égale à l'id d'un message $retour = mysql_query("SELECT expediteur, efface FROM mp WHERE id='".$id."'")or die(mysql_error()); // on les met dans un array $donnees = mysql_fetch_assoc($retour); // si l'expéditeur est bien le membre qui veut supprimer le message if($_SESSION['pseudo'] == $donnees['expediteur']) { // et si le message a déjà été supprimé par le destinataire if($donnees['efface'] == 1) { // on supprime l'entrée correspondante de la table mysql_query("DELETE FROM mp WHERE id='".$id."'")or die(mysql_error()); // on affiche un message echo 'Le message a été supprimé avec succès. Vous allez être redirigé vers votre boîte de réception dans 2 secondes.'; // et on redirige redirection('mp.php'); } // sinon si le message n'a pas été supprimé par le destinataire elseif($donnees['efface'] == 0) { // alors on modifie le champ efface par 2 pour que le destinataire puisse encore voir le message mysql_query("UPDATE mp SET efface='2' WHERE id='".$id."'")or die(mysql_error()); // on affiche un message echo 'Le message a été supprimé avec succès. Vous allez être redirigé vers votre boîte de réception dans 2 secondes.'; // et on redirige redirection('mp.php'); } // sinon else { // on affiche un message d'erreur echo 'Une erreur est survenue lors de votre demande. Veuillez recommencer ultèrieurement.'; } } // sinon, le membre qui veut supprimer le message n'est pas l'expéditeur else { // donc on affiche un message d'erreur echo 'Vous ne pouvez pas supprimer un message que vous n \'avez pas envoyé vous-même.'; } } // sinon si c'est le destinataire qui veut supprimer un message elseif($_GET['suppr'] == 1) { // on récupère les données sur le message que l'on veut supprimer $retour = mysql_query("SELECT destinataire, efface FROM mp WHERE id='".$id."'")or die(mysql_error()); // on les met dans un array $donnees = mysql_fetch_assoc($retour); // si le destinataire du message est bien le membre qui veut supprimer le message if($_SESSION['pseudo'] == $donnees['destinataire']) { // et si le message a été supprimé par l'expéditeur if($donnees['efface'] == 2) { // alors on supprime l'entrée correspondante de la table mysql_query("DELETE FROM mp WHERE id='".$id."'")or die(mysql_error()); // on affiche un message echo 'Le message a été supprimé avec succès. Vous allez être redirigé vers votre boîte de réception dans 2 secondes.'; // et on redirige redirection('mp.php'); } // sinon si le message n'a pas été supprimé par l'expéditeur elseif($donnees['efface'] == 0) { // alors on modifie la valeur de efface par 1 pour que l'expéditeur puisse encore voir le message mysql_query("UPDATE mp SET efface='1' WHERE id='".$id."'")or die(mysql_error()); // on affiche un message echo 'Le message a été supprimé avec succès. Vous allez être redirigé vers votre boîte de réception dans 2 secondes.'; //et on redirige redirection('mp.php'); } // sinon else { // on affiche un message d'erreur echo 'Une erreur est survenue lors de votre demande. Veuillez recommencer ultérieurement.'; } } // sinon le membre qui veut supprimer le message n'est pas le destinataire de celui-ci else { // donc on affiche un message d'erreur echo 'Vous ne pouvez pas supprimer un message qui ne vous a pas été envoyé.'; } } // sinon l'action demandée n'existe pas($_GET['action']) else { // alors on affiche un message d'erreur echo 'Une erreur est survenue lors de votre demande. Veuillez recommencer ultérieurement.'; } } // sinon on met un message d'erreur qui envoie un lien pour se connecter. else { echo 'Vous n\'êtes pas connecté ou une erreur est survenue lors de votre demande ; veuillez recommencer ultérieurement.<a href="connexion.php">Se connecter</a>'; } mysql_close(); ?>
Merci
D'avance merci et bonne journéeWarning: mysql_connect() [function.mysql-connect]: Access denied for user 'nom-prenom-membr'@'pperso-apache01-pr.mid.pr.pperso.vnx.pfs.ld' (using password: YES) in /var/www/a/an/and/andre.sonn.perso.sfr.fr/public_html/CLUB57/2CV/spip/includes/fonction.php on line 6
Warning: mysql_select_db() [function.mysql-select-db]: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in /var/www/a/an/and/andre.sonn.perso.sfr.fr/public_html/CLUB57/2CV/spip/includes/fonction.php on line 8
Warning: mysql_select_db() [function.mysql-select-db]: A link to the server could not be established in /var/www/a/an/and/andre.sonn.perso.sfr.fr/public_html/CLUB57/2CV/spip/includes/fonction.php on line 8
Vous n'êtes pas connecté ou une erreur est survenue lors de votre demande ; veuillez recommencer ultérieurement.Se connecter
Warning: mysql_close(): no MySQL-Link resource supplied in /var/www/a/an/and/andre.sonn.perso.sfr.fr/public_html/CLUB57/2CV/spip/includes/mp.php on line 350
Code : Tout sélectionner
<?php
// on crée la fonction connexion() qui réalise la connexion à la BDD
function connexion()
{
// on se connecte à MySQL
mysql_connect('bases.sql' ,'deuxcvclub' ,'motdepass');
// on sélectionne la base de données
mysql_select_db("deuxcvclub-mp");
}Code : Tout sélectionner
SQL : informations et paramètres
Le SQL est un système de bases de données très utilisé pour les sites dynamiques. Vous pouvez utiliser jusqu’à 3 bases de données MySQL sur vos pages perso.
[b]Adresse : bases.sql
[/b]


Code : Tout sélectionner
Autre chose : dans votre script de connexion, il faudrait que lorsque vous initialisiez les variables de sessions, vous ajoutiez les variables suivantes qui sont utilisées dans le code : $_SESSION['pseudo'] contient le pseudo du membre, $_SESSION['logged'] prend la valeur true quand l'utilisateur est connecté et la valeur false quand l'utilisateur est déconnecté.
<?PHP
mysql_connect('bases.sql' ,'deuxcvclub' ,'motdepass');
echo 'mysql_connect : ', mysql_error(),'<br>';
mysql_select_db("deuxcvclub-mp");
echo 'mysql_select_db : ', mysql_error(),'<br>';
?>
A priori le user et le mot de passe sont bon si tu arrives à utiliser phpmyadmin (valable à 99%) session_start();
$_SESSION['pseudo'] = la personne identifiée
$_SESSION['logged'] = true;