Page 1 sur 2

Envoyer un message à un membre précis

Posté : 06 déc. 2005, 04:53
par alexdarcy
Bonjour j'ai un autre ptit probleme
Envoyer un message à un membre précis, message qu'il récéptionnera directement dans un formulaire privé placé dans son espace membre.
L'envoi du message se fait après avoir choisi le nom du membre dans une liste déroulante voir ci-dessous le script html.
Voici ci dessous le script du formulaire ad_message.html :
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>essai</title>
</head>
<body>
<form action="ad_message.php" method="POST">
<p>&nbsp;</p>
<p><select size="1" name="nom">
<option value="$id=32">Maurice Noel</option>
<option value="$id=1">Jacques Prevert</option>
<option value="$id=30">Antoine Dulardin</option>
</select></p>
<p>&nbsp;</p>
<p><textarea rows="10" name="message" cols="38"></textarea></p>
<p>&nbsp;</p>
<p><input type="submit" value="Envoyer" name="B1"></p>
</body>
</html>

et voici ci dessous le script php de ad_message.php en sachant que dans la table, le champ qui récéptionne le message se nomme $message :
<?php 
// On commence par récupérer les champs 
if(isset($_POST['message']))      $nom=$_POST['message'];
else      $message="";

       // connexion à la base
$db = mysql_connect('localhost', 'login', 'password')  or die('Erreur de connexion '.mysql_error());
// sélection de la base  

    mysql_select_db('essai',$db)  or die('Erreur de selection '.mysql_error()); 
     
    // on écrit la requête sql 
    $sql = "INSERT INTO infos_tbl(id, message) VALUES('','$message)"; 
     
    // on insère les informations du formulaire dans la table 
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 

    // on affiche le résultat pour le visiteur 
    echo 'Vos infos on été ajoutées.'; 

    mysql_close();  // on ferme la connexion 
    }  
?> 
Pouvez vous me dire si tout cela est juste ? Ce que je ne comprends pas :oops: , est comment le message sera déposé au bon destinataire.
Merci de m'éclairer merci à vous


[/php][/list]

Posté : 06 déc. 2005, 05:09
par alexbad
Quelque chose me dit que c'est la suite d'un topic que je n'ai pas suivi... c'est un système de mp que tu veux? Côté syntaxe, je vois pas d'erreur... ou bien tu veux envoyer un mail à un membre?

Posté : 06 déc. 2005, 06:10
par alexdarcy
Quelque chose me dit que c'est la suite d'un topic que je n'ai pas suivi... c'est un système de mp que tu veux? Côté syntaxe, je vois pas d'erreur... ou bien tu veux envoyer un mail à un membre?
Non non pas par mail.
Voici le message d'erreur que je reçois :
Erreur SQL !INSERT INTO membres(id_user, id, message) VALUES ('', 'je suis la')
Column count doesn't match value count at row 1

:cry:

Posté : 06 déc. 2005, 09:23
par jeff
salut
alors moi je vois une erreur a cette ligne
 $sql = "INSERT INTO infos_tbl(id, message) VALUES('','$message)"; 
et pour l'autre requete
"INSERT INTO membres(id_user, id, message) VALUES ('', 'je suis la') "
si les champs sont auto incrementer tu peut les enlever de ta requete

Posté : 06 déc. 2005, 10:55
par pjl
1. je ne suis pas sur que frontpage soit l'outil idéal pour faire du PHP ;
2. elle est normale cette ligne ?

Code : Tout sélectionner

<option value="$id=32">Maurice Noel</option>
3. ou récupère tu la varible nom dans ton code ?

Posté : 06 déc. 2005, 19:43
par alexdarcy
1. je ne suis pas sur que frontpage soit l'outil idéal pour faire du PHP ;
2. elle est normale cette ligne ?

Code : Tout sélectionner

<option value="$id=32">Maurice Noel</option>
3. ou récupère tu la varible nom dans ton code ?
$id=32 est l'id de Maurice Noel et le message envoyé va à cet id !!

:roll:

Posté : 06 déc. 2005, 19:49
par alexdarcy
salut
alors moi je vois une erreur a cette ligne
 $sql = "INSERT INTO infos_tbl(id, message) VALUES('','$message)"; 
et pour l'autre requete
"INSERT INTO membres(id_user, id, message) VALUES ('', 'je suis la') "
si les champs sont auto incrementer tu peut les enlever de ta requete
Oui quelle est l'erreur ?
Revoici le message d'erreur que je reçois après avoir envoyé le message :
Erreur SQL !INSERT INTO membres(id_user, id, message) VALUES ('', 'je suis la')
Column count doesn't match value count at row 1


:cry:

Posté : 06 déc. 2005, 23:04
par Truc
Salut,
Column count doesn't match value count at row 1
En gros ca veut dire que tu n'as pas le meme nombre de valeurs que de champs dans la requete. :wink:

Posté : 06 déc. 2005, 23:09
par jeff
ce qui m'etonne c'est que tu n'a pas d'erreur sur ta premiere requete, il manque '
$sql = 'INSERT INTO infos_tbl(id, message) VALUES("","'.$message.'")';
pour le reste truc a dit simplement ce que je voulai dire

Posté : 06 déc. 2005, 23:19
par Cyrano
Erreur SQL !INSERT INTO membres(id_user, id, message) VALUES ('', 'je suis la')
Column count doesn't match value count at row 1
Ce message indique que le nombre de colonnes ne correspond pas au nombre de données envoyées: dans ta requête, tu pointes sur trois colonnes mais tu n'envoies que deux données :arrow: erreur automatique et logique

Posté : 07 déc. 2005, 04:01
par alexdarcy
maintenant je reçois ce message d'erreur :

Vos infos on été ajoutées.
Fatal error: Call to a member function on a non-object in /var/www/xxx/loge/ad_message.php on line 22


:cry:

Posté : 07 déc. 2005, 08:56
par Cyrano
Si tu ne nous montres pas le code qui va avec, on devinera pas...:-k

Posté : 07 déc. 2005, 09:06
par alexdarcy
Si tu ne nous montres pas le code qui va avec, on devinera pas...:-k
oui cé vré ça :
<?php 
// On commence par récupérer les champs 
if(isset($_POST['message']))      $nom=$_POST['message'];
else      $message="";

       // connexion à la base
$db = mysql_connect('localhost', 'xxxxx', 'xxxxx')  or die('Erreur de connexion '.mysql_error());
// sélection de la base  

    mysql_select_db('castingsurf',$db)  or die('Erreur de selection '.mysql_error()); 
     
    // on écrit la requête sql 
    $sql = "INSERT INTO membres (id, message) VALUES ('$id', '$message')"; 
     
    // on insère les informations du formulaire dans la table 
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 

    // on affiche le résultat pour le visiteur 
    echo 'Vos infos on été ajoutées.'; 

    mysql_close();  // on ferme la connexion 
    $base->free();
    $base2->free();  
?> 
voilà ca n'y est là lol

Posté : 07 déc. 2005, 09:08
par Cyrano
//...
 $base->free();
    $base2->free();
Où est la création de ton instance de classe ?

Posté : 07 déc. 2005, 09:10
par alexdarcy
//...
 $base->free();
    $base2->free();
Où est la création de ton instance de classe ?
ici lol


<?
/*/
include_once("../config/conf.inc.php");

//requete permettant de recup les infos dans la base de données.

$base2 = new class_db("SELECT * FROM membres where id='$fiche_id'");
$base2->next_record();

:wink: