language sms et mise en chaine depuis texarea

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : language sms et mise en chaine depuis texarea

par BeRoots » 25 mai 2006, 13:13

ok, j'ai réussi :D

merci Ryle :wink:

par BeRoots » 25 mai 2006, 11:54

j'ai plus ou moins essayer mais j'ai pas trop reussi :cry:

existe il un moyen d'afficher en echo tout le contenu récuperé, avec les \r\n et \n ?

par Ryle » 25 mai 2006, 11:15

Pourquoi ne pas utiliser le nl2br uniquement pour l'affichage en prévisualisation et travailler sur le code tel qu'il a été saisi ? Il te suffit alors de remplacer les "\r\n" et "\n" par "***"

C'est plus élégant que de travailler sur du code html, et puis si tu veux offrir la possibilité de modifier, il te suffit juste de l'afficher sans avoir a effectuer l'opération inverse pour virer les <br> :)

par BeRoots » 25 mai 2006, 02:20

bon, j'ai essayer de faire avec strtr() et un tableau associatif comme suit mais j'ai exactement le même problème :cry:
<?php
// enregistrement de $message par post depuis un textarea d'un autre formulaire vers le champ cacher suivant
?>
<input type="hidden" name="sms" value="<?php echo $message ?>" />
<?php
$sms = nl2br($POST_['sms']);
$tableau = array("<br />" => "***", " " => "+");
$message_final = strtr($message, $tableau);
pourquoi il perciste un espace après chaque *** remplacer :-k
pourtant, strtr() ne tient pas compte de la difference de longueur des deux arguments... :?

si quelqu'un peut m'aider :wink:
merci d'avance.

par BeRoots » 24 mai 2006, 18:56

bon, j'ai vue pour la fonction nl2br() qui fonctionne très bien :)

par contre j'ai maintenant des problème avec str_replace() :?

je m'explique:
- j'ai une chaine du genre $string1="une chaine longue<br />qui passe à la ligne<br />etc...etc..."

mon but est de modifier cette chaine pour avoir ceci:
- "une+chaine+longue***qui+passe+à+la+ligne***etc...etc..."

j'ai donc fait ceci:
// ma chaine de depart
$string1 = "une chaine longue<br />qui passe à la ligne<br />etc...etc...";

// je remplace tout les <br /> par ***
$string2 = str_replace('<br />', '***', $string1);

// je remplace ensuite touts les espaces par des +
$string3 = str_replace(' ', '+', $string2);

// ici on affiche le resultat
echo $string3;
le problème est que cela m'affiche une+chaine+longue*** qui+passe+à+la+ligne*** etc...etc..., et je n'arrive pas à faire en sorte qu'il n'y ai pas d'espace après *** :cry:

c'est donc sur $string2 qu'il y à un soucis et en plus l'espace laisser par erreur n'est pas remplacer par un + quand je definit $string3 :-k

quelqu'un peut il m'expliquer comment solver ce problème :wink:

par BeRoots » 17 mai 2006, 18:25

ok, j'ai fini par trouver :D

pour les espaces, il faut les remplacer par des + (mais sans sa fonctionne aussi)

pour les retour chariots, il faut les remplacer par ***


je vait maintenant regarder du coté de la fonction nl2br() pour voir comment sa ce passe et ensuite essayer de remplacer touts les <br> par *** et tout les espaces par des + via les regex...

je laisse le sujet ouvert un moment au cas où :wink:

par BeRoots » 15 mai 2006, 20:52

bon j'ai fait quelque essais pour voir mais j'ai rien trouver de concret :(

vue que le sms est envoyer sous forme d'une url via http, il faut donc remplacer chaque espace par des signe +

par contre j'ai tester \n et - pour les retours chariot, mais rien ne fonctionne :cry:

les \n affiche \\n sur le portable et le - s'affiche tel quel :-k

si quelqu'un peut m'aider ;)

merci d'avance

par BeRoots » 15 mai 2006, 18:36

ce que tu ma expliqué pour les champs cacher, c'est déjà ce que je fait mais il faut que je traite la chaine issue du textarea afin de la formater en code sms :-k

donc je vais reprendre un peu pour ceux qui voudrai m'aider ;)

je cherche à savoir quel type de code est utilisé pour les sms?
(vue que l'on passe le tout dans une url à l'envoi, je croit comprendre que les espace serai des + mais pour les retours chariot???)
surtout pour la reprécentation des retours chariot :wink:

si quelqu'un peut m'aider :)

par Avicus » 14 mai 2006, 17:40

Bon je vais essayer de faire au mieux.

Premierement pour la longueur du message : Fait une vérification via Javascript si tu veux mais fait toujours une vérification coté serveur, c'est à dire avec une fonction PHP.

Deuxièmement pour transmettre la valeur.
On appellera $_POST['texte'] la variable qui récupere le texte.

Ceci sera le code de ton champ caché dans le second formulaire :

Code : Tout sélectionner

<input type="hidden" name="texte" value="<?=$_POST['texte']?>"
A noter :
<?=$_POST['texte']?> est équivalent à <? echo $_POST['texte']?>


Enfin, dans les SMS je sais pas du tout comment sont notés les sauts de ligne mais je suppose que ce sont les même que dans ton textarea.

par BeRoots » 14 mai 2006, 16:42

en faite, c'est pour un envoi de sms via http...

j'ai un premier formulaire sur lequel on peut entrer sont message avec une gestion de erreur de saisie...(via certaine conditions)

ensuite, si tout est ok, on affiche l'aperçu ainsi qu'un second formulaire avec des champs cacher afin de récuperé les variables du premier formulaire pour pouvoir de nouveau les récuperer pour traitement par post.

c'est donc assez complexe car en plus de ça, mon sms final doit avoir un nombre maxi de 160 caracteres.

j'ai un script qui me bloque le contenu du textarea à 160 caracteres et
si j'utilise la touche entrée lors de la saisie du sms, ça me compte 1 caractere comme sur un tel portable.
donc il faut que je stock le sms final quelque part afin de l'envoyer via http à ma passerelle sms.

il faut donc imperativement que je comprenne comment est representer un saut de ligne dans un sms afin de le noter de façon similaire dans ma chaine sms à soumettre :-k

si quelqu'un comprend mon problème :wink:

ps. sinon pour 1°), merci je pense que ça doit faire l'affaire :wink:

par Avicus » 14 mai 2006, 16:16

Bonjour,

1) pour ton saut de ligne il faut que à l'affichage ou alors à l'enregistrement dans la base de donnée tu éxécute la fonction nl2br(); sur ta variable de texte.
Dans un textarea les sauts de ligne sont enregistré en tant que \n. La fonction te permet de les remplacer par leur équivalent en HTML <br>

2) Je comprend pas vraiment ce que tu veux faire... Quel est le but ?

par Truc » 14 mai 2006, 16:14

Salut,
Je sais pas ce que tu veux vraiment faire avec le champ caché mais regarde du coté de nl2br() pour retrouver les sauts de lignes d'un textarea.

language sms et mise en chaine depuis texarea

par BeRoots » 14 mai 2006, 16:09

salut à tous :)

j'ai un petit problème sur un formulaire complexe :cry:
je cherche à conserver les retours à la ligne d'un textarea lors de sa recuperation par post afin de l'afficher tel quel sur une page d'aperçu. :-k

mon problème est que tout le texte est afficher à la suite sans les passages à la ligne :?

1°) comment puis je faire pour conserver les retours à la ligne comme dans le textarea?

De plus j'aimerai faire en sorte de sauver le contenu de ce textarea dans un champs cacher afin de pouvoir le récuperer de nouveau pour traitement et ce avec les saut de ligne.

2°) comment puis je revoyer en echo ce contenu avec les retours à la ligne dans un champs cacher?

si quelqu'un à une solution à me proposer :wink:

merci d'avance.