Probleme programmation minitchat
Dernière réponse : dans Programmation
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
Lassé par la pub ? Créez un compte
Bonjour,
Je te déconseille de faire des insertions dans la BDD directement avec un $_POST...
Juste après la connexion à la bdd:
Ensuite pour ton insertion:
Edit: Dans ton formulaire tu n'as pas de name sur l'input!
Je te déconseille de faire des insertions dans la BDD directement avec un $_POST...
Juste après la connexion à la bdd:
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo'])); $com = mysql_real_escape_string(htmlspecialchars($_POST['com']));
Ensuite pour ton insertion:
$recup = mysql_query ("INSERT INTO minitchat VALUES ('', '".$pseudo."', '".$com."')");
Edit: Dans ton formulaire tu n'as pas de name sur l'input!
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 ?
<!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.
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.
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.
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.
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 ?
<!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 ?
Lassé par la pub ? Créez un compte
- Contenus similaires :
- SolutionsProblème avec l'assistant de compatibilité des programmes
- SolutionsProblème d'accès internet via programmes autres que navigateur
- SolutionsProblème OpenGl avec un programme.
- SolutionsProbleme de mise a jours de mon avertisseur de radar g200neo le programme ne rep
- ForumProblème d'exécution de programme... Virus? Bug?
- ForumProblème pour lancer des programmes ou des application windows 7
- SolutionsProblème pour un programme en C !
- ForumProbleme d'installation de programmes sous windows XP
- ForumProblème de disque dur / tout mes programmes inacessibles
- Voir plus