Salut !
Dans ta page de traitement tu as juste a vérifier si il y a un http:// dans le $_POST['text']
Bonjour,
J'aimerais savoir comment faire pour refuser des liens dans un post ?
Si la personne met un lien dans name=text alors il est redirigé sur error.php?chat=link
Une idée ?
Salut !
Dans ta page de traitement tu as juste a vérifier si il y a un http:// dans le $_POST['text']
Salut, Comment faire ça :s ?
Sachant que je souhaite bloqué TOUT les lien, HTTP HTTPS sans HTTP ni HTTPS mais avec une extension :S
Sachant que si $_POST['text'] vaut:
salut moi c'est pierre et ça c'est mon site: salutpierre.fr http://salutcpierre.fr/
Il faut qui replace par <deleted link> dans le meilleur des cas une idée ?N
Bonjour. Utilise la fonction preg_match_all avec un masque adapté du style
Ne copie pas ce masque hein ^^ c'est un exemple ;)
Salut,
J'ai réussi à faire ça, (ça fonctionne) mais cela ne me detecte pas quand il n'y a pas de http ou de https :/
==
J'utilise jamais preg_replace, j'utilise tout le temps preg_match_all, mais en ajoutant les "www." dans ton masque?
Mais là du coup tu fais l'inverse, tu tente de remplacer le texte par un lien?
Un truc dans le genre ;)
SLK:
Le code me retire TOUT le texte :/
Bonjour,
Ouaip comme ça c'est plutôt bon, mais je bloque encore, (difficulté avec le regex).
Il bloque les HTTP HTTPS WWW mais si je met juste domain.com il ne bloque pas :c Tu aurais une piste ?
Salut,
peut-être en incluant "tout ce qui finit par un point suivi de 2 ou 3 lettres" ?
Yop. Ceci remplace tous les liens, avec ou sans protocols...
Exemple:
Par contre comme tu peux le voir, ça remplace aussi les méthodes javascripts (dans l'exemple console.log, window.alert), c'est ça l'inconvénient de ne pas capturer automatiquement les protocols. :c
Ah bon ? xD
Mince...
PhiSyX:
y'aurait moyens de détailler un peu et de simplifier ?
je comprend presque rien a rien la oO
Qu'est-ce que tu ne comprends pas?
La regex?
J'ai crée des groupes (?<nom_de_group> regle) pour qu'on puisse mieux lire la règle mais si ça te dérange, tu peux la mettre sur une seule ligne... Ca revient au même.
Le groupe (?<scheme>): cette regle intervient dans le cas où une URL à un protocol.
Correpond à:
http://local.dev/
Cette règle n'est pas obligatoire.
Le groupe (?<user_pass>): cette regle intervient dans le cas où une URL est de ce type.
Correpond à: http://`username:password@`local.dev/
Cette règle n'est pas obligatoire.
Le groupe (?<dns>): cette regle correspond à l'host de l'URL.
Correpond à: http://`local.dev
Correpond à: http://username:password@local.dev`
Obligatoire.
Amélioration: y ajouter une règle pour les adresses ip's ;-)
Le groupe (?<port>): cette regle intervient dans le cas où une URL à un port.
Correpond à: local.dev
:8080
Cette règle n'est pas obligatoire.
Le groupe (?<path>): cette regle intervient dans le cas où une URL à un chemin.
Correpond à: local.dev
/cctvvmb.html
Cette règle n'est pas obligatoire.
Le groupe (?<queryString>): cette regle intervient dans le cas où une URL à des queryString's aka des $_GET.
Correpond à: local.dev/cctvvmb.html
?foo=bar
Cette règle n'est pas obligatoire.
Le groupe (?<anchor>): cette regle intervient dans le cas où une URL à une ancre (ou hash comme tu veux).
Correpond à: local.dev/cctvvmb.html
#id_2
Cette règle n'est pas obligatoire.
Voilà.
Super !
Je te remercie vraiment, je garde ça très précieusement :)
Pile ce qu'il me fallait :)
(PS: C'est pour un chat, les joueurs ne peuvent pas envoyé de lien =) )
Généralement, pour un Chat:
On a des robots qui s'occupent d'expulser automatiquement les utilisateurs qui postent des liens avec protocols (PRECIS) et des opérateurs/modérateurs humains qui eux décident d'expulser ou non des utilisateurs pouvant envoyer un lien sans protocols.
Car effectivement, comme dit plus haut, il se peut que le texte remplacé ne soit pas forcément un lien.
Exemple:
User1: "console.log ta variable test pour voir" =>
console.logsera remplacé.
User2: "Salut tout le monde.ca va bien les gens ? :)" =>monde.casera remplacé.
Je vais faire comme ça pour le début, et j'aviserais par la suite