Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

Aller à la page :  1 2

# GM_xmlhttpRequest

Envoyé par : candreolli

Date : 16/03/2006 04:38

Voila j'ai un petit probleme. J'ai besoin de récupérer des données sur un site. J'utilise Greasmonkey pour cela. Le truc c'est que je veux envoyer mes données a une page php sur mon serveur.

Je comprends pas ce qui ne amrche pas.

Je poste ici mon code en esperant que quelqu'un me dira ce qui ne va pas.

voila le javascript present dans le userscript

 GM_xmlhttpRequest({
			method: 'GET',
			url: 'http://monsite.club.fr/update.php',
			headers: {
				'User-agent': 'EX strategic database integrator',
				'Content-Type': 'application/x-www-form-urlencoded',
			},
			data: reper=document.body.innerHTML,
			
			})

Voila ma page php

<?php

mysql_connect("localhost", "root", "");
mysql_select_db("test");





$text=$_POST['reper'];
mysql_query("INSERT INTO ref (ID, txt) VALUES ('', '$text')");
mysql_close();


?>

Merci d'avance

# Re: GM_xmlhttpRequest

Envoyé par : Piou2fois

Date : 16/03/2006 07:57

Hello

Ta méthode d'envoi est en "GET" et tu fais un $_POST pour récupérer la valeur, ça ne peut pas fonctionner.

Remplacer $_POST par $_GET et ça devrait rouler.

Par contre, c'est quoi l'intérêt de préciser une valeur vide pour ID ? Il suffit de mettre cette requète là :

INSERT INTO ref(txt) VALUES ('$text')

# Re: GM_xmlhttpRequest

Envoyé par : laurentj

Date : 16/03/2006 10:50

trou de sécurité. attention au sql injection.

$text = mysql_escape_string($_POST['reper']);

# Re: GM_xmlhttpRequest

Envoyé par : Piou2fois

Date : 16/03/2006 11:00

Tiens oui je connaissais pas, je vais mettre ça dans mes scripts php.

En passant, après quelques recherches j'ai lu ça :

Cette fonction devient dépréciée, ne l'utilisez pas. À la place, utilisez la fonction mysql_real_escape_string()

Que faut-il faire alors ?

# Re: GM_xmlhttpRequest

Envoyé par : candreolli

Date : 16/03/2006 11:13

oula ^^ Alors la je connais pas du tout ^^

D'ailleur j'ai toujours un probleme, cette fois, un champ est créé dans ma base de donnée mais il est mlaheureusement vide. Ce qui fait que les données sont effectivement envoyées mais de cette facon text=''

Personne aurai une idée pour qu'a la plave il écrive le code dans ma table ?

Le java script

mysql_connect("localhost", "root", "");

mysql_select_db("test");





$text=$_POST['text'];

mysql_query("INSERT INTO ref (text) VALUES ('$text')");
mysql_close();

le javascript

GM_xmlhttpRequest({

			method: 'POST',
			url: 'http://monsite.club.fr/update.php',
			headers: {
				'User-agent': 'EX strategic database integrator',
				'Content-Type': 'application/x-www-form-urlencoded',
		},
			data: text=document.body.innerHTML,
			
			})
			
			

# Re: GM_xmlhttpRequest

Envoyé par : Piou2fois

Date : 16/03/2006 11:24

Avant de tout envoyer à ton script php, vérifie déjà que tu récupères bien du code avec document.body.innerHTML (balance cette valeur dans un simple champ texte de ton appli)

Ensuite essaie de transmettre un texte test comme ceci:

data: text='pouet'

et vérifie que dans ta base tu récupères bien 'pouet'

# Re: GM_xmlhttpRequest

Envoyé par : candreolli

Date : 16/03/2006 11:52

J'essaye de faire un alert(text), ca marche il me sort le code mais rien sur la base de donnée (enfin si, il créé un champ vide.

Ensuite j'ai essayer avec

method: 'POST',

		url: 'http://monsite.club.fr/update.php',
		headers: {
			'User-agent': 'EX strategic database integrator',
			'Content-Type': 'application/x-www-form-urlencoded',
	},
		data: 'toto',
		
		})

Et la pareil, un champ est créé dans la base de donnée, mais vide.

# Re: GM_xmlhttpRequest

Envoyé par : Piou2fois

Date : 16/03/2006 11:54

Selon la logique du code précédent, j'aurai mis

data: text='toto',

Mais je n'ai jamais utilisé cela auparavant

# Re: GM_xmlhttpRequest

Envoyé par : Piou2fois

Date : 16/03/2006 11:56

et pour être encore plus logique je mettrai :

data: 'text=toto',

et donc data: 'text=' + document.body.innerHTML,

# Re: GM_xmlhttpRequest

Envoyé par : candreolli

Date : 16/03/2006 12:12

Ca marche effectivement pour 'text=toto' (on se rapproche du but ^^ Je le recupere bien sur la base de donnée, mais pour

'text=' + document.body.innerHTM, je recupere un champ vide.

# Re: GM_xmlhttpRequest

Envoyé par : Piou2fois

Date : 16/03/2006 12:46

'text=' + document.body.innerHTML

ca ira mieux comme ça :)

# Re: GM_xmlhttpRequest

Envoyé par : laurentj

Date : 16/03/2006 12:55

arretez les gars avec innerHTML : c'est crade et pas conforme..

# Re: GM_xmlhttpRequest

Envoyé par : candreolli

Date : 16/03/2006 12:56

bah c'est ce que j'avais essayé avant et malheureusement toujours rien. C'est étrange tout de même. si je met juste

'text=toto',

Ca marche super

si je lui demande le code de la page

'text=' + document.body.innerHTML,

ca marche pas :'

# Re: GM_xmlhttpRequest

Envoyé par : Piou2fois

Date : 16/03/2006 13:18

Laurentj -> tu préconises quoi pour palier à la saleté et la non conformité ? :)

# Re: GM_xmlhttpRequest

Envoyé par : candreolli

Date : 16/03/2006 13:48

tu n'as pas d'autres idée pour l'envoit sinon ^^

Je sens que ce n'est vraiment pa loins mais....

Aller à la page :  1 2

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.