Problème dans mon script php
Résolu/Fermé
Morpheus 50
Messages postés
43
Date d'inscription
mercredi 18 juin 2008
Statut
Membre
Dernière intervention
17 mars 2012
-
18 juin 2008 à 23:28
Morpheus 50 Messages postés 43 Date d'inscription mercredi 18 juin 2008 Statut Membre Dernière intervention 17 mars 2012 - 26 juin 2008 à 19:35
Morpheus 50 Messages postés 43 Date d'inscription mercredi 18 juin 2008 Statut Membre Dernière intervention 17 mars 2012 - 26 juin 2008 à 19:35
A voir également:
- Problème dans mon script php
- Script vidéo youtube - Guide
- Easy php - Télécharger - Divers Web & Internet
- Ghost script - Télécharger - Polices de caractères
- Microsoft activation script - Accueil - Windows
- Script bat - Guide
71 réponses
X-Fan
Messages postés
805
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
6 janvier 2010
24
18 juin 2008 à 23:43
18 juin 2008 à 23:43
Premier truc pas logique, c'est que tu fais un isset sur tes variables $_POST, ensuite tu les mets dans des variables normales si elles sont ok et tu re-valides que les autres variables ne sont pas empty. Ça fait deux fois la même validation de suite (à moins que je ne me trompe bien entendu) et c'est assez.. ridicule on va dire. M'enfin..
Ensuite, simple suggestion mais tu ne crois pas que ça fonctionnerait mieux si tu mettais des doubles = dans tes IF??
if($contenu = 'Contenu du message' or ($titre = 'Titre du message'))
devrait être
if($contenu == 'Contenu du message' or $titre == 'Titre du message')
Parce que sinon, y a pas de comparaison et donc il met toujours vrai!
Ensuite, simple suggestion mais tu ne crois pas que ça fonctionnerait mieux si tu mettais des doubles = dans tes IF??
if($contenu = 'Contenu du message' or ($titre = 'Titre du message'))
devrait être
if($contenu == 'Contenu du message' or $titre == 'Titre du message')
Parce que sinon, y a pas de comparaison et donc il met toujours vrai!
X-Fan
Messages postés
805
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
6 janvier 2010
24
18 juin 2008 à 23:57
18 juin 2008 à 23:57
Ah si tu mets htmlspecialchars(), tu peux oublier tes liens ;)
Le but de htmlspecialchars(), c'est de convertir tous les caractères HTML à leur code. Par exemple, < deviendra . Ceci afin d'éviter que des gens essaie d'écrire des scripts pour démolir ton site. Cela évite qu'ils écrivent du code qui pourrait être nocif au fonctionnement de ton site. C'est une façon simple de se protéger et assez efficace mais oublie tout ce qui est HTML dans ce cas.
Le but de htmlspecialchars(), c'est de convertir tous les caractères HTML à leur code. Par exemple, < deviendra . Ceci afin d'éviter que des gens essaie d'écrire des scripts pour démolir ton site. Cela évite qu'ils écrivent du code qui pourrait être nocif au fonctionnement de ton site. C'est une façon simple de se protéger et assez efficace mais oublie tout ce qui est HTML dans ce cas.
X-Fan
Messages postés
805
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
6 janvier 2010
24
19 juin 2008 à 02:04
19 juin 2008 à 02:04
Pour les variables, en fait j'y ai pensé mais je n'ai pas pu répondre plus tôt. Tu fais un trim() sur toutes les variables ce qui fait que si quelqu'un avait mis un caractère d'espace, il sera supprimé et donc on considérera que le champ n'était pas rempli. Comme ça, tu forces au moins la saisie d'un caractère normal ou plus (selon tes conditions IF). Donc laisse le.
Mais sinon, pour htmlentities et htmlspecialchars, je n'ai jamais cherché la différence. Ce serait intéressant de se renseigner. ;)
Et: la réponse ici: http://www.commentcamarche.net/faq/sujet 4479 php les ressemblances a ne pas confondre
D'ailleurs, lis cette page au complet, il semble y avoir des petits trucs bien intéressant dont la différence entre ces deux fonctions. Pour ma part, je vais la lire au complet, ça ne peut qu'être très instructif.
Voilà, si tu as d'autres questions, n'hésite pas à repasser par là. :)
EDIT: Pardon, je suis tête en l'air. Pour ta question de lien, tu pourrais mettre du BB code oui. Tu indiques au personnes d'utiliser la balise [url]lien[/url] ou [url=]texte[/url]. Ensuite, lorsque tu récupères ton texte, tu vérifies s'il y a la présence de [url] ou de [url=. Si oui, tu modifies avec un strreplace pour transformer le tout en code HTML. Ainsi, ce n'est pas l'utilisateur qui le fait mais toi et donc tu ne mettras pas de code nocif (à moins que tu ne sois tordu et que tu te prennes pour cible lol). Ce serait une petite fonction à programmer. Pas très compliqué en plus. Il te suffi juste d'élaborer toutes les possibilités avant de programmer pour ne rien oublier. Tu pourrais ainsi leur permettre l'utilisation de [b], [u] et tout autre balise de ton choix que tu traiterais avec un autre strreplace.
Mais sinon, pour htmlentities et htmlspecialchars, je n'ai jamais cherché la différence. Ce serait intéressant de se renseigner. ;)
Et: la réponse ici: http://www.commentcamarche.net/faq/sujet 4479 php les ressemblances a ne pas confondre
D'ailleurs, lis cette page au complet, il semble y avoir des petits trucs bien intéressant dont la différence entre ces deux fonctions. Pour ma part, je vais la lire au complet, ça ne peut qu'être très instructif.
Voilà, si tu as d'autres questions, n'hésite pas à repasser par là. :)
EDIT: Pardon, je suis tête en l'air. Pour ta question de lien, tu pourrais mettre du BB code oui. Tu indiques au personnes d'utiliser la balise [url]lien[/url] ou [url=]texte[/url]. Ensuite, lorsque tu récupères ton texte, tu vérifies s'il y a la présence de [url] ou de [url=. Si oui, tu modifies avec un strreplace pour transformer le tout en code HTML. Ainsi, ce n'est pas l'utilisateur qui le fait mais toi et donc tu ne mettras pas de code nocif (à moins que tu ne sois tordu et que tu te prennes pour cible lol). Ce serait une petite fonction à programmer. Pas très compliqué en plus. Il te suffi juste d'élaborer toutes les possibilités avant de programmer pour ne rien oublier. Tu pourrais ainsi leur permettre l'utilisation de [b], [u] et tout autre balise de ton choix que tu traiterais avec un autre strreplace.
X-Fan
Messages postés
805
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
6 janvier 2010
24
19 juin 2008 à 15:32
19 juin 2008 à 15:32
Non, laisse les deux (isset et empty). Parce que si une personne vide une case et mets un espace vide dedans, la variable $_POST sera "set" mais ensuite tu fais un trim() et tu revérifie si la variable n'est pas empty. Je suppose que si trim() retire le seul espace qu'il y a, alors la variable se retrouve vide. Tu peux toujours faire le test et tu verras bien.
La balise a c'est <a href="...">texte</a>. C'est ce que tu faisais??
La balise a c'est <a href="...">texte</a>. C'est ce que tu faisais??
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
X-Fan
Messages postés
805
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
6 janvier 2010
24
19 juin 2008 à 15:53
19 juin 2008 à 15:53
Tu n'as jamais placer l'adresse de l'expéditeur dans ton header ;)
Modifie pour quelque chose du genre:
$headers = "From: ".$exp;
$headers .='MIME-Version: 1.0' . "\r\n";
$headers .='Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .='Content-Transfer-Encoding: 8bit';
Modifie pour quelque chose du genre:
$headers = "From: ".$exp;
$headers .='MIME-Version: 1.0' . "\r\n";
$headers .='Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .='Content-Transfer-Encoding: 8bit';
X-Fan
Messages postés
805
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
6 janvier 2010
24
18 juin 2008 à 23:29
18 juin 2008 à 23:29
Montre le script :O
Morpheus 50
Messages postés
43
Date d'inscription
mercredi 18 juin 2008
Statut
Membre
Dernière intervention
17 mars 2012
18 juin 2008 à 23:32
18 juin 2008 à 23:32
Oui désolé j'ai eu un problème dans mon envoi :p
voila la page: http://useful.and.free.fr
et le code (je n'ai pas trouvé de balises pour le code):
(merci de préciser vos réponse car je suis débutant)
<?php
include("banniere_menu.php");
?>
<div id="corps">
<div class="titre_corps"><h2>Envoi de mail</h2></div>
<div class="corps_corps">
<?php
if( isset($_POST['e_mail_expediteur'], $_POST['e_mail_destinataire'], $_POST['contenu_message'], $_POST['titre_message']))
{
$exp = trim(htmlspecialchars($_POST['e_mail_expediteur']));
$dest = trim(htmlspecialchars($_POST['e_mail_destinataire']));
$contenu = trim(htmlspecialchars(stripslashes($_POST['contenu_message'])));
$titre = trim(htmlspecialchars(stripslashes($_POST['titre_message'])));
if ( !empty($exp) && !empty($dest) && !empty($contenu) && !empty($titre))
{
if (preg_match("#^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-zA-Z]{2,4}$#", $exp) and (preg_match("#^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-zA-Z]{2,4}$#", $dest)))
{
if($contenu = 'Contenu du message' or($titre = 'Titre du message'))
{
echo 'Veuiller remplir toutes les cases';
}
else
{
$headers ='MIME-Version: 1.0' . "\r\n";
$headers .='Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .='Content-Transfer-Encoding: 8bit';
$message ='<html><head><title> '.$titre.' </title></head><body> '.$contenu.' </body></html>';
if(mail($dest, $titre, $message, $headers))
{
echo 'L\'e-mail a été envoyé à ' . $dest . ' avec l\'adresse ' . $exp . '.<br/> <a href="blague.php">Revenir à la page précédente</a></p>' ;
}
else
{
echo '<p> L\'e-mail n\'a pas pu être envoyé. <br/> <a href="blague.php">Revenir à la page précédente</a></p>' ;
}
}
}
else
{
echo 'Veuillez indiquer une adresse e-mail valide.';
}
}
}
else
{
?>
<p>Fais une blague à tes amis: envoies leur un e-mail en se faisant passer pour quelqu'un d'autre:
<form method="post" action="blague.php" class="formulaire">
<label for="e_mail_expediteur">L'adresse e-mail pour laquelle vous voulez vous faire passer:</label><br /><input type="text" id="e_mail_expediteur" name="e_mail_expediteur" size="40" maxlength="40" value="E-mail expediteur" onfocus="if(value=='E-mail expediteur'){value=''}" onblur="if(value==''){value='E-mail expediteur'}" tabindex="1" /><br />
<label for="e_mail_destinataire">L'adresse de la personne à qui vous voulez envoyer l'e-mail:</label><br /><input type="text" id="e_mail_destinataire" name="e_mail_destinataire" size="40" maxlength="40" value="E-mail destinataire" onfocus="if(value=='E-mail destinataire'){value=''}" onblur="if(value==''){value='E-mail destinataire'}" tabindex="2" /><br />
<label for="titre_message">Le titre du message à envoyer:</label><br /><input type="text" id="titre_message" name="titre_message" size="40" maxlength="50" value="Titre du message" onfocus="if(value=='Titre du message'){value=''}" onblur="if(value==''){value='Titre du message'}" tabindex="3" /><br />
<label for="contenu_message">Le message à envoyer:</label><br /><textarea type="text" id="contenu_message" name="contenu_message" rows="5" cols="50" onfocus="if(value=='Contenu du message'){value=''}" onblur="if(value==''){value='Contenu du message'}" tabindex="4">Contenu du message</textarea><br /><br />
<input type="submit" value="Envoyer" tabindex="5" />
</form>
</p>
<?php
}
include("pied_de_page.php");
?>
voila la page: http://useful.and.free.fr
et le code (je n'ai pas trouvé de balises pour le code):
(merci de préciser vos réponse car je suis débutant)
<?php
include("banniere_menu.php");
?>
<div id="corps">
<div class="titre_corps"><h2>Envoi de mail</h2></div>
<div class="corps_corps">
<?php
if( isset($_POST['e_mail_expediteur'], $_POST['e_mail_destinataire'], $_POST['contenu_message'], $_POST['titre_message']))
{
$exp = trim(htmlspecialchars($_POST['e_mail_expediteur']));
$dest = trim(htmlspecialchars($_POST['e_mail_destinataire']));
$contenu = trim(htmlspecialchars(stripslashes($_POST['contenu_message'])));
$titre = trim(htmlspecialchars(stripslashes($_POST['titre_message'])));
if ( !empty($exp) && !empty($dest) && !empty($contenu) && !empty($titre))
{
if (preg_match("#^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-zA-Z]{2,4}$#", $exp) and (preg_match("#^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-zA-Z]{2,4}$#", $dest)))
{
if($contenu = 'Contenu du message' or($titre = 'Titre du message'))
{
echo 'Veuiller remplir toutes les cases';
}
else
{
$headers ='MIME-Version: 1.0' . "\r\n";
$headers .='Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .='Content-Transfer-Encoding: 8bit';
$message ='<html><head><title> '.$titre.' </title></head><body> '.$contenu.' </body></html>';
if(mail($dest, $titre, $message, $headers))
{
echo 'L\'e-mail a été envoyé à ' . $dest . ' avec l\'adresse ' . $exp . '.<br/> <a href="blague.php">Revenir à la page précédente</a></p>' ;
}
else
{
echo '<p> L\'e-mail n\'a pas pu être envoyé. <br/> <a href="blague.php">Revenir à la page précédente</a></p>' ;
}
}
}
else
{
echo 'Veuillez indiquer une adresse e-mail valide.';
}
}
}
else
{
?>
<p>Fais une blague à tes amis: envoies leur un e-mail en se faisant passer pour quelqu'un d'autre:
<form method="post" action="blague.php" class="formulaire">
<label for="e_mail_expediteur">L'adresse e-mail pour laquelle vous voulez vous faire passer:</label><br /><input type="text" id="e_mail_expediteur" name="e_mail_expediteur" size="40" maxlength="40" value="E-mail expediteur" onfocus="if(value=='E-mail expediteur'){value=''}" onblur="if(value==''){value='E-mail expediteur'}" tabindex="1" /><br />
<label for="e_mail_destinataire">L'adresse de la personne à qui vous voulez envoyer l'e-mail:</label><br /><input type="text" id="e_mail_destinataire" name="e_mail_destinataire" size="40" maxlength="40" value="E-mail destinataire" onfocus="if(value=='E-mail destinataire'){value=''}" onblur="if(value==''){value='E-mail destinataire'}" tabindex="2" /><br />
<label for="titre_message">Le titre du message à envoyer:</label><br /><input type="text" id="titre_message" name="titre_message" size="40" maxlength="50" value="Titre du message" onfocus="if(value=='Titre du message'){value=''}" onblur="if(value==''){value='Titre du message'}" tabindex="3" /><br />
<label for="contenu_message">Le message à envoyer:</label><br /><textarea type="text" id="contenu_message" name="contenu_message" rows="5" cols="50" onfocus="if(value=='Contenu du message'){value=''}" onblur="if(value==''){value='Contenu du message'}" tabindex="4">Contenu du message</textarea><br /><br />
<input type="submit" value="Envoyer" tabindex="5" />
</form>
</p>
<?php
}
include("pied_de_page.php");
?>
Morpheus 50
Messages postés
43
Date d'inscription
mercredi 18 juin 2008
Statut
Membre
Dernière intervention
17 mars 2012
18 juin 2008 à 23:34
18 juin 2008 à 23:34
a c'est peut etre ça (pour la balise):
Sinon je m'excuse du double post je ne suis pas habitué à ce forum.
Sinon je m'excuse du double post je ne suis pas habitué à ce forum.
<?php include("banniere_menu.php"); ?> <div id="corps"> <div class="titre_corps"><h2>Envoi de mail</h2></div> <div class="corps_corps"> <?php if( isset($_POST['e_mail_expediteur'], $_POST['e_mail_destinataire'], $_POST['contenu_message'], $_POST['titre_message'])) { $exp = trim(htmlspecialchars($_POST['e_mail_expediteur'])); $dest = trim(htmlspecialchars($_POST['e_mail_destinataire'])); $contenu = trim(htmlspecialchars(stripslashes($_POST['contenu_message']))); $titre = trim(htmlspecialchars(stripslashes($_POST['titre_message']))); if ( !empty($exp) && !empty($dest) && !empty($contenu) && !empty($titre)) { if (preg_match("#^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-zA-Z]{2,4}$#", $exp) and (preg_match("#^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-zA-Z]{2,4}$#", $dest))) { if($contenu = 'Contenu du message' or($titre = 'Titre du message')) { echo 'Veuiller remplir toutes les cases'; } else { $headers ='MIME-Version: 1.0' . "\r\n"; $headers .='Content-type: text/html; charset=iso-8859-1' . "\r\n"; $headers .='Content-Transfer-Encoding: 8bit'; $message ='<html><head><title> '.$titre.' </title></head><body> '.$contenu.' </body></html>'; if(mail($dest, $titre, $message, $headers)) { echo 'L\'e-mail a été envoyé à ' . $dest . ' avec l\'adresse ' . $exp . '.<br/> <a href="blague.php">Revenir à la page précédente</a></p>' ; } else { echo '<p> L\'e-mail n\'a pas pu être envoyé. <br/> <a href="blague.php">Revenir à la page précédente</a></p>' ; } } } else { echo 'Veuillez indiquer une adresse e-mail valide.'; } } } else { ?> <p>Fais une blague à tes amis: envoies leur un e-mail en se faisant passer pour quelqu'un d'autre: <form method="post" action="blague.php" class="formulaire"> <label for="e_mail_expediteur">L'adresse e-mail pour laquelle vous voulez vous faire passer:</label><br /><input type="text" id="e_mail_expediteur" name="e_mail_expediteur" size="40" maxlength="40" value="E-mail expediteur" onfocus="if(value=='E-mail expediteur'){value=''}" onblur="if(value==''){value='E-mail expediteur'}" tabindex="1" /><br /> <label for="e_mail_destinataire">L'adresse de la personne à qui vous voulez envoyer l'e-mail:</label><br /><input type="text" id="e_mail_destinataire" name="e_mail_destinataire" size="40" maxlength="40" value="E-mail destinataire" onfocus="if(value=='E-mail destinataire'){value=''}" onblur="if(value==''){value='E-mail destinataire'}" tabindex="2" /><br /> <label for="titre_message">Le titre du message à envoyer:</label><br /><input type="text" id="titre_message" name="titre_message" size="40" maxlength="50" value="Titre du message" onfocus="if(value=='Titre du message'){value=''}" onblur="if(value==''){value='Titre du message'}" tabindex="3" /><br /> <label for="contenu_message">Le message à envoyer:</label><br /><textarea type="text" id="contenu_message" name="contenu_message" rows="5" cols="50" onfocus="if(value=='Contenu du message'){value=''}" onblur="if(value==''){value='Contenu du message'}" tabindex="4">Contenu du message</textarea><br /><br /> <input type="submit" value="Envoyer" tabindex="5" /> </form> </p> <?php } include("pied_de_page.php"); ?>
Morpheus 50
Messages postés
43
Date d'inscription
mercredi 18 juin 2008
Statut
Membre
Dernière intervention
17 mars 2012
18 juin 2008 à 23:53
18 juin 2008 à 23:53
Arf bravo en effet c'est bon pour le double =
Sinon j'ai d'autres questions:
*Pour le coup des isset et du empty, je sais pas trop j'ai suivi les tutos du sdz et ils faisaient comme ça, mais je sais pas si c'est mieux ou pas (je m'étais déjà fais cette reflexion la mais je me suis dis que c'étais pas grave). Enfin bon tant que ça marche :D
*J'ai utilisé htmlspecialchars() pour sécuriser mon formulaire. Seulement je ne sais pas trop à quoi il sert et si il est vraiment efficace comme je l'ai miq (je veux protéger mon site de toutes attaques php, sql et tout).
*Est-ce que je pourrais utiliser du html dans mon mail? Parce que j'aimerais bien pouvoir mettre des liens <a></a> mais quand j'en met pour l'instant (avec htmlspecialchars() ou sans) le lien ne marche pas mais le texte dans le lien est souligné et est en bleu. Donc je comprend pas trop!
*Je voudrais ne pas avori les \ avant les ' et les " dans mon mail. On m'a dis d'utiliser stripslashes() mais il n'est pas efficace. L'ais-je mal utilisé ou ce n'est pas la bonne fonction.
Voilà tout un tas de question qui n'attendent qu'une réponse de la part de quelqu'un d'aimable comme X-Fan :)
edit: nan c'est bon pourle coup des htmlspecialchars() et stripslashes() vu que ça buggait je n'avais pas vu la différence. Mon site est il bien protégé avec le htmlspecialchars()?
Par contre vu que je ne peux plus utiliser d'html dans mon mail, y a t'il un autre moyen d'afficher des liens dans l'e-mail?
Sinon j'ai d'autres questions:
*Pour le coup des isset et du empty, je sais pas trop j'ai suivi les tutos du sdz et ils faisaient comme ça, mais je sais pas si c'est mieux ou pas (je m'étais déjà fais cette reflexion la mais je me suis dis que c'étais pas grave). Enfin bon tant que ça marche :D
*J'ai utilisé htmlspecialchars() pour sécuriser mon formulaire. Seulement je ne sais pas trop à quoi il sert et si il est vraiment efficace comme je l'ai miq (je veux protéger mon site de toutes attaques php, sql et tout).
*Est-ce que je pourrais utiliser du html dans mon mail? Parce que j'aimerais bien pouvoir mettre des liens <a></a> mais quand j'en met pour l'instant (avec htmlspecialchars() ou sans) le lien ne marche pas mais le texte dans le lien est souligné et est en bleu. Donc je comprend pas trop!
*Je voudrais ne pas avori les \ avant les ' et les " dans mon mail. On m'a dis d'utiliser stripslashes() mais il n'est pas efficace. L'ais-je mal utilisé ou ce n'est pas la bonne fonction.
Voilà tout un tas de question qui n'attendent qu'une réponse de la part de quelqu'un d'aimable comme X-Fan :)
edit: nan c'est bon pourle coup des htmlspecialchars() et stripslashes() vu que ça buggait je n'avais pas vu la différence. Mon site est il bien protégé avec le htmlspecialchars()?
Par contre vu que je ne peux plus utiliser d'html dans mon mail, y a t'il un autre moyen d'afficher des liens dans l'e-mail?
Morpheus 50
Messages postés
43
Date d'inscription
mercredi 18 juin 2008
Statut
Membre
Dernière intervention
17 mars 2012
19 juin 2008 à 00:00
19 juin 2008 à 00:00
D'accord merci beaucoup mais y a til une autre manière de mettre un lien dans mon e-mail? (genre bbcode (ça marche pas mais un truc du genre)). Sinon est tu sur que je ne cours aucun danger avec ça? et quelle différence avec htmlentities()?
edit: au fait pour l'histoire du isset, je crois me rapeller qu'on vérifie au début si les variables existe (si on a cliqué sur le bouton envoyé) et après si elles ne sont pas vides (elles peuvent exister et être vide) sauf que moi j'ai rajouté des choses entre les deux. Mais encore une fois je ne suis pas sur je reposerais la question pour vérifier.
edit: au fait pour l'histoire du isset, je crois me rapeller qu'on vérifie au début si les variables existe (si on a cliqué sur le bouton envoyé) et après si elles ne sont pas vides (elles peuvent exister et être vide) sauf que moi j'ai rajouté des choses entre les deux. Mais encore une fois je ne suis pas sur je reposerais la question pour vérifier.
Morpheus 50
Messages postés
43
Date d'inscription
mercredi 18 juin 2008
Statut
Membre
Dernière intervention
17 mars 2012
19 juin 2008 à 10:52
19 juin 2008 à 10:52
Merci X-fan ;)
Ok donc il faudrait faire un parseur en gros? Seulement avant que je ne mette la foction htmlspecialchars(), le html ne marchait pas bien: le texte du lien était en bleu et souligné, mais il ne pointait vers rien mais on ne voyais pas la balise <a>! Donc je ne sais pas d'ou ça vient, si quelqu'un avait une idée. Sinon pour le isset et le empty, c'est bon comme ça ou je peux enlever le isset et mettre le empty à la place?
edit: Par contre je réfléchi et je me dis que je n'ai peut etre besoin que du isset et pas du empty pour la simple raison que si tu regaardes mon formulaire, il y aura toujours quelque chose dans les cases, ele ne sont jamais vides car si elle est vide, la value revient donc le empty ne sert à rien vu qu'elle ne sont jamais vides! De plus j'ai déjà vérifié auparavant si la variable existait! Je me trompe? Parce que je viens de faire la modif et j'ai l'impression que ça marche aussi bien.
Par contre j'ai un autre problème majeur:
Depuis que j'ai fais quelques modifications de sécurité dans mon code, l'e-mail envoyé porte l'adresse de mon site (useful.and@free.fr) alors que le but de ce script est qu'il porte l'adresse donnée dans le formulaire. Avant ça marchait et maintenant ça marche plus je ne comprend pas pourquoi! Je redonne l'adresse pour ne pas être obligé de refouiller le topic pour la trouver :p ( http://useful.and.free.fr/blague.php ) et le code je le met d'ici 5 minutes dans un fichier texte à cette adresse: http://useful.and.free.fr/code_blague.txt
Merci d'avance
ps: au fait, très intéressante la page, j'ai appris beaucoup de choses merci!
Ok donc il faudrait faire un parseur en gros? Seulement avant que je ne mette la foction htmlspecialchars(), le html ne marchait pas bien: le texte du lien était en bleu et souligné, mais il ne pointait vers rien mais on ne voyais pas la balise <a>! Donc je ne sais pas d'ou ça vient, si quelqu'un avait une idée. Sinon pour le isset et le empty, c'est bon comme ça ou je peux enlever le isset et mettre le empty à la place?
edit: Par contre je réfléchi et je me dis que je n'ai peut etre besoin que du isset et pas du empty pour la simple raison que si tu regaardes mon formulaire, il y aura toujours quelque chose dans les cases, ele ne sont jamais vides car si elle est vide, la value revient donc le empty ne sert à rien vu qu'elle ne sont jamais vides! De plus j'ai déjà vérifié auparavant si la variable existait! Je me trompe? Parce que je viens de faire la modif et j'ai l'impression que ça marche aussi bien.
Par contre j'ai un autre problème majeur:
Depuis que j'ai fais quelques modifications de sécurité dans mon code, l'e-mail envoyé porte l'adresse de mon site (useful.and@free.fr) alors que le but de ce script est qu'il porte l'adresse donnée dans le formulaire. Avant ça marchait et maintenant ça marche plus je ne comprend pas pourquoi! Je redonne l'adresse pour ne pas être obligé de refouiller le topic pour la trouver :p ( http://useful.and.free.fr/blague.php ) et le code je le met d'ici 5 minutes dans un fichier texte à cette adresse: http://useful.and.free.fr/code_blague.txt
Merci d'avance
ps: au fait, très intéressante la page, j'ai appris beaucoup de choses merci!
Morpheus 50
Messages postés
43
Date d'inscription
mercredi 18 juin 2008
Statut
Membre
Dernière intervention
17 mars 2012
19 juin 2008 à 13:41
19 juin 2008 à 13:41
UP, toujours pas résolu ;)
Morpheus 50
Messages postés
43
Date d'inscription
mercredi 18 juin 2008
Statut
Membre
Dernière intervention
17 mars 2012
19 juin 2008 à 15:45
19 juin 2008 à 15:45
a oui en effet bien joué pour l'espace :D
Sinon en effet c'est ce que je faisais pour les liens :D et ça marchait pas!
Mais pour l'instant mon gros problème, c'est que après les modifications que j'ai faites, l'e-mail envoyé porte l'adresse de mon site et non l'adresse du formulaire!! Et ça c'est un gros problème je sais pas du tout d'où ça vient. J'ai redonner le code au dessus. La je galère vraiment ça a pas avancé depuis tout à l'heure!
Sinon en effet c'est ce que je faisais pour les liens :D et ça marchait pas!
Mais pour l'instant mon gros problème, c'est que après les modifications que j'ai faites, l'e-mail envoyé porte l'adresse de mon site et non l'adresse du formulaire!! Et ça c'est un gros problème je sais pas du tout d'où ça vient. J'ai redonner le code au dessus. La je galère vraiment ça a pas avancé depuis tout à l'heure!
Morpheus 50
Messages postés
43
Date d'inscription
mercredi 18 juin 2008
Statut
Membre
Dernière intervention
17 mars 2012
19 juin 2008 à 16:08
19 juin 2008 à 16:08
Oula merci de me rapeller que je suis bête à ce point :P
En effet ça e risquais pas de marcher comme ça ^^
J'ai juste modifié ton code car tu avais oublié le "\r\n" et ça ne marchais pas. Par contre je voudrais bien savoir a quoi il sert le "\r\n" a la fin de chaques headers! Et aussi savoir pourquoi on met des .= pour les headers sauf pour le premier ou on met juste = ??
En effet ça e risquais pas de marcher comme ça ^^
J'ai juste modifié ton code car tu avais oublié le "\r\n" et ça ne marchais pas. Par contre je voudrais bien savoir a quoi il sert le "\r\n" a la fin de chaques headers! Et aussi savoir pourquoi on met des .= pour les headers sauf pour le premier ou on met juste = ??
X-Fan
Messages postés
805
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
6 janvier 2010
24
19 juin 2008 à 16:20
19 juin 2008 à 16:20
Alors,
\r\n sert pour les retour de ligne et retour de chariot. Tu mets le header sur plusieurs lignes car chaque chose doit être sur une ligne différente pour les séparer distinctement.
Pour le .=, c'est une concaténation.
Je te donne un exemple.
$toto = 'salut';
Pour ajouter du texte après salut, je pourrais faire:
$toto = 'salut la compagnie';
Cependant, il se pourrait que je ne connaisse pas le contenu de $toto. Donc je pourrais faire:
$toto = 'bonjour';
$toto = $toto.' la compagnie';
echo $toto; --> bonjour la compagnie
La même instruction avec .=
$toto = 'bonjour';
$toto .= ' la compagnie';
echo $toto; --> bonjour la compagnie
Autre exemple avec les chiffres (plus connu peut-être):
$nombre = 1;
$nombre = $nombre + 1;
Je pourrais aussi faire $nombre += 1;
Le résultat serait le même pour les deux lignes ;)
\r\n sert pour les retour de ligne et retour de chariot. Tu mets le header sur plusieurs lignes car chaque chose doit être sur une ligne différente pour les séparer distinctement.
Pour le .=, c'est une concaténation.
Je te donne un exemple.
$toto = 'salut';
Pour ajouter du texte après salut, je pourrais faire:
$toto = 'salut la compagnie';
Cependant, il se pourrait que je ne connaisse pas le contenu de $toto. Donc je pourrais faire:
$toto = 'bonjour';
$toto = $toto.' la compagnie';
echo $toto; --> bonjour la compagnie
La même instruction avec .=
$toto = 'bonjour';
$toto .= ' la compagnie';
echo $toto; --> bonjour la compagnie
Autre exemple avec les chiffres (plus connu peut-être):
$nombre = 1;
$nombre = $nombre + 1;
Je pourrais aussi faire $nombre += 1;
Le résultat serait le même pour les deux lignes ;)
Morpheus 50
Messages postés
43
Date d'inscription
mercredi 18 juin 2008
Statut
Membre
Dernière intervention
17 mars 2012
19 juin 2008 à 16:33
19 juin 2008 à 16:33
Ah d'accord c'est aussi ce que je me disais mais c'est le fait que le. ou le plus soit avant le = qui me dérangeais :D
Merci beaucoup pour toutes tes explications!
J'ai encore deux ou trois petites questions un peu moins importantes ^^
*Un problème que je viens de détecter, c'est que free bloque l'envoi du mail si l'adresse apparait comme du spam
essayez par exemple d'envoyer un e-mail avec l'adresse addfghrtshjydjtjr@hotnsil.fr (exemple qui marche) il dit que l'e-mail a été envoyé alors que il y a une erreur de free qui dit qu'il n'a pas été envoyé car free detecte un spam. Donc j'aimerais pouvoir faire quelque chose pour que quand free bloque l'envoi je mette autre chose que "l'email a été envoyé" et dire à la personne de changer l'adresse.
*J'aimerais aussi savoir dans quels cas l'e-mail est détécté comme spam (comment font-ils) pour le serveur de free qui envoie le mail ainsi que pour les boites mails qui mettent le mail dans le dossier spam (je sais c'est différeents pour chaques mais des règles générales quoi)
*Sinon si je veux faire un parseur pour pouvoir mettre des liens dans le mail et mettre en gras....
Je sais comment faire pour remplacer <lien url="***">ici</lien> par le vrai html <a href="***">ici</a> mais je ne sais pas comment faire pour faire comme sur ccm par exemple des boutons qui insere les balises dans la case. Je pense qu'il existe des bon tutos pour faire ça donc si quelqu'un en avait un à me conseiller...
Sinon je voulais te remercier pour ton aide X-fan car tu m'as vraiment été utile tout au long de mon script!
Merci beaucoup pour toutes tes explications!
J'ai encore deux ou trois petites questions un peu moins importantes ^^
*Un problème que je viens de détecter, c'est que free bloque l'envoi du mail si l'adresse apparait comme du spam
essayez par exemple d'envoyer un e-mail avec l'adresse addfghrtshjydjtjr@hotnsil.fr (exemple qui marche) il dit que l'e-mail a été envoyé alors que il y a une erreur de free qui dit qu'il n'a pas été envoyé car free detecte un spam. Donc j'aimerais pouvoir faire quelque chose pour que quand free bloque l'envoi je mette autre chose que "l'email a été envoyé" et dire à la personne de changer l'adresse.
*J'aimerais aussi savoir dans quels cas l'e-mail est détécté comme spam (comment font-ils) pour le serveur de free qui envoie le mail ainsi que pour les boites mails qui mettent le mail dans le dossier spam (je sais c'est différeents pour chaques mais des règles générales quoi)
*Sinon si je veux faire un parseur pour pouvoir mettre des liens dans le mail et mettre en gras....
Je sais comment faire pour remplacer <lien url="***">ici</lien> par le vrai html <a href="***">ici</a> mais je ne sais pas comment faire pour faire comme sur ccm par exemple des boutons qui insere les balises dans la case. Je pense qu'il existe des bon tutos pour faire ça donc si quelqu'un en avait un à me conseiller...
Sinon je voulais te remercier pour ton aide X-fan car tu m'as vraiment été utile tout au long de mon script!
X-Fan
Messages postés
805
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
6 janvier 2010
24
19 juin 2008 à 16:42
19 juin 2008 à 16:42
Tu as essayé de mettre une adresse bidon d'expéditeur et il refuse de l'envoyé (même si l'adresse du destinataire est bonne)? As-tu essayé de mettre deux adresses valides pour être certain que free ne bloque tout simplement pas l'envoi de mail?
Je ne sais pas comment fonctionne free mais leur serveur analyse la gueule des mails et décide si c'est une adresse valide ou pas. Peut-être qu'ils ont une banque d'extension (après le @) et qu'il ne laisse passer que les mail ayant une de ses extensions (et elles sont connues genre hotmail, yahoo, aol, etc). Je ne sais pas du tout comment il fonctionne vraiment. Tu devrais leur demander, ce sera mieux.
Généralement, les spams sont signalés par les utilisateurs et ajoutés dans une liste. Mais ils ont sans doute des script qui détecte les adresses courriels les plus illogiques. J'en sais vraiment rien lol. Je sais que hotmail construit une bonne partie de sa liste de spam quand les utilisateurs signalent une adresse (ou un domaine) comme du spam.
Et pour le bouton, j'en sais rien du tout. J'ai jamais cherché en fait. Mais il doit y avoir moyen de faire un bouton "onSubmit" qui récupère le texte courant du textaera, ajoute la balise et remet le texte modifié dedans. Il faudrait chercher sur Internet.
EDIT: je ne sais pas si tu sais l'anglais mais bref. Une piste: http://www.developer.be/forums/index.cfm/fuseaction/dsp_full_thread/fullthreadid/204/forumID/10.htm
C'est ce que je disais. Tu récupères le contenu de la variable avec javascript, tu la modifies et tu le renvois dedans directement. Et tu peux garder une variable global javascript pour vérifier si la balise est déjà ouverte ou pas (tu modifies le statut genre si la variable "isbold" est à 0, alors pas ouvert si c'est à 1, c'est déjà ouvert). Et donc tu insères la bonne balise en fonction de ça.
Je ne sais pas comment fonctionne free mais leur serveur analyse la gueule des mails et décide si c'est une adresse valide ou pas. Peut-être qu'ils ont une banque d'extension (après le @) et qu'il ne laisse passer que les mail ayant une de ses extensions (et elles sont connues genre hotmail, yahoo, aol, etc). Je ne sais pas du tout comment il fonctionne vraiment. Tu devrais leur demander, ce sera mieux.
Généralement, les spams sont signalés par les utilisateurs et ajoutés dans une liste. Mais ils ont sans doute des script qui détecte les adresses courriels les plus illogiques. J'en sais vraiment rien lol. Je sais que hotmail construit une bonne partie de sa liste de spam quand les utilisateurs signalent une adresse (ou un domaine) comme du spam.
Et pour le bouton, j'en sais rien du tout. J'ai jamais cherché en fait. Mais il doit y avoir moyen de faire un bouton "onSubmit" qui récupère le texte courant du textaera, ajoute la balise et remet le texte modifié dedans. Il faudrait chercher sur Internet.
EDIT: je ne sais pas si tu sais l'anglais mais bref. Une piste: http://www.developer.be/forums/index.cfm/fuseaction/dsp_full_thread/fullthreadid/204/forumID/10.htm
C'est ce que je disais. Tu récupères le contenu de la variable avec javascript, tu la modifies et tu le renvois dedans directement. Et tu peux garder une variable global javascript pour vérifier si la balise est déjà ouverte ou pas (tu modifies le statut genre si la variable "isbold" est à 0, alors pas ouvert si c'est à 1, c'est déjà ouvert). Et donc tu insères la bonne balise en fonction de ça.
Morpheus 50
Messages postés
43
Date d'inscription
mercredi 18 juin 2008
Statut
Membre
Dernière intervention
17 mars 2012
19 juin 2008 à 16:50
19 juin 2008 à 16:50
Ok merci
Bien sur j'ai essayé avec deux bonnes adresses ça marche très bien. Avec une bonne adresse (destinataire) et une adresse bidon en expediteur mais pas trop non plus azdfe@homte.fr ou un truc du genre ça marche en général mais addfghrtshjydjtjr@hotnsil.fr par exemple ne marche pas. Ce que je voudrais surtout savoir en fait, c'est comment faire pour detecter que free bloque l'envoi. Si tu essaye avec une adresse bidon mais vraiment bidon(t'as peut etre pas envie, je met donc le texte qu'il me donne):
Warning: mail() [function.mail]: Spam detecte, mail non envoye. in /mnt/152/sdc/f/5/useful.and/blague.php on line 29
L'e-mail a été envoyé à morpheus-50@hotmail.fr avec l'adresse addfghrtshjydjtjr@hotnsil.fr.
Revenir à la page précédente
en gros les conditions de mon scripts sont remplies donc il croit que le mail a été envoyé mais free bloque l'envoi. Je voudrais pouvoir prévoir ce genre de chose mais si personne n'a d'idée je vais envoyer un mail à free pour pouvoir vérifier moi même si elle est considérée comme spam et que free va la bloquer ou pas et donc éviter ce genre de code sur ma page.
Sinon pour le parseur, je vais chercher un peu plus, je vais bien finir par trouver :D
edit: je viens de voir ton edit ^^
j'ai pas tout compris en fait dans ce que t'as dis car je connais pas trop le js (juste deux trois fonctions). Donc je pense que je vais essayer de trouver un truc tout près. Car pour l'instant je sais transformer le message, ce qui me manque c'est justee savoir comment mettre un bouton qui mette les balises dans la case.
Bien sur j'ai essayé avec deux bonnes adresses ça marche très bien. Avec une bonne adresse (destinataire) et une adresse bidon en expediteur mais pas trop non plus azdfe@homte.fr ou un truc du genre ça marche en général mais addfghrtshjydjtjr@hotnsil.fr par exemple ne marche pas. Ce que je voudrais surtout savoir en fait, c'est comment faire pour detecter que free bloque l'envoi. Si tu essaye avec une adresse bidon mais vraiment bidon(t'as peut etre pas envie, je met donc le texte qu'il me donne):
Warning: mail() [function.mail]: Spam detecte, mail non envoye. in /mnt/152/sdc/f/5/useful.and/blague.php on line 29
L'e-mail a été envoyé à morpheus-50@hotmail.fr avec l'adresse addfghrtshjydjtjr@hotnsil.fr.
Revenir à la page précédente
en gros les conditions de mon scripts sont remplies donc il croit que le mail a été envoyé mais free bloque l'envoi. Je voudrais pouvoir prévoir ce genre de chose mais si personne n'a d'idée je vais envoyer un mail à free pour pouvoir vérifier moi même si elle est considérée comme spam et que free va la bloquer ou pas et donc éviter ce genre de code sur ma page.
Sinon pour le parseur, je vais chercher un peu plus, je vais bien finir par trouver :D
edit: je viens de voir ton edit ^^
j'ai pas tout compris en fait dans ce que t'as dis car je connais pas trop le js (juste deux trois fonctions). Donc je pense que je vais essayer de trouver un truc tout près. Car pour l'instant je sais transformer le message, ce qui me manque c'est justee savoir comment mettre un bouton qui mette les balises dans la case.
X-Fan
Messages postés
805
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
6 janvier 2010
24
19 juin 2008 à 17:02
19 juin 2008 à 17:02
En fait, tu dois d'abord essayé de savoir si free va le refuser mais ça je ne sais pas comment. Demande leur s'il y a un moyen de vérifier. Parce qu'en fait, php envoie bien le mail. Mais à la sortie du serveur smtp de free, ça coince. PHP ne le sait pas lui car il a envoyé le mail comme demandé. Faudrait que tu aies une fonction qui test d'abord si la sortie est possible mais ça j'ai aucune idée.
https://forum.hardware.fr/hfr/Programmation/PHP/php-ajouter-phpbb-sujet_68839_1.htm
https://forum.hardware.fr/hfr/Programmation/PHP/php-ajouter-phpbb-sujet_68839_1.htm
Morpheus 50
Messages postés
43
Date d'inscription
mercredi 18 juin 2008
Statut
Membre
Dernière intervention
17 mars 2012
19 juin 2008 à 17:06
19 juin 2008 à 17:06
Oué c'est ce que je pensais aussi.
En tous cas merci pour tout je suis en train de faire mon parseur (enfin juste remplacer les balises par les vrai pour l'instant)
a+
je reposerais ici si j'ai encore un problème ;)
En tous cas merci pour tout je suis en train de faire mon parseur (enfin juste remplacer les balises par les vrai pour l'instant)
a+
je reposerais ici si j'ai encore un problème ;)