Votre question

Probleme programmation minitchat

Tags :
  • MySQL
  • Programmation
Dernière réponse : dans Programmation
19 Août 2009 11:32:01


bonjour a tous
je suis actuellement en train de realiser le tp minitchat qui est a la fin de du II sur le cours php.
je rencontre un probleme que je n'arrive pas a résoudre.Lorsque je clique sur le script un message sur le navigateur apparait et me dit "
Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in C:\wamp\www\projetbeta\tchat.php on line 22" c'est a dire"$recup = mysql_query ("INSERT INTO minitchat VALUES ('', '$_POST['pseudo']', '$_POST['com']')") or die (mysql_error());" je n'ai pas tres bien compris.
pouvait vous m'aidez s'il vous plait ?
voici mon script qui se nomme tchat.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Notre première instruction : echo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>

<form method="post" action="tchat.php">
<label for="pseudo">pseudo :</label><input type="text" id="pseudo" maxlength="15"/><br/>
<label for="com">message :</label><input type="text" id="com" maxlength="255"/>
</textarea><br/>
<input type="submit"/><input type="reset"/>
</form>
<?php

$_POST['pseudo'];
$_POST['com'];

mysql_connect ("localhost", "root", ""); //connection
mysql_select_db ("tchat"); // a cette table
$recup = mysql_query ("INSERT INTO minitchat VALUES ('', '$_POST['pseudo']', '$_POST['com']')") or die (mysql_error());
echo $_POST['pseudo']; ?> :
<?php
echo $_POST['com'];
mysql_close ();

?>


</body>
</html>
dans l'attente d'une reponse de votre part je vous remercie d'avance

Autres pages sur : probleme programmation minitchat

19 Août 2009 12:58:21

Bonjour,

Je te déconseille de faire des insertions dans la BDD directement avec un $_POST...

Juste après la connexion à la bdd:
  1. $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
  2. $com = mysql_real_escape_string(htmlspecialchars($_POST['com']));


Ensuite pour ton insertion:
  1. $recup = mysql_query ("INSERT INTO minitchat VALUES ('', '".$pseudo."', '".$com."')");


Edit: Dans ton formulaire tu n'as pas de name sur l'input!
m
0
l
19 Août 2009 13:38:35

d'accord , alors j'ai tou refait mais sa marche tjr pas voici le code modifier :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Notre première instruction : echo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<?php
if (isset($_POST['p']) AND isset($_POST['z'])) // Si les variables existent
{
if ($_POST['p'] != NULL AND $_POST['z'] != NULL) // Si on a quelque chose à enregistrer
{
// D'abord, on se connecte à MySQL
mysql_connect("localhost", "root", "");
mysql_select_db("tchat");

// On utilise les fonctions PHP mysql_real_escape_string et htmlspecialchars pour la sécurité
$com = mysql_real_escape_string(htmlspecialchars($_POST['z']));
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['p']));

// Ensuite on enregistre le message
mysql_query("INSERT INTO minitchat VALUES('', '$pseudo', '$com')");

// On se déconnecte de MySQL
mysql_close();
}
}


// Que l'on ait enregistré des données ou pas...
// On affiche le formulaire puis les 10 derniers messages

// Tout d'abord le formulaire :
?>


<form method="post" action="tchat.php">
<label for="pseudo">pseudo :</label><input type="text" id="pseudo" maxlength="15" name="p"/><br/>
<label for="com">message :</label><input type="text" id="com" maxlength="255" name="z"/>
</textarea><br/>
<input type="submit"/><input type="reset"/>
</form>
<?php

mysql_connect ("localhost", "root", "");
mysql_select_db ("tchat");
$recup = ("SELECT * FROM minitchat ORDER BY ID DESC LIMIT 0,10");
mysql_close();
while ($donnees = mysql_fetch_array($recup))
{
echo $_POST['p'];
?>
:
<?php echo $_POST['z'];
}

?>



</body>
</html>

quelqu'un peut t'il m'aidé a distinguer le pb svp ?
m
0
l
Contenus similaires
19 Août 2009 14:10:24

Merci d'utiliser les bbcode et en particuler [code] histoire que le résultat soit lisible.

Quel est le message d'erreur ? si c'est comme le premier il s'agit toujours d'une simple erreur de syntaxe on ne peut plus basique. Sinon ta requête d'insertion n'est pas forcément très bien, en ne spécifiant pas les valeurs que tu ajoutes. Si tu changes ton shéma dans quelques semaines alors ta requête ne marchera plus.
m
0
l
19 Août 2009 14:16:37

et bien lorsque je met ce code Apache crash je sais pas pourquoi, pourtant il n'y a pas d"erreur dans ce code, enfin je crois
m
0
l
19 Août 2009 14:23:58

meme en enlevant "</textarea><br/> " qui ne servait a rien ici
m
0
l
19 Août 2009 14:28:58

Apache crash ? message d'erreur ?

Pour faire planter Apache avec ce genre de code il faut le faire ! c'est sans doute le module PHP. Un plantage Apache donne un erreur interne avec un code http 500. Pour un débutant le plus souvent dû à une mauvais .htaccess

En même temps je comprend pas pourquoi dans ta boucle de résultat tu affiches une variable $_POST et non $donnee. Il faut au passage JAMAIS au grand JAMAIS afficher et même utiliser des données provenant de $_POST, $_GET et dans une moindre mesure $_SERVER.
m
0
l
19 Août 2009 14:33:56

  1. $recup = ("SELECT * FROM minitchat ORDER BY ID DESC LIMIT 0,10" );


par

  1. $recup = mysql_query ("SELECT * FROM minitchat ORDER BY id DESC LIMIT 0,10" );
m
0
l
19 Août 2009 14:48:48

voici la correction que j'ai faite grace a vos conseils,
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Notre première instruction : echo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<?php
if (isset ($_POST['n']) AND isset ($_POST['com']))
{
if ($_POST['n'] != NULL AND $_POST['com'] != NULL) // Si on a quelque chose à enregistrer
{
// D'abord, on se connecte à MySQL
mysql_connect("localhost", "root", "");
mysql_select_db("tchat");

// On utilise les fonctions PHP mysql_real_escape_string et htmlspecialchars pour la sécurité
$nx = mysql_real_escape_string(htmlspecialchars($_POST['n']));
$comx = mysql_real_escape_string(htmlspecialchars($_POST['com']));

// Ensuite on enregistre le message
mysql_query("INSERT INTO minitchat VALUES('', '$nx', '$comx')");

// On se déconnecte de MySQL
mysql_close();
}
}


// Que l'on ait enregistré des données ou pas...
// On affiche le formulaire puis les 10 derniers messages

// Tout d'abord le formulaire :
?>


<form method="post" action="tchat.php">
<label for="pseudo">pseudo :</label><input type="text" id="pseudo" maxlength="15" name="n"/><br/>
<label for="com">message :</label><input type="text" id="com" maxlength="255" name="com"/>

<input type="submit"/><input type="reset"/>
</form>
<?php

mysql_connect ("localhost", "root", "");
mysql_select_db ("tchat");
$recup = mysql_query("SELECT * FROM minitchat ORDER BY ID DESC LIMIT 0,10");
mysql_close();
while ($donnees = mysql_fetch_array($recup))
{
echo $donnees['n'];
?>
:
<?php echo $donnees['com'];
}

?>



</body>
</html>

malheursement apache crash toujours. AI je encore fait des erreurs ?
m
0
l
19 Août 2009 17:16:06

Merci d'utiliser les bbcode !
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS