Messagerie interne, problème champ nom d'utilisateur.
cs_Wolf38
Messages postés1Date d'inscriptiondimanche 25 septembre 2011StatutMembreDernière intervention25 septembre 2011
-
25 sept. 2011 à 13:10
cod57
Messages postés1654Date d'inscriptiondimanche 7 septembre 2008StatutMembreDernière intervention11 septembre 2013
-
26 sept. 2011 à 10:56
[i]Bonjour(soir),
depuis quelques semaines, je cherche à changer un menu déroulant qui contient les noms d'utilisateurs
pour l'envoi de messages.
Par un champ type text afin d'y-saisir un nom d'utilisateur plutot que d'avoir une trés longue liste, de tous ces membres enregistrés.
Si une bonne âme saurait m'indiquer une marche à suivre, celà m'aiderait énormément./i
<?php
// Vérrification de session
session_start();
if (!isset($_SESSION['identifiant'])) {
header ('Location: ../index.php');
exit();
}
// Vérrification du formulaire
if (isset($_POST['go']) && $_POST['go'] == 'Envoyer') {
if (empty($_POST['destinataire']) || empty($_POST['titre']) || empty($_POST['message'])) {
$erreur = 'Au moins un des champs est vide.';
}
else {
$base = mysql_connect ('127.0.0.1', 'root', '');
mysql_select_db ('test_db_msgr', $base);
// Si la vérrification du formulaire est réussi :
$requete = 'INSERT INTO messages_membres VALUES("", "'.$_SESSION['id'].'","'.$_POST['destinataire'].'", "'.date("Y-m-d H:i:s").'", "'.mysql_escape_string($_POST['titre']).'", "'.mysql_escape_string($_POST['message']).'")';
mysql_query($requete) or die('Erreur SQL !'.$requete.'
'.mysql_error());
mysql_close();
header('Location: envoyer.php');
echo ('Votre message à bien été envoyé !');
exit();
}
}
?>
<html>
<head>
<title>test_msgr</title>
</head>
[../index.php Retour à l'accueil]
Envoyer un message :
<?php
$base = mysql_connect ('127.0.0.1', 'root', '');
mysql_select_db ('test_db_msgr', $base);
// Requete SQL selectionnant tous les logins des membres du site en prenant soin de ne pas selectionner notre propre login, le tout, servant à alimenter le menu déroulant spécifiant le destinataire du message
$requete = mysql_query('SELECT membre.identifiant as nom_destinataire, membre.id as id_destinataire FROM membre WHERE id <> "'.$_SESSION['id'].'" ORDER BY identifiant ASC') or die ('Erreur SQL !
'.$requete.'
'.mysql_error());
// on lance notre requete SQL
$nb = mysql_num_rows ($requete);
if ($nb == 0) {
// si aucun membre n'a été trouvé, on affiche tout simplement aucun formulaire
echo 'Vous êtes le seul membre inscrit.';
}
else {
// si au moins un membre qui n'est pas nous même a été trouvé, on affiche le formulaire d'envoie de message
?>
<form action="envoyer.php" method="post">
<!-- LE PROBLEME DEBUT ---------------------------->
Pour : <select name="destinataire">
<?php
//on alimente le menu déroulant avec les login des différents membres du site
while ($data = mysql_fetch_array($requete)) {
echo '<option value="' , $data['id_destinataire'] , '">' , stripslashes(htmlentities(trim($data['nom_destinataire']))) , '</option>';
}
?>
<!-- LE PROBLEME FIN ----------------------------->
Titre : ">
Message : <textarea name="message"><?php if (isset($_POST['message'])) echo stripslashes(htmlentities(trim($_POST['message']))); ?></textarea>
</form>
<?php
}
mysql_free_result($requete);
mysql_close();
?>
<?php
// si une erreur est survenue lors de la soumission du formulaire :
if (isset($erreur)) echo '
',$erreur;
?>
</html>
(Auteur de ce code : "La globule" ['php-facile']).
A voir également:
Messagerie interne, problème champ nom d'utilisateur.