Envoyer un message à un membre précis

Eléphant du PHP | 257 Messages

06 déc. 2005, 04:53

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]

ViPHP
ViPHP | 649 Messages

06 déc. 2005, 05:09

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?
Image

Eléphant du PHP | 257 Messages

06 déc. 2005, 06:10

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:

Mammouth du PHP | 1311 Messages

06 déc. 2005, 09:23

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

ViPHP
pjl
ViPHP | 2119 Messages

06 déc. 2005, 10:55

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 ?

Eléphant du PHP | 257 Messages

06 déc. 2005, 19:43

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:

Eléphant du PHP | 257 Messages

06 déc. 2005, 19:49

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:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

06 déc. 2005, 23:04

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:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 1311 Messages

06 déc. 2005, 23:09

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
Modifié en dernier par jeff le 06 déc. 2005, 23:25, modifié 1 fois.

Mammouth du PHP | 19672 Messages

06 déc. 2005, 23:19

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
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 257 Messages

07 déc. 2005, 04:01

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:

Mammouth du PHP | 19672 Messages

07 déc. 2005, 08:56

Si tu ne nous montres pas le code qui va avec, on devinera pas...:-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 257 Messages

07 déc. 2005, 09:06

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

Mammouth du PHP | 19672 Messages

07 déc. 2005, 09:08

//...
 $base->free();
    $base2->free();
Où est la création de ton instance de classe ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 257 Messages

07 déc. 2005, 09:10

//...
 $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: