Sécurité formulaire HTML/PHP
Résolu/FerméPJ47 Messages postés 77 Date d'inscription jeudi 2 mars 2023 Statut Membre Dernière intervention 27 février 2024 - 8 déc. 2023 à 10:11
- Sécurité formulaire HTML/PHP
- Mode securite - Guide
- Formulaire de réclamation facebook - Guide
- Editeur html - Télécharger - HTML
- Easy php - Télécharger - Divers Web & Internet
- Br html ✓ - Forum Webmastering
17 réponses
28 nov. 2023 à 20:34
Bonjour,
Je pense que tu confonds "lien" et "url"
<!-- Un lien --> <a href="http://www.google.fr">Google</a> <-- Une url ( c'est une string.. ) --> http://www.google.fr
Si tu veux pouvoir supprimer les "url" , tu vas devoir retravailler la string 'message' pour y supprimer le http ou https, les www le .truc
Pour ça, tu peux utiliser une regex. ( nombreux tutos disponibles sur le net)
29 nov. 2023 à 08:29
Bonjour @jordane45 StatutModérateur ,
C'est effectivement les URL que je souhaite supprimer ou rendre inactives
je regarde depuis tôt ce matin mais je ne trouve pas soit la bonne manière de l'écrire soit pas la bonne regex.
Déjà il semble que mon "pattern dans textarea ne soit pas pris en compte : il semble que cette balise n'accepte pas cet attribut.
j'ai remplacé par ce ceci mais ça ne fonctionne pas. Que ce que j'écris mal ??
$nom = strip_tags($_POST['nom']); $prenom = strip_tags($_POST['prenom']); $email = strip_tags($_POST['mail']); $message = preg_replace('!\[url=(.+?)\](.+?)\[\/url\]!isU', '<a href="$1">$2</a>', strip_tags($_POST['message']));
Merci
29 nov. 2023 à 09:13
Commence par faire un var_dump de ta variable
strip_tags($_POST['message'])
histoire de voir comment se présente le "text" que tu veux "supprimer".
Et encore une fois... vu qu'on parle d'URL ( et non de "lien") .. il n'y a pas de <a href... !
29 nov. 2023 à 09:35
@jordane45 StatutModérateur, je ne sais pas faire tant pis - je trouverai une autre solution.
merci encore
J
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question29 nov. 2023 à 10:11
Tu ne sais pas faire .... quoi ?
un var_dump ? Si tu ne connais pas, il existe les moteurs de recherche pour t'aider à trouver ... https://www.google.com/search?q=var_dump
Rien de compliqué .. juste une fonction à appeller pour pouvoir afficher, lors de l'exécution de ton code, le contenu d'une variable
var_dump(strip_tags($_POST['message'])); exit; //si tu veux que ton script s'arrête là sans faire la suite le temps de corriger ton souci
Et niveau regex, pour supprimer les URL de ta variable, tu devrais pouvoir passer par un truc du genre
$string = strip_tags($_POST['message']); $regex = "@(https?://([-\w\.]+[-\w])+(:\d+)?(/([\w/_\.#-]*(\?\S+)?[^\.\s])?).*$)@"; $message = preg_replace($regex, ' ', $string);
Modifié le 29 nov. 2023 à 10:51
je ne sais pas écrire le regex ! le var_dump c'était bon.
je vous remercie de cette solution. ça fonctionne sur mon mode test. Merci.
Sauriez vous comment je peux récupérer ma case "je ne suis pas un robot" dans mon mail?
Merci bonne journée
29 nov. 2023 à 11:10
en regardant la variable $_POST['coche'] non ?
29 nov. 2023 à 12:28
c'est ce que je pense avoir essayé de faire :
$message = "Nom : " . $nom . "\n" . "\n" . "Prénom : " . $prenom . "\n" . "\n" . "Téléphone : " . $_POST["tel"] . "\n" . "\n" . "Mail : " . $email . "\n" . "\n" . "Travaux : " . $_POST["travaux"] . "\n" . "\n" . "Département des Travaux : " . $_POST["departement"] . "\n" . "\n" . "Code Postal : " . $_POST["codepostal"] . "\n" . "\n" . "\n" . "Message: " . $message . "\n" . "\n" . "Case robot :".$_POST["coche"];
mais cela ne donne rien.
<div class="form-check"> <input class="form-check-input" type="checkbox" value="" id="invalidCheck2" name="coche" cochée="oui"value="good" required> <label class="form-check-label" for="invalidCheck2"> Je ne suis pas un Robot ! </label> </div>
29 nov. 2023 à 18:20
L'attribut value de ton input est vide... Normal que tu n'aies pas de.valeur...
30 nov. 2023 à 09:56
Bonjour @jordane45 StatutModérateur, effectivement je l'avais mis puis retiré !! Bien entendu je ne pouvais pas récupérer quoi que ce soit !! Merci encore pour votre aide -Je suis presque au bout de mes peines ! Il ne me manque plus que le
header('Location: http://www.google.com');
exit();
qui ne fonctionne pas encore mais je planche sur le sujet - si vous avez un conseil !
Bonne journée merci
30 nov. 2023 à 10:14
Bien entendu... tu places ton code PHP ...... AVANT tout code html ?!
Si ton code est écrit tel que tu nous l'a montré dans ton premier message...ça ne pourra pas marcher.
Il faut déplacer le code php au dessus du code html
<?php // Ton code php... //connexion à la bdd // ... traitement de ton formulaire // ....etc... ?> <!-- Puis.. le code HTML --> <!Doctype html> <html> <head>
30 nov. 2023 à 10:24
Oui il est bien au dessu mais cela me marque mon message "message envoyé mais pas de redirection :
<?php error_reporting(-1); require 'fonctionsovh.php'; $db = getConnection(); if (isset($_POST['valider'])) { //echo ('toto'); //On prépare la commande sql d'insertion $query = $db->prepare(' INSERT INTO mabase (Nom,Prénom,Téléphone,Email,Travaux,CodePostal,Message,Departement,Provenance,dateinscription) VALUES (?,?,?,?,?,?,?,?,"xxxxxx",Now()) '); $nom = strip_tags($_POST['nom']); $prenom = strip_tags($_POST['prenom']); $email = strip_tags($_POST['mail']); //$message = strip_tags($_POST['message']); //$message = str_replace("/", "", $message); $string = strip_tags($_POST['message']); $regex = "@(https?://([-\w\.]+[-\w])+(:\d+)?(/([\w/_\.#-]*(\?\S+)?[^\.\s])?).*$)@"; $message = str_replace("'", "'", $message); $message = str_replace("’", "'", $message); $message = str_replace('<br />', '', $message); $message = str_replace("<", "<", $message); $message = str_replace(">", ">", $message); $message = str_replace("&", "&", $message); $message = preg_replace($regex, ' ', $string); //var_dump($message); $query->execute([ $nom, $prenom, $_POST['tel'], $email, $_POST['travaux'], $_POST['codepostal'], $message, $_POST['departement'] ]); //Verifie si le fournisseur prend en charge les r if (preg_match("#@(hotmail|live|msn).[a-z]{2,4}$#", $email_from)) { $passage_ligne = "\n"; } else { $passage_ligne = "\r\n"; } // Pour les champs $expediteur / $copie / $destinataire, // séparez par une virgule s'il y a plusieurs adresses $message_envoye = "Votre message nous est bien parvenu ! <a href=\"/\">Retour à la page principale</a>"; $message_non_envoye = "<br /> <br />L'envoi du mail a échoué, veuillez réessayer SVP."; $destinataire = '***@***'; $expediteur = '***@***'; $copie = ''; $copie_cachee = 'xx@xx'; $objet = $_POST["travaux"] . " xx " . " " . $_POST["departement"]; // Objet du message function clean_string($string) { $bad = array("content-type", "bcc:", "to:", "cc:", "href"); return str_replace($bad, "", $string); } $headers = 'MIME-Version: 1.0' . "\n"; // Version MIME $headers .= 'Reply-To: ' . $expediteur . "\n"; // Mail de reponse $headers .= 'From:<' . $expediteur . '>' . "\n"; // Expediteur $headers .= 'Delivered-to: ' . $destinataire . "\n"; // Destinataire $headers .= 'Cc: ' . $copie . "\n"; // Copie Cc $headers .= 'Bcc: ' . $copie_cachee . "\n\n"; // Copie cachée Bcc $message = "Nom : " . $nom . "\n" . "\n" . "Prénom : " . $prenom . "\n" . "\n" . "Téléphone : " . $_POST["tel"] . "\n" . "\n" . "Mail : " . $email . "\n" . "\n" . "Travaux : " . $_POST["travaux"] . "\n" . "\n" . "Département des Travaux : " . $_POST["departement"] . "\n" . "\n" . "Code Postal : " . $_POST["codepostal"] . "\n" . "\n" . "\n" . "Message: " . $message . "\n" . "\n" . "Case robot :" . $_POST["coche"]; $success = false; $error_string = ""; if (mail($destinataire, $objet, $message, $headers)) // Envoi du message { echo ('message envoyé'); header('Location: http://www.google.com'); exit(); } else // { $success = false; $error_string = "Non envoyé !"; } } ?> <form name="inscription" method="post" action="contact-test.php"> <div class="row mb-3"> <input type="text" name="nom" placeholder="Nom" required /> </div> <div class="row mb-3"> <input type="text" name="prenom" placeholder="Prénom" required /> </div> <div class="row mb-3"> <input name="tel" type="tel" placeholder="Téléphone - 0000000000" required pattern="[0-9]{10}" /> <span class="validity"></span> </div> <div class="row mb-3"> <input type="email" name="mail" pattern="[a-z0-9._%+\-]+@[a-z0-9.\-]+\.[a-z]{2,}$" placeholder="Email" required /> </div> <div class="row mb-3">Type de travaux : <select id="travaux" class="form-group" name="travaux" required> <option selected>Votre besoin</option> <option>Traitement Termites</option> <option>Traitement Bois Charpente</option> <option>Traitement Mérule</option> <option>Traitement Remontées Capillaires</option> <option>Traitement Air chaud</option> <option>Nettoyage Façade</option> <option>Sablage</option> <option>Traitement Fourmis</option> </select> </div> <div class="row mb-3"> <select id="departement" class="form-group" name="departement" required> <option selected>Département des travaux :</option> <option>44 - Loire-Atlantique</option> <option>56 - Morbihan</option> </select> </div> <div class="row mb-3"> <input type="text" name="codepostal" pattern="(?:0[1-9]|[1-8]\d|9[0-8])\d{3}" placeholder="Code Postal d'intervention" required /> </div> <div class="row mb-3"> <textarea name="message" rows="10" cols="70" placeholder="Votre Message" pattern="'#^[a-zA-Z0-9áàâäãåçéèêëíìîïñóòôöõúùûüýÿæœÁÀÂÄÃÅÇÉÈÊËÍÌÎÏÑÓÒÔÖÕÚÙÛÜÝŸÆŒ\.\_\-\s]{5,500}$#' " required></textarea> </div> <div class="form-check"> <input class="form-check-input" type="checkbox" value="YES" id="invalidCheck2" name="coche" cochée="oui" value="good" required> <label class="form-check-label" for="invalidCheck2"> Je ne suis pas un Robot ! </label> </div> <input type="submit" name="valider" value="Envoyer" /> </form>
je ne dois surement pas le place où il faut. !
30 nov. 2023 à 11:33
Les fonctions "header( " Ne peuvent pas se situer APRES que ta page ait affiché quoi que ce soit..
C'est ton echo qui bloque la redirection...
30 nov. 2023 à 11:39
J'ai supprimé le echo :
if (mail($destinataire, $objet, $message, $headers)) // Envoi du message { header('Location: fin.php'); exit(); } else // { $success = false; $error_string = "Non envoyé !"; }
mais lorsque je valide je reste sur la même page mais avec ma zone formulaire vide :
https://www.best-termites.fr/www/contact-test.php
30 nov. 2023 à 13:37
Active l'affichage des erreurs PHP,
Et éventuellement regarde dans le fichier erreur log de ton Apache.
Assure-toi bien de n'avoir aucun écho, var_dump... Avant ton instruction de redirection.
30 nov. 2023 à 14:01
j'ai activé l'affichage des erreurs et corrigé certaines.
la dernière est
Warning: Cannot modify header information - headers already sent by (output started at /home/besttermds/www/www/contact-test.php:1) in /home/besttermds/www/www/contact-test.php on line 500
30 nov. 2023 à 14:06
ligne 500 ?
Tu as donc du code html AVANT ton php non ???
N'aurais tu pas mis ton fichier dans un include que tu chargerais en bas de ta page principale ???
Si oui.. tu as donc du html avant .. ce qui n'est pas bon !
Apres... tu peux toujours passer par du JS au lieu de passer par l'instruction header si vraiment tu ne veux pas changer l'organisation de ton code ...
30 nov. 2023 à 14:19
@jordane45 StatutModérateur,
c'est bon j'ai corrigé !! Je pense que cela devait venir des espaces après ?>
Mais comme je suis dans le logiciel j'ai modifié l'emplacement du code PHP et du coup c'est bon, je reçoit le mail, je l'enregistre dans ma BDD et je redirige !!
Merci encore beaucoup de votre aide précieuse !
bonne journée
J
Modifié le 30 nov. 2023 à 14:21
je ne sais pas comment (et si c'est à moi de marquer le sujet en résolu ?)............... trouvé !! merci encore
Modifié le 1 déc. 2023 à 13:54
bonjour @jordane45 StatutModérateur,
je suis passée en prod et le message reçu à bien supprimé les scripts, mais à conservé les liens que j'avais mis?
il me semble pourtant avoir conservé le regex que vous m'aviez donné :
<?php error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); error_reporting(-1); require 'fonctionsovh.php'; $db = getConnection(); if (isset($_POST['valider'])) { //On prépare la commande sql d'insertion $query = $db->prepare(' INSERT INTO ContactsBest (Nom,Prénom,Téléphone,Email,Travaux,CodePostal,Message,Departement,Provenance,dateinscription) VALUES (?,?,?,?,?,?,?,?,"Best-termites.fr",Now()) '); $nom = strip_tags($_POST['nom']); $prenom = strip_tags($_POST['prenom']); $email = strip_tags($_POST['mail']); $string = strip_tags($_POST['message']); $regex = "@(https?://([-\w\.]+[-\w])+(:\d+)?(/([\w/_\.#-]*(\?\S+)?[^\.\s])?).*$)@"; $message = preg_replace($regex, ' ', $string); $query->execute([ $nom, $prenom, $_POST['tel'], $email, $_POST['travaux'], $_POST['codepostal'], $message, $_POST['departement'] ]); //Verifie si le fournisseur prend en charge les r if (preg_match("#@(hotmail|live|msn).[a-z]{2,4}$#", $email)) { $passage_ligne = "\n"; } else { $passage_ligne = "\r\n"; } // Pour les champs $expediteur / $copie / $destinataire, // séparez par une virgule s'il y a plusieurs adresses $destinataire = '***@***'; $expediteur = '***@***'; $copie = ''; $copie_cachee = '***@***'; $objet = $_POST["travaux"] . " BEST-TERMITES.fr " . " " . $_POST["departement"]; // Objet du message function clean_string($string) { $bad = array("content-type", "bcc:", "to:", "cc:", "href"); return str_replace($bad, "", $string); } $headers = 'MIME-Version: 1.0' . "\n"; // Version MIME $headers .= 'Reply-To: ' . $expediteur . "\n"; // Mail de reponse $headers .= 'From:<' . $expediteur . '>' . "\n"; // Expediteur $headers .= 'Delivered-to: ' . $destinataire . "\n"; // Destinataire $headers .= 'Cc: ' . $copie . "\n"; // Copie Cc $headers .= 'Bcc: ' . $copie_cachee . "\n\n"; // Copie cachée Bcc $message = "Nom : " . $nom . "\n" . "\n" . "Prénom : " . $prenom . "\n" . "\n" . "Téléphone : " . $_POST["tel"] . "\n" . "\n" . "Mail : " . $email . "\n" . "\n" . "Travaux : " . $_POST["travaux"] . "\n" . "\n" . "Département des Travaux : " . $_POST["departement"] . "\n" . "\n" . "Code Postal : " . $_POST["codepostal"] . "\n" . "\n" . "\n" . "Message: " . $message . "\n" . "\n" . "Case robot :" . $_POST["coche"]; $success = false; $error_string = ""; if (mail($destinataire, $objet, $message, $headers)) // Envoi du message { header('Location: https://www.best-termites.fr/index.html'); exit(); } else // { $success = false; $error_string = "Non envoyé !"; } } ?>
Sauriez vous me dire ?
merci beaucoup
J
4 déc. 2023 à 09:11
bonjour @jordane45 StatutModérateur
sauriez vous m'aider pour les url conservées?
cordialement
J
6 déc. 2023 à 14:51
bonjour @ tous.
je suis en prod, mon code de traitement php est en début, mon formulaire html en suivant-
Mon formulaire s'envoie, la page se redirige, les champs s'enregistrent bien dans la bdd, mais dans le message reçu et enregistrer dans la bdd il reste les url et je souhaite les supprimer -
Est ce que vous auriez des idées?
Merci
J
6 déc. 2023 à 15:44
A part faire du debug pour essayer de voir ce que contiennent tes différentes variables lors de l'enregistrement.. il n'y a pas grand chose d'autre qu'on puisse faire...
Donc, retire le REDIRECTION (sinon tu ne pourras pas voir les éventuels debug que tu vas mettre), places des var_dump de tes différentes variables avant ta requête INSERT ... et regarde ce qu'elles contiennent...
6 déc. 2023 à 17:04
Bonjour @jordane45 StatutModérateur
suite à ce code :
<?php error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); error_reporting(-1); require 'fonctionsovh.php'; $db = getConnection(); if (isset($_POST['valider'])) { //On prépare la commande sql d'insertion $query = $db->prepare(' INSERT INTO ContactsBest (Nom,Prénom,Téléphone,Email,Travaux,CodePostal,Message,Departement,Provenance,dateinscription) VALUES (?,?,?,?,?,?,?,?,"Best-termites.fr",Now()) '); $nom = strip_tags($_POST['nom']); $prenom = strip_tags($_POST['prenom']); $email = strip_tags($_POST['mail']); $string = strip_tags($_POST['message']); $regex = "@(^(https?|ftp)://(-\.)?([^\s/?\.#-]+\.?)+(/[^\s]*)?$)@"; $message = preg_replace($regex, ' ', $string); var_dump($nom, $prenom, $email, $message); $query->execute([ $nom, $prenom, $_POST['tel'], $email, $_POST['travaux'], $_POST['codepostal'], $message, $_POST['departement'] ]); //Verifie si le fournisseur prend en charge les r if (preg_match("#@(hotmail|live|msn).[a-z]{2,4}$#", $email)) { $passage_ligne = "\n"; } else { $passage_ligne = "\r\n"; } // Pour les champs $expediteur / $copie / $destinataire, // séparez par une virgule s'il y a plusieurs adresses $destinataire = '***@gmail.com'; $expediteur = '**@best-termites.fr'; $copie = ''; $copie_cachee = '**@**'; $objet = $_POST["travaux"] . " BEST-TERMITES.fr " . " " . $_POST["departement"]; // Objet du message function clean_string($string) { $bad = array("content-type", "bcc:", "to:", "cc:", "href"); return str_replace($bad, "", $string); } $headers = 'MIME-Version: 1.0' . "\n"; // Version MIME $headers .= 'Reply-To: ' . $expediteur . "\n"; // Mail de reponse $headers .= 'From:<' . $expediteur . '>' . "\n"; // Expediteur $headers .= 'Delivered-to: ' . $destinataire . "\n"; // Destinataire $headers .= 'Cc: ' . $copie . "\n"; // Copie Cc $headers .= 'Bcc: ' . $copie_cachee . "\n\n"; // Copie cachée Bcc $message = "Nom : " . $nom . "\n" . "\n" . "Prénom : " . $prenom . "\n" . "\n" . "Téléphone : " . $_POST["tel"] . "\n" . "\n" . "Mail : " . $email . "\n" . "\n" . "Travaux : " . $_POST["travaux"] . "\n" . "\n" . "Département des Travaux : " . $_POST["departement"] . "\n" . "\n" . "Code Postal : " . $_POST["codepostal"] . "\n" . "\n" . "\n" . "Message: " . $message . "\n" . "\n" . "Case robot :" . $_POST["coche"]; $success = false; $error_string = ""; if (mail($destinataire, $objet, $message, $headers)) // Envoi du message { //header('Location: https://www.best-termites.fr/index.html'); // exit(); } else // { $success = false; $error_string = "Non envoyé !"; } } ?>
j'obtiens :
string(9) "jennif@jh" string(4) "test" string(23) "***@***" string(93) "fhidshfsdfu bonjour, https://www.php.net/manual/fr/function.var-dump.php hfubjhfd fhduis"
donc au final, cela signifie qu'aucun de mes "strip_tags" ne fonctionnent pas
6 déc. 2023 à 18:09
As-tu été testé sur les sites que je t'ai donné ta redex ??
Fonctionne-t-elle sur ces sites ???
7 déc. 2023 à 15:52
bonjour @jordane45 StatutModérateur,
Alors voilà deux jours que je regarde des tutos pour comprendre comment fonctionnent les deux sites que vous m'avez donné !!! ça y est j'ai compris !! (vive Boris !).
mes premiers tests ont l'ai convaincants : du coup ça donne ça :
$string = strip_tags($_POST['message']); $regex = preg_replace('/(https?:\/\/|www\.)([a-zA-Z0-9-_\.\/\?=&]+)/im', 'url', $string); $message = $regex;
donc mon message ne contien plus d'url
je vais voir si je peux améliorer les $nom et $prenom.
Merci encore de votre précieuse aide !
J
7 déc. 2023 à 17:08
Par contre j'essaye de combiner plusieurs regex (1 pour les url, c'est bon ! et une pour les caractères non latins) .
mais pour le moment ça coince
$string = preg_replace('/([^!A-Za-z0-9]+)im/', '',$_POST['message']); $regex = preg_replace('/(https?:\/\/|www\.)([a-zA-Z0-9-_\.\/\?=&]+)/im', 'url', $string); $message = $regex;
7 déc. 2023 à 17:30
Bonjour,
Peux tu nous faire des var_dump de tes variables juste après ta variable $message
echo "<pre>"; var_dump($_POST['message']); var_dump ($string) var_dump($regex); echo "</pre>";
8 déc. 2023 à 07:57
Bonjour,
voici :
string(208) "fdsfsdfsfs https://forums.commentcamarche.net/forum/affich-37954204-securite-formulaire-html-php#p37959643 fdskhk Ողջույն, ես ուզում էի իմանալ ձեր գինը. maisn fdhofhsdlf" string(208) "fdsfsdfsfs https://forums.commentcamarche.net/forum/affich-37954204-securite-formulaire-html-php#p37959643 fdskhk Ողջույն, ես ուզում էի իմանալ ձեր գինը. maisn fdhofhsdlf" string(126) "fdsfsdfsfs url#p37959643 fdskhk Ողջույն, ես ուզում էի իմանալ ձեր գինը. maisn fdhofhsdlf"
mon URL a bien été remplacée par 'URL' mais les caractères non latin non pas été supprimés - indépendamment chacun des expression fonctionne. mais pas ensemble
Merci J
8 déc. 2023 à 08:47
Tu as une erreur sur ta première regex .. il manque un / devant im
$string = preg_replace('/([^!A-Za-z0-9]+)/im', ...
Ensuite.. cette regex retourne ceci : "fdsfsdfsfshttpsforumscommentcamarchenetforumaffich37954204securiteformulairehtmlphpp37959643fdskhkmaisnfdhofhsdlf"
Penses tu que, ensuite, ta regex de lien va fonctionner sur cette chaine de caractères ?
Moi j'inverserai les deux regex ...
La première corrige les liens,
Puis la seconde traitera les caractères non latins
8 déc. 2023 à 09:23
J'ai corrigé mon erreur et inverser les deux :
ring(217) "test testjofdsm 12345 https://forums.commentcamarche.net/forum/affich-37954204-securite-formulaire-html-php fydsifyis Ողջույն, ես ուզում էի իմանալ ձեր գինը. dfsufyuifd hufdusy" string(135) "test testjofdsm 12345 URL# fydsifyis Ողջույն, ես ուզում էի իմանալ ձեր գինը. dfsufyuifd hufdusy" string(78) "testLATINtestjofdsmLATIN12345LATINURLLATINfydsifyisLATINdfsufyuifdLATINhufdusy"
donc effectivement je n'ai plus d'URL ni de caractères non latin mais pourquoi tout mon texte s'est il collé ? m est censé faire le multiligne?
8 déc. 2023 à 09:59
le "m" permet de prendre en compte le multiligne... pas de le "créer".
Par contre.. attention...
Lorsque tu as des retours à la lignes dans tes textarea, ils sont traduits par les caractères \r\n ou \n
En "html", pour les voir, il faut mettre des <br>
En php, tu as une fonction qui permet de convertir les caractères de retour à la ligne en <br> : nl2br()
je t'invite à en regarder la doc.
PS: ta question initiale : Traitement des liens dans ton formulaire est traitée et résolue.
Je t'invite donc à mettre cette discussion en RESOLUE puis, si besoin, d'en ouvrir une nouvelle pour tes "nouveaux" soucis.
Modifié le 8 déc. 2023 à 10:11
Merci @jordane45 StatutModérateur,
effectivement je connais la fonction nl2br()- je vais regarder.
Merci de votre aide.
effectivement la première question résolue.!!
J