Tom's Guide > Forum > Programmation > Probleme programmation minitchat

Probleme programmation minitchat

Forum Programmation : Probleme programmation minitchat

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 


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

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Bonjour,

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

Juste après la connexion à la bdd:

Code :
  1. $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
  2. $com = mysql_real_escape_string(htmlspecialchars($_POST['com']));



Ensuite pour ton insertion:

Code :
  1. $recup = mysql_query ("INSERT INTO minitchat VALUES ('', '".$pseudo."', '".$com."')" );



Edit: Dans ton formulaire tu n'as pas de name sur l'input!


Message édité par Allstar27 le 19-08-2009 à 13:00:11
------------------------------ Rémunère ton site
Hosting Favicon
Clic pas ici
Répondre à Allstar27

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 ?

Répondre à wahhh

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.

Répondre à SiM07

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

Répondre à wahhh

meme en enlevant "</textarea><br/> " qui ne servait a rien ici

Répondre à wahhh

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.

Répondre à SiM07

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



par

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


Message édité par Allstar27 le 19-08-2009 à 18:04:15
------------------------------ Rémunère ton site
Hosting Favicon
Clic pas ici
Répondre à Allstar27

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 ?

Répondre à wahhh

Merci d'utiliser les bbcode !

Répondre à SiM07
Tom's Guide > Forum > Programmation > Probleme programmation minitchat
Aller à :

Il y a 249 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Liens