afficher des données externes sur son site

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 : afficher des données externes sur son site

Re: afficher des données externes sur son site

par xTG » 12 juil. 2012, 09:08

Une URL a une longueur limite attention...

Re: afficher des données externes sur son site

par davidator » 11 juil. 2012, 20:24

Merci à xTG, AB ,moogli , Mazarini qui m'ont aidé dans mon petit projet!et pour votre réactivité à mes questions!
phpfrance.com, un vrai forum d'entraide!
un petit pas pour vous, mais un pas de géant pour moi :D

ps: pour ceux qui veulent tester le script, voici un exemple d'url fonctionnelle générée par l'application extérieure (mon script n'utilise que les infos de base, toutes les variables ne sont pas passées <= je crois que c'est comme ca qu'on dit! )
:
http://adresse_du_siteweb/td3_status/status.php?roundnum=10&breaknum=0&level=9&isround=1&nextisround=1&state=2&statedesc=inprogress&buyins=6&numberofplayers=6&n=6&defaultbuyinfee=50&defaultbuyinrake=0&defaultbuyinchips=1000&totalbuyinsamount=300&totalbuyinsrake=0&totalbuyinschips=6000&numberofleaguemembers=0&nm=0&pot=300&prizepool=300&pp=300&playersleft=2&players=2&tablesleft=1&tables=1&secondsleft=600&secondselapsed=0&clockpaused=1&clockpausedseconds=28971&timeofday=194758&time=1342028878&lastplayermovetime=1341906311&rebuysallowed=0&rebuysover=0&rebuysleft=0&rebuyssecondsleft=0&defaultrebuyfee=50&defaultrebuyrake=0&defaultrebuychips=1000&totalrebuys=0&totalnumberofrebuys=0&tnr=0&totalrebuysamount=0&totalrebuysrake=0&totalrebuyschips=0&addonsallowed=0&addonsover=0&addonsleft=0&addonssecondsleft=0&defaultaddonfee=0&defaultaddonrake=0&defaultaddonchips=0&totaladdons=0&totalnumberofaddons=0&tna=0&totaladdonsamount=0&totaladdonsrake=0&totaladdonschips=0&inthemoneyrank=1&mr=1&totalfixedrake=0&fixedrake=0&ante=0&smallblind=300&bigblind=600&limit1=300&limit2=600&gametype=2&gamename=texas%20hold%20em&nextante=0&nextsmallblind=400&nextbigblind=800&nextlimit1=400&nextlimit2=800&nextgamename=texas%20hold%20em&nextgametype=2&chipcount=6000&guaranteedpot=0&preguaranteedpot=300&houseadds=0&housecontribution=0

Re: afficher des données externes sur son site

par davidator » 11 juil. 2012, 19:39

Juste une petite remarque, enlèves les blancs après les = dans l'url.
Des blancs? a quel endroit? quelle url?

Re: afficher des données externes sur son site

par davidator » 11 juil. 2012, 19:38

salut,

ajoute un var_dump($_GET); avant le if (avec les filter_var) pour voir ce que contient l'url comme "variable".

tu pourras ainsi vérifier que tes données sont (ou non) cohérente avec ce que tu attends (perso nom / prénom qui doivent être des entiers métonne :D ).


+
Merci pour le conseil!
mais enfait, si ca ne fonctionnait pas, c'est parce que j'avais mal écrit la fonction dans mon code!
if(filter_var($nom, FILTER_VALIDATE_INT) && ($prenom, FILTER_VALIDATE_INT)) ; 
au lieu de
if(filter_var($nom, FILTER_VALIDATE_INT) && filter_var($prenom, FILTER_VALIDATE_INT));
nom et prenom sont bien des chiffres entiers! c'est juste pour l'exemple nom et prenom!

Re: afficher des données externes sur son site

par Mazarini » 11 juil. 2012, 13:27

Juste une petite remarque, enlèves les blancs après les = dans l'url.

Re: afficher des données externes sur son site

par moogli » 11 juil. 2012, 12:32

salut,

ajoute un var_dump($_GET); avant le if (avec les filter_var) pour voir ce que contient l'url comme "variable".

tu pourras ainsi vérifier que tes données sont (ou non) cohérente avec ce que tu attends (perso nom / prénom qui doivent être des entiers métonne :D ).


+

Re: afficher des données externes sur son site

par davidator » 11 juil. 2012, 10:49

Bonjour
j'arrive bien à générer un fichier XML que je lis ensuite avec un parseur en js et ca fonctionne nickel!
mais j'ai un souci avec l'étape 3: lorsque je fais le test filter_var (mes données sont des entiers), cela ne fonctionne pas!
j'ai cherché un peu partout mais je ne trouve pas de réponse!
<?php

//1.Test de l' existence des variables -si ok: étape 2

if(isset($_GET['Nom']) && isset($_GET['Prenom'])&& !empty($_GET['Nom']) && !empty($_GET['Prenom']));
{

//2.Réception des variables
$date = utf8_encode(date("d/m/Y"));
$nom = utf8_encode($_GET['Nom']);
$prenom = utf8_encode($_GET['Prenom']);
}

//3. Verification du Format "doit être un entier"- si ok: étape 4
if(filter_var($nom, FILTER_VALIDATE_INT) && filter_var($prenom, FILTER_VALIDATE_INT));
//4.Ecriture des données des variables dans un fichier XML
{
$fichierstatut= fopen('statut.xml','w+');
fseek($fichierstatut, 0);
fputs($fichierstatut, '<?xml version="1.0" encoding="UTF-8"?><root><STATUT><date>'.$date.'</date><nom>'.$nom.'</nom><prenom>.$prenom.'</prenom></STATUT></root>);
fclose($fichierstatut);
}
?>

Re: afficher des données externes sur son site

par AB » 07 juil. 2012, 16:59

Remarque : Evites d'utiliser AND. C'est l'opérateur "&&" qui suit la règle de la logique commune, pas le AND. Dans bien des cas le résultat est identique mais pas toujours :
echo '<pre>';
$a = 1;
$b = null;
$c = isset($a) && isset($b);
$d = ( isset($a) AND isset($b) );
$e = isset($a,$b);
$f = isset($a) AND isset($b);
var_dump($a, $b, $c, $d, $e, $f); 
echo '</pre>';

résultat : 
int(1)
NULL
bool(false)
bool(false)
bool(false)
bool(true)

Re: afficher des données externes sur son site

par xTG » 07 juil. 2012, 13:24

Pour ne rien faire il suffit d'englober tout le reste du traitement dans le if.
Ainsi si la condition n'est pas respectée il ne rentre pas dans le if et donc il ne fait rien. ;)

Re: afficher des données externes sur son site

par davidator » 07 juil. 2012, 12:11

<?php

//1.Test de l' existence des variables -si ok: étape 2 
if(isset($_POST['Nom']) AND isset($_POST['Prenom'])){

//2.Réception des variables
$date = utf8_encode(date("d/m/Y"));
$nom = utf8_encode($_POST['Nom']);
$prenom = utf8_encode($_POST['Prenom']);
}



//3. Verification du Format - si ok: étape 4
if(filter_var($nom, FILTER_VALIDATE_INT) AND ($prenom, FILTER_VALIDATE_INT)!== false)){
//4.Ecriture des données des variables dans un fichier texte
$data='&date= '.$date.' & &nom= '.$nom.'& &prenom= '.$prenom.' &';
$fichierstatut= fopen('statut.txt','r+');
fputs($fichierstatut,$data);
fclose($fichierstatut);
}
?>
Comme ça pour le test? et si la condition n'est pas remplie, comment faire pour lui dire de ne rien faire? Rien faire est ce une action par défaut si la condition n'est pas remplie?
Il commence à y avoir des lignes! je vais attraper le vertige! en tout cas merci pour ton aide!

Re: afficher des données externes sur son site

par xTG » 07 juil. 2012, 11:53

Avant la récupération on teste l'existence, c'est mieux dans ce sens. :P

Re: afficher des données externes sur son site

par davidator » 07 juil. 2012, 11:48

donc ça devrait ressembler à quelque chose comme ça , correct?
<?php
//1.réception des variables
$date = utf8_encode(date("d/m/Y"));
$nom = utf8_encode($_POST['Nom']);
$prenom = utf8_encode($_POST['Prenom']);

//2.Test de l' existence des variables -si ok: étape 3

//3. Verification du Format - si ok: étape 4

//4.Ecriture des données des variables dans un fichier texte
$data='&date= '.$date.' & &nom= '.$nom.'& &prenom= '.$prenom.' &';
$fichierstatut= fopen('statut.txt','r+');
fputs($fichierstatut,$data);
fclose($fichierstatut);
?>

Re: afficher des données externes sur son site

par xTG » 07 juil. 2012, 11:40

Avant d'utiliser des données en provenance d'un formulaire il faut tester leur existence, c'est plus propre.
Regardes du côté de la fonction isset().
Et il faut toujours vérifier le type de données qu'on reçoit, en gros si tu attends un entier faut pas recevoir un flottant.
Tu as tout un tas de fonctions pour tester cela, mais ma préféré reste encore filter_var().

Re: afficher des données externes sur son site

par davidator » 07 juil. 2012, 11:29

Est-ce que ce script semble propre?
<?php

$date = utf8_encode(date("d/m/Y"));
$nom = utf8_encode($_POST['Nom']);
$prenom = utf8_encode($_POST['Prenom']);

$data='&date= '.$date.' & &nom= '.$nom.'& &prenom= '.$prenom.' &';
$fichierstatut= fopen('statut.txt','r+');
fputs($fichierstatut,$data);
fclose($fichierstatut);
?>

Re: afficher des données externes sur son site

par davidator » 07 juil. 2012, 10:46

merci xTG

Non, ça ne grossira pas car mes données sont "temporaires" et seront écrasées à chaque nouvel envoi par url des données par l'application externe ( pour info, les variables envoyées sont des infos de statut à un instant T et mises à jour régulièrement)

Donc l'écriture dans un fichier est tout à fait la solution qu'il me faut!

Je vais me pencher sur le lien que tu m'as donné et je viendrai poster mes retours!