Récupérer une valeur renvoyée par un applet

Signaler
Messages postés
12
Date d'inscription
jeudi 8 février 2007
Statut
Membre
Dernière intervention
15 septembre 2010
-
Messages postés
12
Date d'inscription
jeudi 8 février 2007
Statut
Membre
Dernière intervention
15 septembre 2010
-
Bonjour,
Je cherche à savoir comment récupérer une valeur renvoyée par un applet pour l'enregistrer dans une variable php.
En fait cette valeur correspond à l'adresse IP locale de l'ordinateur comme sur ce site.
Je cherche à enregistrer cette adresse locale pour différencier dans la base de données les ordinateurs de ma société qui ont tous la même adresse IP publique.
Merci d'avance pour votre aide

12 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
130
Salut,

L'applet est exécuter sur le poste distant, alors que le script PHP est interprêté niveau serveur. Il te faut donc faire une requête HTTP en lui passant en paramètre la valeur de la variable que tu veux stocker en base de données.
______________________________________
DarK Sidious
Messages postés
12
Date d'inscription
jeudi 8 février 2007
Statut
Membre
Dernière intervention
15 septembre 2010

Merci d'avoir répondu aussi vite, cependant je vois pas trop bien comment m'y prendre parce que ca a l'air sacremment compliqué.
Il faudrait créer une requete HTTP pour enregistrer l'applet dans une variable php?
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
130
Salut,

Une variable php n'a d'existence que sur le serveur. C'est le serveur qui interprête le code PHP pour avoir une page HTML en sortie. Donc quand tu fait (pas sûr de la syntaxe, ca fait belle lurette que j'ai pas fait de php !) :

<html>
<head>
</head>

<?php
$toto = "test";
?>
<!-- suite de la page HTML -->
<?php
print(toto);
?>

</html>


Cela te génère :
<html>
<head>
</head>

<!-- suite de la page HTML -->
test

</html>


Le navigateur n'a donc aucune information sur la variable toto, et inversement : la variable toto est interprêté une fois par le serveur, est c'est tout.

Donc imaginons que tu veuille faire un truc du genre :

<html>
<head>
</head>

<?php
$toto = "test";
?>
<!-- suite de la page HTML -->
<?php
print(toto);
?>

<?php toto = ?> unInputText.value

</html>


C'est un code totalement faux, mais c'est pour l'exemple.

Ceci n'est pas possible car une fois que la page HTML est générée par le serveur php, tu as beau mettre tout ce que tu veux dans le input que, ta variable toto ne sera jamais mise à jour, étant donné que tu ne notifie pas (par une requête HTTP) au serveur de mettre à jour la variable toto.

C'est le même principe avec une applet : une applet est un programme java qui est téléchargé et exécuté sur le poste de l'utilisateur. Elle est totalement découplée du serveur d'application. Donc si tu veux interragir avec le serveur d'application (php, java, .net ou autre), il faut lui envoyer une requête http, du style : http://www.tonsite.com/tonaction.php?variable=valeur

Et dans ta page php "tonaction.php" tu récupère la valeur "valeur" du paramètre "variable".

______________________________________
DarK Sidious
Messages postés
12
Date d'inscription
jeudi 8 février 2007
Statut
Membre
Dernière intervention
15 septembre 2010

Moi c'est l'inverse je gère plutot bien le php mais pas du tout les codes java.
Donc pour récupérer une variable dans la barre d'adresse, je sais faire mais comment on peut exécuter directement l'applet et n'avoir que la valeur "valeur"?
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
130
Salut,

Le but n'est pas d'exécuter l'applet en vue de récupérer une valeur mais que ce soit l'applet qui envoie la requête au serveur afin de lui envoyer la valeur.

Je te laisse lire ceci

______________________________________
DarK Sidious
Messages postés
12
Date d'inscription
jeudi 8 février 2007
Statut
Membre
Dernière intervention
15 septembre 2010

Sur le principe je comprend comment ca fonctionnerait mais pour le mettre en oeuvre c'est une autre histoire. Je ne sais meme pas ou integrer ce code et entre quelles balises.
J'ai remarqué aussi sur cette page un code pour obtenir directement cette adresse ip. Ca ne serait pas plus facile à utiliser pour récupérer la valeur?
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
130
Salut,

Entre quelle balises ??? Une applet est un programme java, il est totalement découplé de la page HTML.

C'est comme si tu lancais un executable à partir du navigateur web...

Sinon, je vois pas ce que tu veux faire avec l'adresse IP : en quoi le serveur pourrait se servir de l'IP de tout les clients connectés ?
______________________________________
DarK Sidious
Messages postés
12
Date d'inscription
jeudi 8 février 2007
Statut
Membre
Dernière intervention
15 septembre 2010

Bin en fait j'utilise le code php suivant pour récupérer l'adresse ip publique
function get_ip() {
return (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR'];
}

mais sur le serveur de mon entreprise, tous les ordinateurs sont reliés ensemble donc l'adresse publique est identique et j'ai trouvé ce système pour les différencier mais je n'arrive pas à récupérer cette adresse ip pour l'enregistrer en tant que variable php
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
130
Salut,

Ah parce que tu utilise un applet uniquement pour récupèrer l'adresse IP de la machine, zut, j'avais pas fait gaffe à ton message d'origine !

C'est sûrement bien plus simple à faire en PHP que de faire une applet : tu as essayé de chercher sur le net pour trouver l'ip publique directement en php ?

Essaye avec ceci :
http://roshanbh.com.np/2007/12/getting-real-ip-address-in-php.html
______________________________________
DarK Sidious
Messages postés
12
Date d'inscription
jeudi 8 février 2007
Statut
Membre
Dernière intervention
15 septembre 2010

Bin mon code récupére deja l'adresse ip publique et la page que tu m'indique est identique à part que c'est plus long. C'est l'adresse ip locale qui m'intéresse et en php, il n'y a apparement pas de solution pour la récupérer. Voici mon code actuel
<SCRIPT language=JavaScript>
function FAffIpLocal(IP) {
document.getElementById("iplocal").innerHTML=IP;
}

var ipl=
"";
</SCRIPT>

<?php
echo getenv("REMOTE_ADDR");
$ipl="<SCRIPT language=JavaScript>document.write(ipl);</SCRIPT>";
echo "$ipl";
?>


Le problème c'est que ca enregistre <SCRIPT language=JavaScript>document.write(ipl);</SCRIPT> dans ma base de données et pas une adresse du genre 192.168.1.2
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
130
Salut,

Oui forcément, c'est ce que je t'ai dit tout à l'heure : le code PHP est interprêté niveau serveur pour générer une page HTML, donc dans ton code là, il attribut une valeur à ta variable ipl (en l'occurence : "<SCRIPT language=JavaScript>document.write(ipl);</SCRIPT>"), et à la fin, il génère la page HTML (donc l'applet n'existe même pas encore).

Puis il envoie la page HTML générée au navigateur, et là, il exécute l'applet. Donc ta variable ipl est très loin de contenir quoi que ce soit ayant à voir avec l'applet !

Et avec ca donne quoi ?

Ce sera bien plus rapide de le gèrer en javascript qu'en java pur et plus simple en plus !
______________________________________
DarK Sidious
Messages postés
12
Date d'inscription
jeudi 8 février 2007
Statut
Membre
Dernière intervention
15 septembre 2010

J'ai deja testé ce code mais ca ne fonctionne pas sur IE et puis ca renvoit les valeurs localhost et 127.0.0.1 donc pas l'adresse ip locale