Probleme programmation minitchat
Forum Programmation : Probleme programmation minitchat
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
Bonjour,
Je te déconseille de faire des insertions dans la BDD directement avec un $_POST...
Juste après la connexion à la bdd:
Code :
|
Ensuite pour ton insertion:
Code :
|
Edit: Dans ton formulaire tu n'as pas de name sur l'input!
Message édité par Allstar27 le 19-08-2009 à 13:00:11
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 ?
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.
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
meme en enlevant "</textarea><br/> " qui ne servait a rien ici
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.
Code :
|
par
Code :
|
Message édité par Allstar27 le 19-08-2009 à 18:04:15
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 ?
Merci d'utiliser les bbcode !
Il y a 249 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
