Recuperer l'id de session php a l'aide d'un regex

Recuperer l'id de session php a l'aide d'un regex - PHP - Programmation

Marsh Posté le 22-06-2006 à 20:07:59    

Bonjour  :hello:  
 
J'ai besoin de récupérer l'id de session php d'un site distant. Pour cela, je récupère
le source de la page par php. Je voudrais enssuite en extraire l'id de session par preg_replace,  
mais impossible de trouver un regex qui fonctionne.
 
Quelqu'un a une idée ?
 
Merci  :sol:

Reply

Marsh Posté le 22-06-2006 à 20:07:59   

Reply

Marsh Posté le 22-06-2006 à 20:26:55    

L'id de session du site distant est stocké dans l'url ou un cookie ?


---------------
2 * yo = yoyo
Reply

Marsh Posté le 22-06-2006 à 20:42:27    

2xyo a écrit :

L'id de session du site distant est stocké dans l'url ou un cookie ?


 
Dans les urls dans le code de la page sous forme de lien

Code :
  1. <a href="index.php?idsession=XXXXXXXXXXXXXX">lien</a>

Reply

Marsh Posté le 23-06-2006 à 01:06:55    

Y fait chaud ce soir...  :ouch:  
 
 
 
 
 
 
 
 
(Up maskaÿ, je vous ai eu)

Reply

Marsh Posté le 24-06-2006 à 00:29:23    

Up  :sarcastic:  
 
Y'a pas un HFRien qui s'y connait en regex ou quoi ?

Reply

Marsh Posté le 24-06-2006 à 00:40:23    

jol30 a écrit :

Up  :sarcastic:  
 
Y'a pas un HFRien qui s'y connait en regex ou quoi ?


T'as une chaine <a href="index.php?idsession=XXXXXXXXXXXXXX">lien</a>
et tu veux recupere le X ?
strpos et substr suffisent pour cela.

Reply

Marsh Posté le 24-06-2006 à 00:47:26    

afbilou a écrit :

T'as une chaine <a href="index.php?idsession=XXXXXXXXXXXXXX">lien</a>
et tu veux recupere le X ?
strpos et substr suffisent pour cela.


 
Pour la précision  :(  
 
Alors qu'un bon vieux regex  :D  

Reply

Marsh Posté le 24-06-2006 à 01:14:02    

strpos + substr sera plus efficace que ta regex que tu ne sais pas ecrire de toute facon.

Reply

Marsh Posté le 02-07-2006 à 22:10:31    

si tu veut juste remplacer ton id de session, j'ai fais ceci :
 
<?php
$texte = '<a href="index.php?idsession=XXXXXXXXXX">lien</a>';
$texte = preg_replace('!<a href="index\.php\?idsession=([.]+)">[.]</a>!', '<a href="index.php?id=$1', $texte);
 
?>
 
maintenant à toi de transformer la variable $1 en la variable que tu veut voir affiché à la place, tient moi au courant, sinon je t'aiderai  
 
@+


Message édité par yves10 le 02-07-2006 à 22:12:04
Reply

Marsh Posté le 02-07-2006 à 22:32:09    

Ca ne risque pas de marcher :s
 
[.] = le caractere point !
 
donc ton masque va matcher les chaine de ce genre :
 
<a href="index.php?idsession=.........................">.</a>
ou
<a href="index.php?idsession=...............................................................">.</a>
 
Ce genre de truc quoi :s

Reply

Marsh Posté le 02-07-2006 à 22:32:09   

Reply

Marsh Posté le 03-07-2006 à 04:28:56    

déja fait un test au lieu et tu verras,  
 
et tu comprendras que dans une classe, le . signifie [n'importe quel caractère]
 
alors sur ce, ou tu sais ou tu sais pas mais quand tu sais pas, tu dis rien!

Reply

Marsh Posté le 03-07-2006 à 04:38:10    

pour la preuve fais un test en local avec ce code,
(je me demande pourquoi on passe du temps à coder pour les autres alors qu'ils ne testent même pas)
 

Code :
  1. <?php
  2. $texte = '<a href="index.php?idsession=cestbizarrejaiditqueçaallaispasetpourtantcamarcheheuheu2">lien</a>';
  3. $texte = preg_replace('!<a href="index\.php\?idsession=([.]+)">[.]</a>!', '<a href="index.php?id=$1', $texte);
  4. echo $texte;
  5. ?>

Reply

Marsh Posté le 03-07-2006 à 07:45:47    

yves10 a écrit :

pour la preuve fais un test en local avec ce code,
(je me demande pourquoi on passe du temps à coder pour les autres alors qu'ils ne testent même pas)
 

Code :
  1. <?php
  2. $texte = '<a href="index.php?idsession=cestbizarrejaiditqueçaallaispasetpourtantcamarcheheuheu2">lien</a>';
  3. $texte = preg_replace('!<a href="index\.php\?idsession=([.]+)">[.]</a>!', '<a href="index.php?id=$1', $texte);
  4. echo $texte;
  5. ?>



 
C'est bien pour ça qu'avant de cracher une solution à un mec, je prend en compte sa motivation. :/

Reply

Marsh Posté le 03-07-2006 à 10:42:38    

yves10 a écrit :

déja fait un test au lieu et tu verras,  
 
et tu comprendras que dans une classe, le . signifie [n'importe quel caractère]
 
alors sur ce, ou tu sais ou tu sais pas mais quand tu sais pas, tu dis rien!


  • dans une classe tout caractere perd sa specifité a l'exception de -, ] et \

donc [.] matche le caractere "." et non pas un caractere jocker.

  • ton exemple ne marche effectivement pas, comme attendu.
  • j'avais pas besoin de tester ... il n'y avait aucune ambiguite possible sur le fait que cela n'allait pas marcher.
  • dans l'hypothese que ca ait marché ... tu m'expliques l'utilite de mettre une classe pour un seul caractere ?
  • tu t'emportes facilement dit moi ... et quand t'es enervé tu reflechis n'importe comment, parce que tu n'as meme pas vu que ton test foirait [:petrus75] et quand ton preg_replace ne fonctionne pas, il te renvoie la chaine initiale parce qu'il n'a fait aucun remplacement [:petrus75]


Message édité par afbilou le 03-07-2006 à 10:55:16
Reply

Marsh Posté le 03-07-2006 à 13:29:34    

absolument,  j'ai fait un test à l'arrache ce matin 04h10 et comme il me renvoyait le code initial, j'ai cru que ça fonctionnait, je rectifie de suite, dsl

Reply

Marsh Posté le 03-07-2006 à 13:37:07    

voici le code qui fonctionne encore désolé, je suis mal luné au réveil  
 

Code :
  1. <?php
  2. $remplacement = '054cfsd25r4';// au pif
  3. $texte = '<a href="index.php?idsession=13rez56zer4fdqs68">lien</a>';
  4. $texte = preg_replace('!<a href="index\.php\?idsession=[a-z0-9]+">[a-z0-9]+</a>!i', '<a href="index.php?id=' . $remplacement . '>lien fonctionnel désormais</a>', $texte);
  5. echo $texte;
  6. ?>


 
voili voilou

Reply

Marsh Posté le 03-07-2006 à 14:04:36    

Je vais tester ça  :whistle:  
 
Merci Yves :jap:


Message édité par jol30 le 03-07-2006 à 14:04:49
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed