Problème programmation forum PHP
Résolu
pascal208
Messages postés
105
Date d'inscription
Statut
Membre
Dernière intervention
-
kmoulzim -
kmoulzim -
Bonjour
J'ai programmé un petit forum pour mon site web où les gens à qui j'ai donné un mot de passe peuvent laisser un message. Le problème c'est que quand il y a une apostrophe dans le message, l'insertion dans la base de données SQL ne marche pas en ligne. Et quand je teste le script sur mon PC ça marche. J'envoie une partie de mon script. Merci pour vos idées.
Cordialement
Pascal
/***************************************/
session_start(); //Démarrage de session
...
//Acquisition des variables de session
$id=$_SESSION['id'];
$mdp=$_SESSION['mdp'];
if(isset($_REQUEST['note']))
{
$_SESSION['note'] = $_REQUEST['note'];
}
$note=$_SESSION['note'];
//Si on reconnaît les identifiant et mot de passe
if($id == "..." and $mdp == "...")
{
echo '
<div align="right"><a href="forum.php">Retour</a></div>
<h1>Ecrire un message</h1>
<form method="post" action="post.php">
<p><b>Message :</b></p>
<textarea name="note" cols="50" rows="5" wrap="soft"></textarea>
<br />
<input type="submit" value="Envoi du message">
</form>
';
mysql_connect(SERVEUR, NOM, PASSE); //Connexion au serveur
mysql_select_db(BASE) //Ouverture de la base de données
or die("Ouverture base impossible");
//Si le champ note a bien été rempli
if($note <> "")
{
$note = str_replace("'", "\\'", $note); //Permet de gérer l'affichage des apostrophes
mysql_query("INSERT INTO forum(nom, date, note) VALUES('$id', SYSDATE(), '$note') ")
or die("Envoi impossible");
$_SESSION['note'] = ""; //Remise à zéro de la variable de la session
echo "Message envoyé !<br />";
}
//Si le champ note n'a pas été rempli
else
{
echo "Remplis la rubrique!";
}
}
//Si on ne reconnaît pas les identifiant et mot de passe
else
{
echo "Désolé tu n'as pas l'autorisation de voir le contenu de cette page<br /><br />";
}
J'ai programmé un petit forum pour mon site web où les gens à qui j'ai donné un mot de passe peuvent laisser un message. Le problème c'est que quand il y a une apostrophe dans le message, l'insertion dans la base de données SQL ne marche pas en ligne. Et quand je teste le script sur mon PC ça marche. J'envoie une partie de mon script. Merci pour vos idées.
Cordialement
Pascal
/***************************************/
session_start(); //Démarrage de session
...
//Acquisition des variables de session
$id=$_SESSION['id'];
$mdp=$_SESSION['mdp'];
if(isset($_REQUEST['note']))
{
$_SESSION['note'] = $_REQUEST['note'];
}
$note=$_SESSION['note'];
//Si on reconnaît les identifiant et mot de passe
if($id == "..." and $mdp == "...")
{
echo '
<div align="right"><a href="forum.php">Retour</a></div>
<h1>Ecrire un message</h1>
<form method="post" action="post.php">
<p><b>Message :</b></p>
<textarea name="note" cols="50" rows="5" wrap="soft"></textarea>
<br />
<input type="submit" value="Envoi du message">
</form>
';
mysql_connect(SERVEUR, NOM, PASSE); //Connexion au serveur
mysql_select_db(BASE) //Ouverture de la base de données
or die("Ouverture base impossible");
//Si le champ note a bien été rempli
if($note <> "")
{
$note = str_replace("'", "\\'", $note); //Permet de gérer l'affichage des apostrophes
mysql_query("INSERT INTO forum(nom, date, note) VALUES('$id', SYSDATE(), '$note') ")
or die("Envoi impossible");
$_SESSION['note'] = ""; //Remise à zéro de la variable de la session
echo "Message envoyé !<br />";
}
//Si le champ note n'a pas été rempli
else
{
echo "Remplis la rubrique!";
}
}
//Si on ne reconnaît pas les identifiant et mot de passe
else
{
echo "Désolé tu n'as pas l'autorisation de voir le contenu de cette page<br /><br />";
}
A voir également:
- Problème programmation forum PHP
- Abonnement iptv illegaal forum - Forum TV & Vidéo
- Application de programmation - Guide
- Abonnements IPTV moin chère - Forum Box et Streaming vidéo
- Easy php - Télécharger - Divers Web & Internet
- Plinko avis forum ✓ - Forum Vos droits sur internet
3 réponses
Salut,
Cela vient certainement de la valeur du magic_quotes_runtime.
Vérifie avec phpinfo() sur tes 2 serveurs.
Regarde du coté des fonctions PHP :
- addslashes() : ajoute des \ devant les '
- stripslashes() : supprimer les \
- get_magic_quotes_runtime() : est-ce que php ajoute des \ devant les ' ?
Un petit lien qui traite du sujet.
http://ccazajus.free.fr/2WEB/a1_apostrophe.php
A+, Crabs
Cela vient certainement de la valeur du magic_quotes_runtime.
Vérifie avec phpinfo() sur tes 2 serveurs.
Regarde du coté des fonctions PHP :
- addslashes() : ajoute des \ devant les '
- stripslashes() : supprimer les \
- get_magic_quotes_runtime() : est-ce que php ajoute des \ devant les ' ?
Un petit lien qui traite du sujet.
http://ccazajus.free.fr/2WEB/a1_apostrophe.php
A+, Crabs
Ne pas oublier de faire le addslashes() avant d'utiliser la chaine dans une
requête sql...
A+, crabs
requête sql...
A+, crabs
bonjour
j'ai fait il ya un an un site pour mon association www.association-taourirt.com ,,,,, comme je recois trop d'emails sur ma boite j'ai voulu fair eun forum de discution sur ce site mais pour la deuxieme fois je vois qu'il ya un intrus de publicité qui s'affiche sur la premiere page de ce forum soit sous forme page html la premiere fois soit comme image jpg cette fois, j'ai essayé de refaire encore pour la troisieme fois ce forum qui m'a demandé trop de temps encore le temps que j'ai pas et top aujourd'hui meme chose encore, j'en ai marre l'image s'appelle cyber raider un truc turk qui insulte des pays et que ça n'a rien avoir avec mon site qui est pour un but humanitaire.
aidez moi svp pour resoudre ce probleme qui m'epuise trop.
merci infiniment
kamal
j'ai fait il ya un an un site pour mon association www.association-taourirt.com ,,,,, comme je recois trop d'emails sur ma boite j'ai voulu fair eun forum de discution sur ce site mais pour la deuxieme fois je vois qu'il ya un intrus de publicité qui s'affiche sur la premiere page de ce forum soit sous forme page html la premiere fois soit comme image jpg cette fois, j'ai essayé de refaire encore pour la troisieme fois ce forum qui m'a demandé trop de temps encore le temps que j'ai pas et top aujourd'hui meme chose encore, j'en ai marre l'image s'appelle cyber raider un truc turk qui insulte des pays et que ça n'a rien avoir avec mon site qui est pour un but humanitaire.
aidez moi svp pour resoudre ce probleme qui m'epuise trop.
merci infiniment
kamal
Donc j'ai remplacé
$note = str_replace("'", "\\'", $note);
par:
if ( get_magic_quotes_gpc() )
$note = stripslashes($note);
mais cette fois ça ne marche ni sur mon PC ni sur mon serveur!
(ça continue à marcher quand il n'y a pas d'apostrophe)
merci pour vos idées