Version complète: sur le forum Webmaster Hub : Problème de connexion distante
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > AjaX et JavaScript
webpower
Hello, voilà j'ai un problème qui me bloque totalement.

Sur se serveur : www.votreimmobilier.fr, un script permet de se connecter à la base de donner de www.serialscan.com et de vérifier si un numéro est inséré dans ma base de donnée.

Le seul problème c'est que sa marche mais en faisant une altération des données.

Sinon le script (sur votreimmobilier.fr) va tout simple faire cette requete :

http://votreimmobilier.fr/www.serialscan.c...al=TD4567QZ8596

alors qu'il devrait juste faire :

http://www.serialscan.com/verifserial.php?...al=TD4567QZ8596

En gros il rajoute votreimmobilier.fr pour rien, comment le supprimer ?

Merci pour votre aide.
cyberlaura
Bonjour,

difficile à dire sans voir le code, mais ceci ressemble à un oubli de http:// devant www.serialscan.com
webpower
voici le code du fichier javascript qui se trouve sur le serveur serialscan :

CODE
function writediv(texte)
     {
     document.getElementById('serialbox').innerHTML = texte;
     }


function verifserial(serial)
     {
     if(serial != '')
               {
               if(serial.length<2)
                         writediv('<span style="color:#cc0000">Le numéro de série: <b><u>'+serial+'</u></b> est trop court</span>');
               else if(serial.length>100)
                         writediv('<span style="color:#cc0000">Le numéro de série: <b><u>'+serial+'</u></b> est trop long</span>');
               else if(texte = file('verifserial.php?serial='+escape(serial)))
                         {
          if(texte == 1)
               writediv('<span style="color:#cc0000">Le numéro de série: <b><u>'+serial+'</u></b> est déclaré dans la base de donnée.<br>Pour plus d\'information, veuillez vous connecter ou vous <a href="/?go=i1" >inscrire</a>.</span>');
          else if(texte == 2)
               writediv('<span style="color:#1A7917">Le numéro de série: <b><u>'+serial+'</u></b> n\'est pas déclaré dans la base de donnée.</span>');
          else
               writediv(texte);
                         }
               }

     }
function file(fichier)
     {
     if(window.XMLHttpRequest) // FIREFOX
          xhr_object = new XMLHttpRequest();
     else if(window.ActiveXObject) // IE
          xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
     else
          return(false);
     xhr_object.open("GET", fichier, false);
     xhr_object.send(null);
     if(xhr_object.readyState == 4) return(xhr_object.responseText);
     else return(false);
     }


et voici le code de "l'api" que vous pouvez ajouter sur votre serveur pour faire des recherches sans venir sur serialscan:

CODE
<?
echo'

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript" src="http://www.serialscan.com/api/js/jsapi.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>API</title>
<link href="http://www.serialscan.com/api/css/apistyle.css" rel="stylesheet" type="text/css" />

</head>
<body>
<br>





<input type="text" class="recherche" id="textfield2" name="serial" VALUE="Exemple: 123aZe5" onfocus="this.value=\'\'"  OnBlur="verifserial(this.value)" />


&nbsp;&nbsp;&nbsp;


<input type="submit"  value="Scanner" name="scann" value="" />  


<br><br>


<div id="serialbox">
</body>
</html>




';
?>
cyberlaura
Il me semble que sur la ligne
CODE
else if(texte = file('verifserial.php?serial='+escape(serial)))
tu devrais mettre
CODE
else if(texte = file('http://www.serialscan.com/verifserial.php?serial='+escape(serial)))
car tu n'es pas sur le serveur de serialscan au moment où tu l'appelles...
webpower
j'ai déjà essayé, mais enfaite il prends toujours en compte l'adresse de l'hébergement...
cyberlaura
Aie : j'ai lu plusieurs messages comme quoi XMLHttpRequest ne pourrait pas appeler des URL externes au domaine en cours. Question de sécurité semble t-il ...
webpower
hum plus tôt gênant.
Aurais-tu une solution ?
cyberlaura
Et bien, si ça ne peut pas passer en javascript, il faut le faire coté serveur, en php par exemple. Il n'a pas cette limitation en tout cas. Cela suppose un Submit et de fournir le code php qui va effectuer l'appel à verifserial.php.
webpower
le problème c'est au niveau de la connexion base de donnée...
cyberlaura
Ah non, le programme en php doit être le même qu'en javascript : il va juste appeler une URL sur ton serveur qui lui renverra uniquement la réponse de type oui/non
webpower
ok, je vais regarder en ajax pour faire un truc bien.
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.