Page 1 sur 1

Afficher formulaire si....

Posté : 18 janv. 2014, 14:12
par cris84
Bonjour,
je voudrais afficher un formulaire de contact dans une liste de membre mais exclure celui qui est connecté (formulaire non visible si la personne est connecté).

J'ai essayé avec
<?php if (!isset($_SESSION[$prefix.'logged']) { ?>
mais sans succès.

Je vous donne le code en entier si vous pouvez m'orienter :
<?php

if (isset($_SESSION[$prefix.'logged']) && $_SESSION[$prefix.'logged'] === true)
{
	designhaut($lang['profil_d_un_membre']);
	$id = intval($_GET['id']);
	$nbre_membres = mysql_query('SELECT COUNT(id) AS nbre_membres FROM '.$prefix.'membres WHERE id='.$id)or die(mysql_error());
	$nbre_membres = mysql_result($nbre_membres, 0, 'nbre_membres');
<h1>Lui envoyer un message :</h1>
<?php
if (isset($_POST['go']) && $_POST['go'] == 'Envoyer') {
	if (empty($_POST['destinataire']) || empty($_POST['titre']) || empty($_POST['message'])) {
	$erreur = '<div class="alert alert-error">Au moins un des champs est vide.</div>';
	}
	else {
	
	// si tout a été bien rempli, on insère le message dans notre table SQL
	$sql = 'INSERT INTO messages VALUES("", "'.$_SESSION[$prefix.'id'].'", "'.$_POST['destinataire'].'", "'.date("Y-m-d H:i:s").'", "'.mysql_escape_string($_POST['titre']).'", "'.mysql_escape_string($_POST['message']).'")';
	mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

	mysql_close();

	header('Location: membres.php');
	exit();
	}
}
?>
<?php
if (isset($erreur)) echo '<br /><br />',$erreur;
$sql = 'SELECT membres.pseudo as nom_destinataire, membres.id as id_destinataire FROM membres WHERE id <> "'.$_SESSION[$prefix.'id'].'"';

$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$nb = mysql_num_rows ($req);

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="" method="post">
	<p>
	Pour : <?php echo $donnees['pseudo']; ?><p> <input type="hidden" name="destinataire" value="<?php echo $donnees['id']; ?>">
	
	Titre : <label for"titre"><input name="titre" type="text" value="<?php if (isset($_POST['titre'])) echo stripslashes(htmlentities(trim($_POST['titre']))); ?>" size="50">
	</label>
	<br>
	<br />
	Message : <label for"message"><textarea name="message" cols="50" rows="10"><?php if (isset($_POST['message'])) echo stripslashes(htmlentities(trim($_POST['message']))); ?></textarea>
	</label>
	<input type="submit" name="go" value="Envoyer">
	</p>
	</form>
	<?php
}
mysql_free_result($req);
mysql_close();
?>

Re: Afficher formulaire si....

Posté : 18 janv. 2014, 20:31
par cris84
En théorie au vu du code le formulaire ne devrait pas s'afficher si la session est différente de celui connecté mais là il s'affiche malgré tout...
<?php
$sql = 'SELECT membres.pseudo as nom_destinataire, membres.id as id_destinataire FROM membres WHERE id <> "'.$_SESSION[$prefix.'id'].'"';

$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$nb = mysql_num_rows ($req);

if ($nb == 0) {
	// si aucun membre n'a été trouvé, on affiche tout simplement aucun formulaire
	echo 'Vous êtes le seul membre inscrit.';
}
else {
le formulaire s'affiche...
?>

Re: Afficher formulaire si....

Posté : 18 janv. 2014, 20:49
par computarelier
Salut,

pour ton message numéro 2 regarde bien. Ta condition est vraie dès lorsque tu as un ou plus de résultats.... Peut être voudrais tu essayer en faisant $nb == 1 ?

Bon courage,

Re: Afficher formulaire si....

Posté : 18 janv. 2014, 21:04
par cris84
Merci mais j'ai modifié en ajoutant
<?php if ($donnees['id'] == $_SESSION['id']) { ?>
c"est OK, je ne vous avez pas mis le code en entier...

Mea-culpa !!