vairable formulaire

Répondre
silver
le 13/01/2005 à 14:20
silver
ok j'ai trouver ma varible grace à une requete correspondant au destinataire c'est $id_message, donc maintenant je peux l'enlever du formulaire et allé le mettrer directement dans le code tout en au de la page pour l'envoi
ce qui va donner :
// on teste si le formulaire a bien été soumis
if (isset($_POST['go']) && $_POST['go'] == 'Envoyer') {
if (empty($_POST['titre']) || empty($_POST['message'])) {
$erreur = 'Vous devez entrer un texte pour pouvoir envoyer le message';
}
else {
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('espace_membre', $base);

// si tout a été bien rempli, on insère le message dans notre table SQL
mysql_query('INSERT INTO messages VALUES("", "'.$_SESSION['id'].'", "'.$_POST['destinataire'].'", "'.date("Y-m-d H:i:s").'", "'.$_POST['titre'].'", "'.addslashes($_POST['message']).'","")');
mysql_query('INSERT INTO messages_env VALUES("", "'.$_SESSION['id'].'", "$id_message", "'.date("Y-m-d H:i:s").'", "'.addslashes($_POST['titre']).'", "'.addslashes($_POST['message']).'","")');

//mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());
mysql_close();

mais ca marche ca je remplace $_poste['destinataire] par -> $id_message
silver
le 13/01/2005 à 14:42
silver
ok c'est bon ca fonctionne j'ai réussit merci de ton aide j'ai récupérer l'id de l'expediteur du message je l'envoi par le formulaire à l'aide d'un champ caché comme ca on ne vois pas l'expediteur et tou fonctionne merci de ton aide.

Et sinon pkoi tu ma demander plus si ma requête fonctionner avec selec id ?
speedfrance
le 01/12/2010 à 23:08
speedfrance
Bonjour,

Je me permet de deterrer ce post car je suis dans le même cas que silver j'ai choisi de mettre une page répondre à la messagerie que j'ai trouver sur ce site.
Tous fonctionne sauf le champ id_destinataire qui refuse de s'enregistrer dans la base, je met donc mon code si vous pouvez me dire ou es l'erreur ? et une solution.

Pour l'envoi du formulaire à la base :

<?php
$iddest=$data['id_expediteur'];
echo $iddest;

// on teste si le formulaire a bien été soumis
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.';
}

$base = mysql_connect ('localhost', 'root', 'password');
mysql_select_db ('speedfrance', $base);

// si tout a été bien rempli, on insère le message dans notre table SQL
$sql = 'INSERT INTO messages VALUES ("", "'.$_SESSION['id'].'", "'.$iddest.'", "'.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();

}
?>



Le formulaire :


<form action="repondre.php" method="post">
<p align="left"><font color="#FF0000">Pour :


<?php

// on teste si notre paramètre existe bien et qu'il n'est pas vide

if (!isset($_GET['id_message']) || empty($_GET['id_message'])) {
echo 'Aucun message reconnu.';
}
else {

// on se connecte a la base

$base = mysql_connect ('localhost', 'root', 'password');
mysql_select_db ('speedfrance', $base);

// on prepare la requete qui va selectionner les champs du message

$sql = 'SELECT titre, date, message, membre.login as expediteur, membre.id as id_expediteur FROM messages, membre WHERE id_destinataire= "'.$_SESSION['id'].'" AND id_expediteur=membre.id AND messages.id="'.$_GET['id_message'].'"';

// on lance cette requette sql pour optenir id expediteur que nous aurons besoin

$req = mysql_query($sql) or die('Erreur SQL !<br />
</div>
'.$sql.'<br />'.mysql_error());
$nb = mysql_num_rows($req);
if ($nb == 0) {
echo 'Aucun message reconnu.';
}
else {


// si le message a été trouvé, on recupere l'id et le login de l'expediteur que l'ont transforme en variable

$data = mysql_fetch_array($req);
$iddest=$data['id_expediteur'];
$dest=$data['expediteur'];

}
}

// on affiche le destinataire.

echo $dest, '<br /><br />';

?>

</font></p>
<p align="left"><br />
<font color="#FF0000">Objet : </font>

<input type="text" name="titre" value="Re : <?php echo stripslashes(htmlentities(trim($data['titre']))); ?>" size="20"></p>
<p align="left">

<textarea name="message" rows="7" cols="68"><?php if (isset($_POST['message'])) echo stripslashes(htmlentities(trim($_POST['message']))); ?></textarea></p>
<p align="left"> <br />

<input type="submit" name="go" value="Envoyer" style="float: left"> </p>

</form>


Je supose que le soucis viens de ma variable $iddest mais j'ai tous essayer mais elle ne s'enregistre pas dans ma base. j'ai utiliser des echo $iddest pour verifier si l'id du destinataire etait bien enregistrer et oui elle s'affiche bien... j'aimerai donc savoir si ces possible en utilisant la variable $iddest et si oui comment l'effectuer pour l'envoi.

Dans l'attente de vos réponse, Merci d'avance
SpeedFrance
moogli
le 02/12/2010 à 00:28
moogli
salut,

faut ajouter l'id expediteur dans le formulaire
<textarea name="message" rows="7" cols="68"><?php if (isset($_POST['message'])) echo stripslashes(htmlentities(trim($_POST['message']))); ?></textarea></p>
<p align="left"> <br />
<input type="hidden" name="destinataire" value="<?php echo$iddest; ?>" />
<input type="submit" name="go" value="Envoyer" style="float: left"> </p>


la validation du formulaire
<?php
$sql = 'INSERT INTO messages VALUES ("", "'.$_SESSION['id'].'", "'.mysql_real_escape_string($_POST['destinataire'].'", "'.date("Y-m-d H:i:s").'", "'.mysql_escape_string($_POST['titre']).'", "'.mysql_escape_string($_POST['message']).'")';
?>

et tu peut virer les 2 premières lignes ^^

@+
Il en faut peu pour être heureux !!!!!
speedfrance
le 02/12/2010 à 13:11
speedfrance
Merci moogli cela fonctionne, encore désoler pour l'autre post mais j'ai vu qu'il était plus récent que le premier ou j'avais poster et n'avais pas vu la réponse sur celui la.
Je retiendrai un type hidden, que j'avais deja vu mais ne savais à quoi cela servai.

Et merci de m'avoir relancer ici sur l'autre post car sinon je n'aurai jamais vu la réponse :)
SpeedFrance
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours