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
Bonjour,
J'ai crée un script en php permettant d'envoyer un e-mail en se aisant passer pour une autre adresse e-mail. J'ai un gros problème:
J'ai voulu améliorer mon script en mettant des REGEX pour vérifier l'adresse e-mail et puis étant donner que mes cases sont pré-remplies avec une value je ne veux pas envoyer l'e-mail si la vaariable de la case est égale à la value (la case n'a pas été remplie). Seulement mon script ne marche pas: je remplis toutes les conditions mais il me dit que je n'ai aps remplis toutes les cases!
Voici l'adresse de la page
A voir également:

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
23 juin 2008 à 22:06
Peut-être que les gens ne s'arrêtent pas pour répondre lorsqu'il y a quelqu'un par manque de temps ou d'envie ;)
Y a pas mal de questions qui coulent sans jamais recevoir de réponses. ;)

Sinon:
$contenu = nl2br($contenu);
$contenu = preg_replace('#(.+)#isU', '<strong>$1</strong>', $contenu);
$contenu = preg_replace('#(.+)#isU', '<em>$1</em>', $contenu);
$contenu = preg_replace('#(.+)#isU', '<u>$1</u>', $contenu);
$contenu = preg_replace('#<couleur=(white|silver|gray|black|red|maroon|lime|green|yellow|olive|blue|navy|fuchsia|purple|aqua|teal)>(.+)</couleur>#isU', '<span style="color:$1">$2</span>', $contenu);
$contenu = preg_replace('#http://[a-z0-9._/-]+#i', '<a href="$0">$0</a>', $contenu);

Le problème avec ce code, c'est que tu lui dis de changer, exemple,:
'#(.+)#isU'
par
'<strong>$1</strong>'

Seulement, si tu veux que l'ordi interprète le code HTML, tu ne dois pas l'écrire comme tu le fais (sous forme d'un caractère)
Donc la deuxième ligne devient:
'<strong>$1</strong>'

Essaie pour voir. Rien à y perdre ;)
PS: je connais pas preg_replace alors je suppose :o
0
Morpheus 50 Messages postés 43 Date d'inscription mercredi 18 juin 2008 Statut Membre Dernière intervention 17 mars 2012
23 juin 2008 à 22:12
Désolé maisje n'ai pas du tout compris ce que tu veux dire :D
Je ne remplace pas '#(.+)#isU' par '<strong>$1</strong>' mais '#(.+)#isU' par '<strong>$1</strong>'
Désolé de ma noobité mais j'y peux rien (à part l'experience que j'essaye d'acquérir petit à petit :) )

edit: je viens de me rendre compte que le con de forum (c'est pas moi qui l'a dit :-° ) remplacait la regex par # totu court et c'est pour ça que je comprenais pas ce que tu disais. Enfin je comprends toujours pas mais bon ^^

sinon j'utilise preg_replace parce que j'ai trouvé le code tout pret sur le site du zéro et que cette fonction accepte les regex alors que str_replace je ne crois pas. Mais bon le problème est le même de toutes facon :(

edit2: en fait je crois que ton message a du sens mais que le fofo a transformé la plupart des trucs :(
donc si tu avais un autre moye de me dire ce que tu m'as dis, ou en mettant des espaces aux points sensibles pour empecher le ttruc de s'executer
0
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 24
23 juin 2008 à 22:26
Mais pourquoi tu es aussi obsédé par tes stupides regex loool.
Juste pour rire essaie:

$contenu = nl2br($contenu);
$contenu = str_replace("<gras>","<strong>",$contenu);
$contenu = str_replace("</gras>","</strong>",$contenu);

Bref, si tu veux continuer avec l'autre vas y mais regarde. Je lui dis de remplacer le < par < et non par <. Fait le même genre dans tes propres expressions. Car tu veux que < soit considéré comme HTML et pas comme un simple caractère (ce qui est le cas si tu fais < à la place de <).

Rajoute les points virgules après < et >! STUPIDE FORUM
0
Morpheus 50 Messages postés 43 Date d'inscription mercredi 18 juin 2008 Statut Membre Dernière intervention 17 mars 2012
23 juin 2008 à 22:33
Non franchement je m'en fous regex ou pas regex :D
c'est juste que j'avais le code tout près avec mais bon c'est pas grave je veux bien les virer ^^
Je viens d'essayer et ça ne marche pas mieux.
Je veux bien tous les changer si tu dis que c'est mieux pas de problème mais ça ne règle pas le problème :D
De plus avec cette manière je ne sais pas comment faire pour la ligne concernant les couleurs et celle concernant les liens


EDIT: non en fait je viens de refaire un test et cette fois ça marche (avec les regex, parce que c'etait comme ça). Enfin je dis ça marche, cette fois le <gras >***</gras > est bien transformé en <strong >***</strong > mais je vois la balise strong au lieu de voir le texte en gras
Je pense donc que le probleme vient du html dans le message. Ce qui est etonnant c'est que tout à l'heure ça a marché pour le text!
0

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
23 juin 2008 à 22:41
As-tu changé dans tes regex le < que tu avais écrit avec le code pour <??

$contenu = preg_replace('#& l t ;gras& g t ;(.+)& l t ;/gras& g t ;#isU', '<strong>$1</strong>', $contenu);

En enlevant les espaces entre les & l t ; et & g t ; (CONNERIE DE FORUM GRRR)
0
Morpheus 50 Messages postés 43 Date d'inscription mercredi 18 juin 2008 Statut Membre Dernière intervention 17 mars 2012
23 juin 2008 à 22:44
Euh désolé je ne comprend pas ce que tu dis (saleté de noobité :D) mais je crois que ça vient encore une fois du forum qui change ce que tu dis. Seulement je tiens a précisé que j'ai édité le message d'au dessus, je suis pas sur que tu l'ai vu.
0
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 24
23 juin 2008 à 22:54
Mais je copie le texte du lien que tu as donné!
Maudit, comme je fais pour t'expliquer ça -_-

Tu vois, il a une différence entre & l t ; et <.

Pour une page HTML, & l t ; deviendra, à l'affichage, le caractère <. Jusque là tu me suis? LOL
Si tu écris < dans ta page HTML, il ne sera plus là à l'affichage car il sera interprété pour une balise. La seule façon que tu as d'affiché le caractère < sur une page HTML, c'est en écrivant & l t ; .

Quand tu écris & l t ;, tu lui dis que tu veux afficher ce caractère et donc il ne sera pas traiter comme une balise.
Exemple:
Fichier HTML: <strong>
Affichage:
Fichier HTML: & l t ;strong& g t ;
Affichage: <strong>

Tu vois la différence ou je saute par la fenêtre XD
0
Morpheus 50 Messages postés 43 Date d'inscription mercredi 18 juin 2008 Statut Membre Dernière intervention 17 mars 2012
23 juin 2008 à 23:01
Euh non je crois que tu peux sauter par la fenêtre!
.....
Non attends je déconnais nonnn!!!!!!!!!!!!!!!!!
splach
^^
Nan c'est bon j'ai compris seulement quelles solution me propose tu pour remédier à ce problème?
0
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 24
23 juin 2008 à 23:10
Mais voilà le problème il est là lol.

Quand tu filtes avec htmlspecialchars, il remplace tous ces fameux < par & l t ;. C'est bien ça, comme ça, pas d'ajout de code indésiré. Cependant, toi, tu veux ramener certaines balises à leur état HTML car tu veux qu'elles prennent effet (mais seulement celle que tu auras choisie). Donc tu mets en place tes regex et ton preg_replace() pour le faire. Mais ton erreur vient que tu remplaces tes & l t ; (remplacé tanto par htmlspecialchars) avec, de nouveau, des & l t ; . Au final, ce n'est toujours pas du code HTML (exemple de tanto ou mon strong s'affichait). Toi tu veux qu'ils soient dans la situation de "affiche rien".

Donc oui, tu remplaces le mot "gras" par "strong". Excellent. Mais tu veux que ce soit du HTML invisible et qui prendra effet (exemple de tanto). Pour qu'il soit invisible, tu dois écrire < et pas & l t ; . Pigé??
Parce:
HTML: & l t ;strong& g t ; salut & l t ;/strong& g t ;
Affichage: <strong>salut</strong>
HTML: <strong>salut</strong>
Affichage: salut (ÉCRIS EN GRAS)
0
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 24
23 juin 2008 à 23:15
Dans le fichier que tu m'as donné, il y a ça:
$contenu = preg_replace('#& l t ;gras& g t ;(.+)& l t ;/gras& g t ;#isU','& l t ;strong& g t ;$1& l t ;/strong& g t ;', $contenu);

Change par ça:
$contenu = preg_replace('#& l t ;gras& g t ;(.+)& l t ;/gras& g t ;#isU', '<strong>$1</strong>', $contenu);


Enlève les espaces entre les lettres pour & l t ; et & g t ; !!!
0
Morpheus 50 Messages postés 43 Date d'inscription mercredi 18 juin 2008 Statut Membre Dernière intervention 17 mars 2012
23 juin 2008 à 23:16
Oh nan je suis con à ce point là!!?
J'y crois pas tu me dis ça depuis plusieurs messages et j'ai rien compris mdr
Merci beaucoup ça marche très bien!
T'es vraiment sympa de m'avoir aidé!!!
Si des fois j'ai d'autres problèmes je reposterais
a+
0
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 24
23 juin 2008 à 23:18
Ça a été long mais finalement on y est arrivé >_<

Pour les autres problèmes euh... *reste près de la fenête*
MOUAHAHAHAHAHA!!!!

A++
0
Morpheus 50 Messages postés 43 Date d'inscription mercredi 18 juin 2008 Statut Membre Dernière intervention 17 mars 2012
23 juin 2008 à 23:20
:D oui il vaut mieux vu mon niveau :p
Merci beaucoup en tous cas je crois qu'on peut commencer à considérer que mon scipt est quasiment fini (il en a fallu du temps :p )
0
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 24
23 juin 2008 à 23:22
En fait, c'était des erreurs toutes connes et comme tu n'avais pas donné le script complet tout de suite, je ne pouvais pas voir l'erreur du specialchars (que tu as trouvé toi-même donc pas si con que ça lol).

Et puis pour l'autre, ben, finalement t'avais, grâce au specialchars, corrigé le problème mais tu as voulu un peu trop bien le corriger :P

Faudra que tu me donnes ton adresse mail que j'aille tester le script sur toi pour me venger ahah ^^
0
Morpheus 50
24 juin 2008 à 00:01
Allé je suis gentil XD
morpheus-50@hotmail.fr
j'espere quand meme que tu auras des bonens idées ^^
0
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 24
24 juin 2008 à 00:03
Ah ouai mais pas sur le forum lol (a moins que tu veux que je rallie une armée de spammeurs) :o
0
Morpheus 50 Messages postés 43 Date d'inscription mercredi 18 juin 2008 Statut Membre Dernière intervention 17 mars 2012
24 juin 2008 à 00:05
Oui je t'ai envoyé un mp mais en fait j'ai mis ladresse en anonyyme et je peux plus editer :D
ba c pas grave toutes facons celui qui cherche des email n'a que le choix on en trouve partout ^^
0
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 24
24 juin 2008 à 00:14
Ahaha.. :P
J'avais pas pensé à fermer ma g**** tanto. Si je m'en étais souvenu, j'aurais pas répondu :o
0
Morpheus 50 Messages postés 43 Date d'inscription mercredi 18 juin 2008 Statut Membre Dernière intervention 17 mars 2012
24 juin 2008 à 00:17
:D je m'en doutais ^^
0
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 24
24 juin 2008 à 00:20
Ahaha ouai. ;)

Tu l'as monté comment ton design graphique au fait? Je veux monter un site mais niveau graphique je suis pas super super quoi. Disons que j'ai pas d'idées (arriver à le faire, je peux toujours m'en sortir car je suis très démerde pour apprendre quand j'ai besoin mais avoir les idées moi je suis pourrie). :P
0