A voir également:
- [php] pb code ignoré
- Code asci - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code activation windows 10 - Guide
- Code gta 4 ps4 - Guide
32 réponses
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 659
18 janv. 2005 à 14:03
18 janv. 2005 à 14:03
Vu que à mon avis écrire dans le $_POST doit être ignoré, j'aurais plutôt fait:
$message = $_POST["message"]
$message=str_replace("\'","\\'",$message);
$message=str_replace("\\\"","¤¤",$message);
$message=str_replace("\n","",$message);
$message = $_POST["message"]
$message=str_replace("\'","\\'",$message);
$message=str_replace("\\\"","¤¤",$message);
$message=str_replace("\n","",$message);
Tout d'abord merci,
J'ai essayé ton code, à savoir:
$message=$_POST["message"];
$message=str_replace("\'","\\'",$message);
$message=str_replace("\\\"","¤¤",$message);
$message=str_replace("\n","",$message);
Mais maintenant, il ne fait plus qu'ignorer ce code, il bloque l'envoie du message s'il contient un de ces caractères. Par contre, ça marche qu'il n'en contient pas.
Arnaud
J'ai essayé ton code, à savoir:
$message=$_POST["message"];
$message=str_replace("\'","\\'",$message);
$message=str_replace("\\\"","¤¤",$message);
$message=str_replace("\n","",$message);
Mais maintenant, il ne fait plus qu'ignorer ce code, il bloque l'envoie du message s'il contient un de ces caractères. Par contre, ça marche qu'il n'en contient pas.
Arnaud
Voci le code actuel dans sa totalité:
<?
session_start ();
if (isset($_SESSION['login']) && isset($_SESSION['pwd']))
include('../Espacemembre/verifsession.php');
include('../Espacemembre/sql_connect.php');
$req=mysql_query("select pseudo from membres where login='$_SESSION[login]'");
$_POST["pseudo"]=mysql_result($req,0,"pseudo");
$req=mysql_query("select prenom from membres where login='$_SESSION[login]'");
$_POST["prenom"]=mysql_result($req,0,"prenom");
$req=mysql_query("select nom from membres where login='$_SESSION[login]'");
$_POST["nom"]=mysql_result($req,0,"nom");
ini_set("sendmail_from","me@localhost.com");
mysql_connect('localhost','root','');
mysql_select_db("arnaudsalley_db");
if (isset($_POST["submit"]))
{
$message=$_POST['message'];
$message=str_replace("\'","\\'",$message);
$message=str_replace("\\\"","¤¤",$message);
$message=str_replace("\n","",$message);
$date=date("Y-m-d H:i:s", time());
mysql_query("INSERT INTO livreor (id, nom, date, message)
VALUES ('','$_POST[pseudo]','$date','$message')");
$entetemail = "MIME-Version: 1.0\r\n";
$entetemail .= "Content-type: text/html; charset=iso-8859-1\r\n";
$entetemail .= "From: LBF Promotion 2002";
mail("webmaster@modeinpress.com","Nouveau message sur le livre d'or",
"
<b>Message de:</b> $_POST[pseudo]
<br><br><b>Date:</b>$date
<br><br><b>Message:</b><br><br> $message
",$entetemail);
echo "
<script LANGUAGE=\"JavaScript\">
parent.bas.location.href='livreormessages.php';
</script>
";
}
?>
personne ne peut m'aider?
merci d'avance,
Arnaud
<?
session_start ();
if (isset($_SESSION['login']) && isset($_SESSION['pwd']))
include('../Espacemembre/verifsession.php');
include('../Espacemembre/sql_connect.php');
$req=mysql_query("select pseudo from membres where login='$_SESSION[login]'");
$_POST["pseudo"]=mysql_result($req,0,"pseudo");
$req=mysql_query("select prenom from membres where login='$_SESSION[login]'");
$_POST["prenom"]=mysql_result($req,0,"prenom");
$req=mysql_query("select nom from membres where login='$_SESSION[login]'");
$_POST["nom"]=mysql_result($req,0,"nom");
ini_set("sendmail_from","me@localhost.com");
mysql_connect('localhost','root','');
mysql_select_db("arnaudsalley_db");
if (isset($_POST["submit"]))
{
$message=$_POST['message'];
$message=str_replace("\'","\\'",$message);
$message=str_replace("\\\"","¤¤",$message);
$message=str_replace("\n","",$message);
$date=date("Y-m-d H:i:s", time());
mysql_query("INSERT INTO livreor (id, nom, date, message)
VALUES ('','$_POST[pseudo]','$date','$message')");
$entetemail = "MIME-Version: 1.0\r\n";
$entetemail .= "Content-type: text/html; charset=iso-8859-1\r\n";
$entetemail .= "From: LBF Promotion 2002";
mail("webmaster@modeinpress.com","Nouveau message sur le livre d'or",
"
<b>Message de:</b> $_POST[pseudo]
<br><br><b>Date:</b>$date
<br><br><b>Message:</b><br><br> $message
",$entetemail);
echo "
<script LANGUAGE=\"JavaScript\">
parent.bas.location.href='livreormessages.php';
</script>
";
}
?>
personne ne peut m'aider?
merci d'avance,
Arnaud
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 659
18 janv. 2005 à 17:50
18 janv. 2005 à 17:50
mmmm... désole je ne suis pas un spécialiste du php :-)
Mais tu essai de modifier $_POST.
Or $_POST est fourni par la requête HTTP entrante.
Tu ne dois pas le modifier.
Tu ne peux que le lire (c'est ce que vient du client).
Mais tu essai de modifier $_POST.
Or $_POST est fourni par la requête HTTP entrante.
Tu ne dois pas le modifier.
Tu ne peux que le lire (c'est ce que vient du client).
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ben le problème c'est que j'y connais pas grand chose:
Faudrait que je fasse quoi dans ce cas alors?
Arnaud
Faudrait que je fasse quoi dans ce cas alors?
Arnaud
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 659
18 janv. 2005 à 18:27
18 janv. 2005 à 18:27
Si tu ne peux pas écrire dans $_POST, écris dans une nouvelle variable.
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 659
18 janv. 2005 à 20:29
18 janv. 2005 à 20:29
Dans ce cas, définit ta variable:
$mavariable = "toto
$mavariable = "toto
Moi ça me va... Je veux bien...
Mais de quelle manière? ;-)
Car je ne vois pas comment définir $message...
En tout cas merci...
Arnaud
Mais de quelle manière? ;-)
Car je ne vois pas comment définir $message...
En tout cas merci...
Arnaud
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
18 janv. 2005 à 20:48
18 janv. 2005 à 20:48
Salut,
Deux trois trucs, j'ai pas tout lu assidûment mais...
D'abord ta première condition (if (isset..........) n'ouvre aucune accolade.
Ensuite les requêtes vers la base de données se font avant la connexion à la base de données dans ton script. La logique voudrait le contraire.
Donc soit ces requêtes sont lancées nulle part, soit tu te reconnectes inutilement....(je pencherais plutôt pour la deuxième option vu que tu inclus une page appelée sqlconnect.php.)
Ensuiote
Et pour ton problème plus particulier, tu pourrais écrire:
juste après :
...et nous dire ce que ça affiche :-)
PS: Pour $message c'est bon tu as fait comme il fallait.
Deux trois trucs, j'ai pas tout lu assidûment mais...
D'abord ta première condition (if (isset..........) n'ouvre aucune accolade.
Ensuite les requêtes vers la base de données se font avant la connexion à la base de données dans ton script. La logique voudrait le contraire.
Donc soit ces requêtes sont lancées nulle part, soit tu te reconnectes inutilement....(je pencherais plutôt pour la deuxième option vu que tu inclus une page appelée sqlconnect.php.)
Ensuiote
<b>Message de:</b> $_POST[pseudo]est à remplacer par
<b>Message de:</b> $_POST['pseudo'](les guillemets). On retrouve la même erreur un peu au-dessus.
Et pour ton problème plus particulier, tu pourrais écrire:
echo $message;
juste après :
$message=str_replace("\n","",$message);
...et nous dire ce que ça affiche :-)
PS: Pour $message c'est bon tu as fait comme il fallait.
Li4uLlZvdHJlIGTpdm916SBzZXJ2aXRldXIuLi4u
Bonjour,
J'ai remplacé le code. Merci.
En ce qui concerne le echo $message; lorsque je l'inserts j'obtiens le message sur la meme page, en tout debut, sans aucune erreur, mais il ne l'ecrit pas dans la table. Et ce, uniquement lorsqu'il y a un caractère ennoncé dans str_replace. Sinon, ça marche très bien.
C'est grave docteur?
Arnaud
J'ai remplacé le code. Merci.
En ce qui concerne le echo $message; lorsque je l'inserts j'obtiens le message sur la meme page, en tout debut, sans aucune erreur, mais il ne l'ecrit pas dans la table. Et ce, uniquement lorsqu'il y a un caractère ennoncé dans str_replace. Sinon, ça marche très bien.
C'est grave docteur?
Arnaud
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
19 janv. 2005 à 13:32
19 janv. 2005 à 13:32
Salut,
Ok.
Mais sans la requête, le message s'affiche toujours bien? Et il n'ya pas de problème avec le str_replace? Ca filtre bien?
Ok.
Mais sans la requête, le message s'affiche toujours bien? Et il n'ya pas de problème avec le str_replace? Ca filtre bien?
Li4uLlZvdHJlIGTpdm916SBzZXJ2aXRldXIuLi4u
En fait, le message ne s'affiche pas au bon endroit. Il s'affiche sur la meme page que celle ou on ecrit le message, à un endroit ou il ne devrait pas. Mais il s'affiche bien meme si on insert les caractere se trouvant dans str_replace.
Si on n'insert pas ces caracteres, le message s'enregistre correctement dans la table et s'affiche dans la page de reception des messages.
Arnaud
Si on n'insert pas ces caracteres, le message s'enregistre correctement dans la table et s'affiche dans la page de reception des messages.
Arnaud
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
19 janv. 2005 à 15:06
19 janv. 2005 à 15:06
Ah c'est bizzare. Le echo $message c'était juste pour tester. Visiblement le problème ne vient pas du filtre.... Je ne sais pas d'où ça vient...
Li4uLlZvdHJlIGTpdm916SBzZXJ2aXRldXIuLi4u
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
19 janv. 2005 à 15:13
19 janv. 2005 à 15:13
Encore un test:
Ajoute cette ligne :
Puis essaie de reproduire un de ces fameux messages qui ne passent pas dans la base de données (à partir du formulaire d'envoi).
Puis dis moi ce que tu as tapé dans ce formulaire, puis ce qui est affiché à l'ecran après envoi :-)
Ajoute cette ligne :
echo "INSERT INTO livreor (id, nom, date, message) VALUES ('','$_POST[pseudo]','$date','$message' <br>";avant le echo $message;
Puis essaie de reproduire un de ces fameux messages qui ne passent pas dans la base de données (à partir du formulaire d'envoi).
Puis dis moi ce que tu as tapé dans ce formulaire, puis ce qui est affiché à l'ecran après envoi :-)
Li4uLlZvdHJlIGTpdm916SBzZXJ2aXRldXIuLi4u
Bon, j'ai essayé le code. J'ai ensuite fait deux tests: Une première fois avec un caractère dit "à problème". Voici le texte tapé: T'T et voici le message obtenu:
T'TINSERT INTO livreor (id, nom, date, message) VALUES ('','Superman','2005-01-19 14:54:46','T'T'
Le deuxième test, je l'ai fait avec du texte normal: meme message mais ecriture dasn la table.
T'TINSERT INTO livreor (id, nom, date, message) VALUES ('','Superman','2005-01-19 14:54:46','T'T'
Le deuxième test, je l'ai fait avec du texte normal: meme message mais ecriture dasn la table.
massimo501
Messages postés
37
Date d'inscription
jeudi 20 janvier 2005
Statut
Membre
Dernière intervention
2 janvier 2006
1
21 janv. 2005 à 13:58
21 janv. 2005 à 13:58
1er page : formulaire
<input ... nom ...>
2eme page
$nom=$_POST["nom"]
recupération de ta variable passée par page
si mnt tu veux l'enregistrer en session
(récup par session de tes variables)
il faut savoir 2 choses, la 1er c'est de savoir sur quelle version d'easy php tu es 1.6? 1.7? et la 2eme chose que utilises tu pour enregistrer tes variables de session?
car j'ai utilisé dans le temps la variable session_register("nomvariable"); fonctionnait nickel mais avec la vers easy php1.7 c'est plus le cas , pas d'erreur mais il n'y a rien dans mes variables comme si elles étaient vides!
véçu
-----
ben aucune faute dans le script mais j'arrivais pas à récupérer mes variables de session dans une autre page que celle créée
c a d ds la 1er ok ça fonctionne mais ds la suivante rien , vide
j'ai utilisé à la place de session_register( ) , $_SESSION["session_nom"] pour enregistrer mes variables de session
$session_nom=$_SESSION["session_nom"];
et là ça fonctionne nickel!
fait des echo de tes variables .
voilà
<input ... nom ...>
2eme page
$nom=$_POST["nom"]
recupération de ta variable passée par page
si mnt tu veux l'enregistrer en session
(récup par session de tes variables)
il faut savoir 2 choses, la 1er c'est de savoir sur quelle version d'easy php tu es 1.6? 1.7? et la 2eme chose que utilises tu pour enregistrer tes variables de session?
car j'ai utilisé dans le temps la variable session_register("nomvariable"); fonctionnait nickel mais avec la vers easy php1.7 c'est plus le cas , pas d'erreur mais il n'y a rien dans mes variables comme si elles étaient vides!
véçu
-----
ben aucune faute dans le script mais j'arrivais pas à récupérer mes variables de session dans une autre page que celle créée
c a d ds la 1er ok ça fonctionne mais ds la suivante rien , vide
j'ai utilisé à la place de session_register( ) , $_SESSION["session_nom"] pour enregistrer mes variables de session
$session_nom=$_SESSION["session_nom"];
et là ça fonctionne nickel!
fait des echo de tes variables .
voilà
Ben écoute, pour te répondre j'utilise easyphp 1,6... Mais je n'ai aucun problème pour récupérer mes variables, mais seulement pôur pouvoir passer certains caractères dans mon formulaire. Mise à part ça (quand les caractères sont absents), le formulaire fonctionne très bien... Tout mon problème est là...
Arnaud
Arnaud
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
22 janv. 2005 à 19:01
22 janv. 2005 à 19:01
Désolé pour la barre de défilement c'est à cause de ma signature. Je l'ai supprimée de mon profil comme ça plus de soucis :-)
Bon pour ton erreur, le problème c'est ta requête:
INSERT INTO livreor (id, nom, date, message) VALUES ('','Superman','2005-01-19 14:54:46','T'T')
Il ne devrait pas y avoir de guillemet simple qui se balade dans T'T.
Donc il faut que tu rajoutes cette ligne à la fin de tes str_replace():
$message=str_replace("'","\'",$message);
Et si ça ne marche pas, essaie :
$message=str_replace("'","\\'",$message);
Beau gosse... C'est tout ce que j'ai à dire...
T'as deuxième ligne à fonctionner...
Faut que je m'occupe du reste maintenant...
Pendant que j'y suis, tu penses quoi du streaming? J'ai quelques videos que je voudrais mettre en ligne sur mon site... C'est une bonne idée ou pas de le mettre en streaming? (Sachant que j'héberge sur mon ordi le site)
En tout cas merci pour tout, une fois de plus!
Arnaud
T'as deuxième ligne à fonctionner...
Faut que je m'occupe du reste maintenant...
Pendant que j'y suis, tu penses quoi du streaming? J'ai quelques videos que je voudrais mettre en ligne sur mon site... C'est une bonne idée ou pas de le mettre en streaming? (Sachant que j'héberge sur mon ordi le site)
En tout cas merci pour tout, une fois de plus!
Arnaud