[RESOLU] Lire la chaîne à l envers

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 : [RESOLU] Lire la chaîne à l envers

Re: Lire la chaîne à l envers

par wisefun77 » 19 avr. 2022, 16:06

Bonjour à Tous,
j'ai trouvé la solution en passant par un regex. Que j'ai mis dans une function.

Code : Tout sélectionner

<?PHP function precedent() { $d = $_SESSION['Balises2']; $regex = "/(.*)[0-9]+\\[.*\\]/"; preg_match($regex, $d, $resultats); $reste = $resultats[1]; // $reste contient la chaine sans le dernier morceau echo $reste. "ELSEIF"; } ?>
Merci à tous.
Demain je passe l'entretient d'embauche. :roll: :roll: 8-| 8-|

Re: Lire la chaîne à l envers

par or 1 » 15 avr. 2022, 19:44

$_SESSION['Balises2'] = substr($nature,0,strrpos($nature,'$page',$pos));
il faut debuguer. avec par exemple :
var_dump($nature, '$page', $pos, strrpos($nature,'$page',$pos));

Re: Lire la chaîne à l envers

par wisefun77 » 15 avr. 2022, 17:03

Bonjour GuillaumeLM,

J'aimerai bien sincèrement.
Mais je suis nul hyper en array. :D :D :D
Je veux apprendre. \:D/
Merci de me guider.

Re: Lire la chaîne à l envers

par GuillaumeLM » 15 avr. 2022, 16:52

Bonjour,
et si tu passais par un array_count_values puis un array_slice, ça n'irais pas?

Re: Lire la chaîne à l envers

par wisefun77 » 15 avr. 2022, 16:37

Bonjour,
Celle-ci non plus

Code : Tout sélectionner

$_SESSION['Balises2'] = substr($nature,0,strrpos($nature,'$page',$pos));
Merci

Re: Lire la chaîne à l envers

par wisefun77 » 15 avr. 2022, 16:04

Bonjour,
voilà ce que j'ai essayé de faire.

Code : Tout sélectionner

elseif(isset($_SESSION['Balises2'])){ $page='6'; $nature = $_SESSION['Balises2']; $pos = strpos($nature, -$page); // // //Supprimer la chaine après la valeur de $pos = 25 $_SESSION['Balises2'] = strrpos($nature,0,-$pos); //precedent(); echo $_SESSION['Balises2']. "ELSEIF";
Merci

Re: Lire la chaîne à l envers

par wisefun77 » 15 avr. 2022, 16:04

Bonjour,
voilà ce que j'ai essayé de faire.

Code : Tout sélectionner

elseif(isset($_SESSION['Balises2'])){ $page='6'; $nature = $_SESSION['Balises2']; $pos = strpos($nature, -$page); // // //Supprimer la chaine après la valeur de $pos = 25 $_SESSION['Balises2'] = strrpos($nature,0,-$pos); //precedent(); echo $_SESSION['Balises2']. "ELSEIF";
Merci

Re: Lire la chaîne à l envers

par wisefun77 » 15 avr. 2022, 14:20

Bonjour or1,
Désolé j'ai tout supprimé et remis comme avant.
Je n'ai plus le code.

Re: Lire la chaîne à l envers

par or 1 » 15 avr. 2022, 13:49

J'ai essayé avec strrpos() et strripos(), sans résultats.
où est strrpos dans le code donné ?

Re: Lire la chaîne à l envers

par wisefun77 » 15 avr. 2022, 13:32

bonjour,
j'ai fait une condition sur les pages en cas de retour en arrière.
lorsque l'user clique sur le bouton précédent, cela arrive dans le elseIf.

Code : Tout sélectionner

elseif(isset($_SESSION["Balises2"])){ $page='4'; $Listenature = $_SESSION['listetype']; $nature = $_SESSION['Balises2']; $pos = strpos($nature, $page); // //Supprimer la chaine après la valeur de $pos $_SESSION['Balises2'] = substr($nature,0,$pos); $_SESSION['Balises2'] = $_SESSION['Balises2'].$page; echo $_SESSION['Balises2']. "ELSEIF";
c'est très bien pour page en page.
Mais j'ai des pages qui sont appelées plusieurs fois.
j'aimerai que sur ces pages si l'user à remplit plusieurs fois le même formulaire sur la même page, lorsqu'il fait précédent, cela ne retire que la dernière balise renseignée, et non toutes les balises avec le même chiffre.
Ex:
j'ai mis un marqueur dans chaque pages.
Page 1 >> formulaire rempli redirige vers la page 2.
Page2 >>demande si besoin d'ajouter une autre intervention.
Si oui ouverture de la page 3 avec le formulaire. une fois rempli l'user clique sur suivant et cela redirige vers la page 2, qui prends la nouvelle balise, et redemande si besoin d'ajouter une autre intervention.
Si l'user fait encore oui sur la page2, cela redirige vers la page 3, et ainsi de suite.
Si l'user fait précédent sur la page 2, cela redirige à la page 1 et supprime les balises avec le même marqueur.
J'aimerai que je puisse faire en sorte que cela ne supprime que la dernière balise et son marqueur.

Merci à vous

Re: Lire la chaîne à l envers

par or 1 » 14 avr. 2022, 20:46

J'ai essayé avec strrpos() et strripos(), sans résultats.
avec quel code ?

Lire la chaîne à l envers

par wisefun77 » 14 avr. 2022, 19:20

Bonjour,
J aimerai savoir s il est possible de lire une chaîne en partant de la fin et de supprimer tous ce qui est après la dernière balise?

Code : Tout sélectionner

[ADC_START][SDP]1[GUICHET]2[DEM]3[USER_CMDB_DIF_NON]45[DEM_PDT>TPX_1>]5[DEM_PDT>TPX_1>]5[DEM_PDT>TPX_1>]5[DEM_PDT>TPX_1>]5[DEM_PDT>TPX_1>]
Je dois supprimer la dernière balise 5.

Code : Tout sélectionner

5[DEM_PDT>TPX_1>]

Sachant que le chiffre n est pas toujours le même.
J'ai essayé avec strrpos() et strripos(), sans résultats.
Merci.