pb variable php/mysql

pb variable php/mysql - PHP - Programmation

Marsh Posté le 25-12-2005 à 21:37:07    

salut les amis programmeurs
 
voila , en fait dans le cadre de mon projet , j'aimerais faire une fonction message, pour permettre aux membres de ce parler entre eux, j'ai un probleme , la variable pour l'"id_destinataire" n'est pas conserver  
 
voici mon script
 
<?php
switch($_POST['action'])
{
 
  // INSERTION DANS LA BASE
  case "inserer":
 
    // déclaration de quelques variables
    ***
 
    // connection avec MySQL
    @mysql_connect($host, $user, $pass) or die("Impossible de se connecter à la base de données" ); // Le @ indique à php de ne pas afficher de message d'erreur
    @mysql_select_db($bdd) or die("Impossible de se connecter à la base de données" );
 
    // affichage sélection
 
 
 
    <p> <br><br><br><br><b> Message correctement envoyer"
    </a> </p>;
 
 
 
    // stockage dans la bdd
    $message = $_POST['message'];
 
 
 
 
    $sql = "INSERT INTO message (message , id_destinataire )  VALUES('" .$message. "' , '" .$id_destinataire. "' ) ";
    $res = mysql_query($sql);
 
 
    // déconnection avec MySQL
    mysql_close();
 
  break;
 
  // AFFICHAGE FORMULAIRE HTML
  default:
 
    ?>  
     
     <b>Message</b>
     <br>
 
 
 
     
    <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    <input type="hidden" name="action" value="inserer" />
    <p><textarea cols=60 rows=11 input type="text" name="message" /></textarea> </p>
    <p><input type="submit" name="Submit" value="Envoyer" /></p>
    </form>
    <?
 
  break;
 
}
 
?>
</body>
</html>
 
 
voila
donc j'ai la page mondomaine.be/message.php?id_destinataire=6  par exemple , quand je fait tout pour envoyer , tout est ok, sauf que dans la bdd dabs le champs 'id_destinataire' la valeur 0 ou aucune valeur est acquise
 
 
si quelqun a une solution , ce serai super sympa
 
joyeux noel a tous en meme temps
 
 :)


Message édité par rut le 25-12-2005 à 21:38:25
Reply

Marsh Posté le 25-12-2005 à 21:37:07   

Reply

Marsh Posté le 25-12-2005 à 21:52:44    

(mais quelle horreur ce code...)
 
Faut dire que je ne vois nulle part une quelconque initialisation d'id_destinataire, ni sa récupération lorsqu'elle passe dans l'url...

Reply

Marsh Posté le 25-12-2005 à 21:55:26    

premiere page:
 
 
<a href="message.php?id_destinataire=
<?php
if( isset($_GET['id']) )
{
$id = intval ($_GET['id']);
 
$req = "SELECT id_user , nom , id_user   ".
"FROM utilisateurs WHERE id_user = ".$id ;
$ret = mysql_query ($req) or die (mysql_error ());
$col = mysql_fetch_row ($ret);
if ( !$col[0] )
{
echo "Id  inconnu";
}
else
{
 
echo $col[2];
}
}
else
{
echo "Mauvais id ";
}
?>            " >message</a>
 
 
 
deuxieme page , la page message avec le script cite plus haut


Message édité par rut le 25-12-2005 à 21:56:12
Reply

Marsh Posté le 25-12-2005 à 22:02:47    

Oui, et ?
 
Tu vois un

Code :
  1. $id_destinaire = ...


quelque part avant ta requête d'insertion ? Non ? Bravo, tu as trouvé l'origine de ton problème :)
 
Ceci dit, vu que le forumulaire se soumet sur la même page, pourquoi tu case pas ton id_destinataire en tant que champs du form (en hidden) ?

Reply

Marsh Posté le 25-12-2005 à 22:44:48    

oui il manque un $id_destinataire="???"
 
c'est sur ca que je cale, je ne sais pas quoi mettre
 
j'ai essayer avec $id_destinataire=if( isset($_GET['id']) )
{
$id_destinataire = intval ($_GET['id']);
 
mais il me retourne une erreur sur la ligne 70
 
quelqu'un a une idee?:)

Reply

Marsh Posté le 26-12-2005 à 03:09:22    

rut a écrit :

$id_destinataire=if( isset($_GET['id']) )
{
$id_destinataire = intval ($_GET['id']);

:/
Revoir les bases serait peut-être pas un luxe, en particulier ceci et cela.

Reply

Marsh Posté le 29-12-2005 à 21:09:52    

je cale , personne n'as une idee ou une solution pour moi?
 
ma page : message.php?id_destinataire=16 par exemple
sur ma db id_destinataire ne prend pas de valeur car il n'y a pas de "id_destinatire=??"sur le script, et je ne sais pas quoi mettre
 
merci

Reply

Marsh Posté le 30-12-2005 à 01:48:59    

Tout est expliqué dans les liens que je t'ai donnés. :/
Sur : message.php?id_destinataire=16
Si register_globals est à off dans ton php.ini tu retrouves 16 dans $_GET['id_destinataire'], sinon $id_destinataire est une variable directement accessible contenant 16. Y a que deux possibilités, c'est pas bien compliqué...

Reply

Marsh Posté le 30-12-2005 à 11:41:20    

Un conseil, utilise toujours $_GET[], ton script sera plus compatible.


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 30-12-2005 à 16:44:39    

merci
 
lorsque je met : $id_destinataire = $_GET['id_destinataire'];
 
il me di une erreur telque: Notice: Undefined index: id_destintaire in c:\...\message.php on line 18
 
 
 

Reply

Marsh Posté le 30-12-2005 à 16:44:39   

Reply

Marsh Posté le 30-12-2005 à 17:21:18    

Reply

Marsh Posté le 30-12-2005 à 17:33:27    

sielfried a écrit :

id_destintaire


 
:lol:


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 30-12-2005 à 17:34:36    

oui , effectivement erreur de ma part mais c'est bien Notice: Undefined index: id_destinataire in c:\...\message.php on line 18 :s

Reply

Marsh Posté le 30-12-2005 à 17:36:57    

et l'URL appelante est bien de la forme  
 
http://tonsite/tapage.php?id_destinataire=toto
 
?


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 30-12-2005 à 17:39:25    

ui

Reply

Marsh Posté le 30-12-2005 à 17:42:21    

tu peux faire un print_r($_SERVER) et nous mettre le résultat ici ? :)


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 30-12-2005 à 17:46:52    

ca avancera a quoi? car je ne connais pas ca :D

Reply

Marsh Posté le 30-12-2005 à 17:59:04    

Ca avancerait à savoir ce qu'il passe en paramètre ;)
 
en haut de ta page de destination tu mets :
 
print_r($_SERVER);
 
et tu nous mets le resultat ici :)


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 30-12-2005 à 18:01:39    

Array ( [COMSPEC] => C:\WINDOWS\system32\cmd.exe [DOCUMENT_ROOT] => c:/program files/easyphp1-8/www [HTTP________________] => ----- ------- [HTTP_ACCEPT] => */* [HTTP_ACCEPT_LANGUAGE] => fr-be [HTTP_CONNECTION] => Keep-Alive [HTTP_COOKIE] => phpbb2mysql_data=a%3A2%3A%7Bs%3A11%3A%22autologinid%22%3Bs%3A0%3A%22%22%3Bs%3A6%3A%22userid%22%3Bs%3A1%3A%222%22%3B%7D; PHPSESSID=3c8f9058b1dc12027640b7a243c23db5; phpbb2mysql_sid=d05f4140f0351cf4cde942aa0f8e0155 [HTTP_HOST] => 127.0.0.1 [HTTP_REFERER] => http://127.0.0.1//V.1/view.php?id=16 [HTTP_USER_AGENT] => Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322) [PATH] => C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\PROGRA~1\EASYPH~1\Apache;C:\PROGRA~1\EASYPH~1\PHP [REMOTE_ADDR] => 127.0.0.1 [REMOTE_PORT] => 1695 [SCRIPT_FILENAME] => c:/weblocal//v.1/message.php [SERVER_ADDR] => 127.0.0.1 [SERVER_ADMIN] => admin@localhost [SERVER_NAME] => 127.0.0.1 [SERVER_PORT] => 80 [SERVER_SIGNATURE] =>  
Apache/1.3.33 Server at 127.0.0.1 Port 80
[SERVER_SOFTWARE] => Apache/1.3.33 (Win32) PHP/4.3.10 [SystemRoot] => C:\WINDOWS [WINDIR] => C:\WINDOWS [GATEWAY_INTERFACE] => CGI/1.1 [SERVER_PROTOCOL] => HTTP/1.1 [REQUEST_METHOD] => GET [QUERY_STRING] => id_destinataire=16 [REQUEST_URI] => /V.1/message.php?id_destinataire=16 [SCRIPT_NAME] => /V.1/message.php [PATH_TRANSLATED] => c:/weblocal/v.1/message.php [PHP_SELF] => /V.1/message.php )


Message édité par rut le 30-12-2005 à 18:03:16
Reply

Marsh Posté le 30-12-2005 à 18:03:48    

Hummm, pourtant la variable est bien passée ...
 
[REQUEST_METHOD] => GET
[QUERY_STRING] => id_destinataire=16
 
Je ne comprends pas que $_GET['id_destinataire'] ne fonctionne pas :/
 
et à la place de print_r($_SERVER) fais voir un print_r($_GET)


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 30-12-2005 à 18:05:16    

ca donne : Array ( [id_destinataire] => 16 )  

Reply

Marsh Posté le 30-12-2005 à 18:07:10    

:heink:  
 
Bah c'est tout bon :lol:
 
et un echo $_GET['id_destinataire'] ne mache pas ?? :??:
 
Pas possible :D
 
Edit : vive les smileys :p


Message édité par Dj YeLL le 30-12-2005 à 18:07:24

---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 30-12-2005 à 18:07:17    

Reply

Marsh Posté le 30-12-2005 à 18:09:53    

Ca te donne quoi un :
echo phpversion();
 
?


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 30-12-2005 à 18:10:47    

echo $_GET['id_destinataire'] donne 16 :lol:
 
alors ca pourrai venir de la page message qui cree un probleme?:-s

Reply

Marsh Posté le 30-12-2005 à 18:11:43    

4.3.10  pour le phpversion :D

Reply

Marsh Posté le 30-12-2005 à 18:13:09    

rut a écrit :

echo $_GET['id_destinataire'] donne 16 :lol:
 
alors ca pourrai venir de la page message qui cree un probleme?:-s


 
Si echo $_GET['id_destinataire'] passe alors $foo = $_GET['id_destinataire']; passera sur la même page, c'est pas plus compliqué que ça.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 30-12-2005 à 18:22:31    

Du coup je ne comprends plus rien ... il est où le problème ? :??:


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 30-12-2005 à 18:24:38    

Y a un bug dans le programmeur. :o

Reply

Marsh Posté le 30-12-2005 à 18:27:10    

la valeur du "id_destinataire" dans le champs id_destinataire de la base de donnee ne prend pas la valeur , (16 par exmple)

Reply

Marsh Posté le 30-12-2005 à 18:27:38    

kalex a écrit :

Y a un bug dans le programmeur. :o


 
:lol:


Message édité par Dj YeLL le 30-12-2005 à 18:27:57

---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 30-12-2005 à 18:28:15    

rut a écrit :

la valeur du "id_destinataire" dans le champs id_destinataire de la base de donnee ne prend pas la valeur , (16 par exmple)


 [:anshi]


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 30-12-2005 à 20:31:08    

:lol:  ahAHAH ça me fait bien rire tout ça.
Sérieusement, tu peux nous mettre la ligne où ya ton erreur? (par exemple, quand il y a écrit "erreur à la ligne 70", donne-nous ta ligne 70) Je sens que j'vais rire lol

Reply

Marsh Posté le 30-12-2005 à 20:37:38    

Notice: Undefined index: id_destinataire in c:\weblocal\v.1\message.php on line 31
 
ligne31: $id_destinataire = $_GET['id_destinataire'];
 
:lol:

Message cité 1 fois
Message édité par rut le 30-12-2005 à 20:38:00
Reply

Marsh Posté le 30-12-2005 à 21:03:39    

Désolé, jpeux rien faire mais c'est hallucinant lol

Reply

Marsh Posté le 30-12-2005 à 22:09:00    

rut a écrit :

Notice: Undefined index: id_destinataire in c:\weblocal\v.1\message.php on line 31
 
ligne31: $id_destinataire = $_GET['id_destinataire'];
 
:lol:


 
et c'est sur cette même page (message.php) que tu as fais les tests plus haut ? (les print_r et le echo $_GET ...) ?


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 30-12-2005 à 22:11:59    

oui tout sur la page message.php


Message édité par rut le 30-12-2005 à 22:12:17
Reply

Marsh Posté le 30-12-2005 à 22:28:03    

je vien de m'apercevoir d'un detail pour la premiere fois , c'est peut etre ca le hic dans l'affaire , avant d'envoyer le message par message.php?id... , j'ai donc les liens en haut, le cadre formulaire a remplir et le bouton envoyer , je vien de remarquer la presence de ceci: Notice: Undefined index: action in c:\weblocal\v.1\message.php on line 19
 
la ligne 19 = switch($_POST['action'])
 
est ce que c'est ca qui fait echouer le reste? :D
 
pour rappel le script de la page message est o debut du thread


Message édité par rut le 30-12-2005 à 22:29:10
Reply

Marsh Posté le 30-12-2005 à 22:28:20    

bon alors sur ta ligne 30 écris ça :
 
print_r($_GET);
 
Donc juste avant $id_destinataire = $_GET['id_destinataire'];


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 30-12-2005 à 22:32:21    

print_r($_GET);  avant $id_destinataire... donne : Array ( )

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed