Forums : Les possiblités de la plateforme Mozilla

Aller à la discussion :  Plus récente Plus ancienne

# Recuperation de liens precis dans une page + envoie a une base de donnees

Envoyé par : Utilisateur anonyme

Date : 15/07/2007 14:16

Bonjour, je souhaiterais me renseigner a propos d'un extension que j'aimerai realiser. Je me demandais s'il etait possible d'une quelconque maniere d'enregitrer des liens (url) d'une page affichee, mais des liens precis uniquement en le reperant par exemple en donnant leur debut.

Par exemple : recuperer tous les liens dont l'url commence par "http://lesiteweb.com/forum" ce qui aurait pour effet d'enregistrer par exemple les liens suivants:

  • http://lesiteweb.com/forum/index.php
  • http://lesiteweb.com/forum/index.php?page=salut
  • http://lesiteweb.com/forum/index.php?page=salut&action=bonjour

En gros n'enregistrer que ceux qui commencent par une expression donnee.

Mon probleme suivant serait de savoir s'il est possible de communiquer ces donnees a un script php. J'ai entendu parler de XMLHttpRequest() mais je ne vois pas vraiment comment faire circuler le lien via cette methode.

Merci a vous d'avance.

# Re: Recuperation de liens precis dans une page + envoie a une base de donnees

Envoyé par : Christophe Charron

Date : 16/07/2007 08:33

Bonjour,

Un petit script en javascript qui parcourt le dom de la page, stocke dans un tableau les adresses qui vont bien, envoie le tableau via XHR ?

P.S Je ne crois pas que ce message soit dans le bon forum : si un administrateur peut le déplacer ?

# Re: Recuperation de liens precis dans une page + envoie a une base de donnees

Envoyé par : Utilisateur anonyme

Date : 16/07/2007 16:25

Veuillez m'excuser de mon erreur :)

Sinon, je viens de faire fonctionner mon extension a 50% en effet sur ma base de donnees, je recois des entree, mais celle-ci sont vides.

Je pense que le probleme vient du fait de la recuperation des variables dans l'url. Si besoin je peux bien entendu poster le code ici.

# Re: Recuperation de liens precis dans une page + envoie a une base de donnees

Envoyé par : Christophe Charron

Date : 16/07/2007 20:07

bonsoir,

un petit exemple de ce qui est envoyé côté JS via XHR et comment c'est récupéré côté php pourrait permettre d'y voir plus clair, en effet

# Re: Recuperation de liens precis dans une page + envoie a une base de donnees

Envoyé par : Utilisateur anonyme

Date : 16/07/2007 22:20

Voici le code Javascript qui scrute la page et envoie les donnees

function jvp_magage()
 {
 window.addEventListener('DOMContentLoaded', jvp_envoi, true);
 }
function jvp_parcourir_page(doc)
 {
 ListeDesLiens = doc.getElementsByTagName("a");
 returnArray = new Array();
 j = 0;
 for(i = 0 ; linksList[i] ; i++)
 {
if(ListeDesLiens[i].href.search(/http:\/\/pow3rdbz.free.fr\/index.php/) != -1)
  {
  returnArray[j] = new Array();
  returnArray[j]["nom"] =  ListeDesLiens[i].href.match(/\?nom=([^&]+)&/)[1];
  returnArray[j]["prenom"] = ListeDesLiens[i].href.match(/prenom=([^&]+)&/)[1];
  returnArray[j]["age"] = ListeDesLiens[i].href.match(/age=(.+)$/)[1];
  j++;
 }
 }
return returnArray;
}   


function jvp_envoi(event)
{

 doc = event.originalTarget;
 href = doc.location.href;
 ouiounon = ((Math.random()) * 100) <= 20.0;
  if(ouiounon)
   {
lien = jvp_parcourir_page(doc); 
   }
  
  if(ouiounon)
   {
   req = new XMLHttpRequest();
   url = "http://pow3rdbz.free.fr/jvp/addprofile.php?pseudo=abc&acces=def";
   for(i = 0 ; lien[i] ; i++)
    {
	 j = i + 1;
    url2 = url + "&nom" + j + "=" + lien[i]["nom"] + "&prenom" + j + "=" + lien[i]["prenom"] + "&age" + j + "=" + lien[i]["age"];
 }
   req.open("GET", url2, true);
   req.send(null);
   }
  }
jvp_manage();

Et ici le code php qui recoit les donnees. La requetes s'effectue avec la methode GET

<?php
$pseudo = $_GET['pseudo'];
$password = $_GET['acces'];
$nom = addslashes($_GET['nom']);
$prenom = addslashes($_GET['prenom']);
$age = addslashes($_GET['age']);
if($pseudo == 'abc' and $password == 'def')
{
mysql_connect('localhost', 'pow3rdbz', 'xxxxxxx');
mysql_select_db('pow3rdbz');
mysql_query("INSERT INTO `jvp` VALUES('', '" . $nom . "', '" . $prenom . "', '" . $age . "')");
}
?>

merci de votre aide.

# Re: Recuperation de liens precis dans une page + envoie a une base de donnees

Envoyé par : Christophe Charron

Date : 17/07/2007 08:42

Bonjour,

normal, vous ne traitez pas le tableau côté php

Pour ma part, je serialise un tableau côté javascript

vl_c_donnees+="vl_tabjs="+encodeURIComponent(fa_jsarray2php_00(vl_t_acteur))+"&";
function fa_jsarray2php_00(tab) {
  var chaine = "";
  var idx = 0;
  for (i in tab) {
      if (isNaN(i)) chaine += "s:" + i.length + ":\"" + i + "\";";
      else chaine += "i:" + i + ";";
      var valeur = tab[i];
      switch (typeof valeur) {
          case "string" :
              valeur = fa_jsarray2php_01(valeur);
              chaine += "s:" + valeur.length + ":\"" + valeur + "\";";
              break;
          case "number" :
              if (valeur > parseInt(valeur)) chaine += "d:" + valeur + ";";
              else if (valeur > _MAX_INT) chaine += "d:" + valeur + ";";
              else chaine += "i:" + valeur + ";";
              break;
          case "boolean" :
              chaine += "b:" + ((valeur === true) ? 1 : 0) + ";";
              break;
          case "object" :
              if (valeur === null) chaine += "N;";
              else chaine += fa_jsarray2php_00(valeur);
              break;
          default :
              chaine += "N;";
      }
      idx++;
  }
  return "a:" + idx + ":{" + chaine + "}";
}
function fa_jsarray2php_01(chaine) {
  return chaine.replace(/\"/g, "&quot;");
}

je fais un post et côté php je récupère ma vl_tabjs que je désérialise

$vl_tabphp=unserialize(stripslashes($vl_tabjs));
   foreach($vl_tabphp as $vl_raf) {
     $vl_e_i++;
     $toto=$$vl_tabphp[$vl_e_i];
   }

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.