Questions sur AJAX et PHP
Forum Programmation : Questions sur AJAX et PHP
Bonjour,
j'ai quelques questions :
- Est ce que l'on peut comuniquer avec un script PHP sans recharger la page ou seulement une partie ? Donc que le server execute le script qu'il l'envoi a javascrpt sur la page, qui en fonction de ces resultats change l'affichage.(j'espere que vous me comprenez)
- Comment fait on pour envoyer des données de php --> php (et non html --> php [post]) Communiquer entre deux scripts phps.
Merci d'avance
alors, ta première question est exactement ce que fait l'AJAX:
un javascript transmet une requète à une page php et récupère le résultat (sous forme texte), tu peux le traiter comme tu veux pour mettre à jour une partie de page.
Pour la deuxième question, je ne comprend pas trop. Si ce sont deux scripts PHP qui fonctionnent en même temps, include() et require() te permettent d'utiliser des variables identiques (en contenu) dans les 2 scripts.
S'il s'agit d'une transition de page, tu peux soit utiliser les GET (variables en URL) ou les sessions.
Répondre à crazycat@idn
Merci,
Pour ce qu tu a di sur AJAX, t'a pas un tuto ?
Et pour la deuxieme qustion c'était une transition de pages, je vais donc me renseigner sur les sessions car je n'aime pas les GET[variables].
pour la deuxième question
t'as la bibliothèque SOAP que tu peux utiliser pour faire communiquer 2 scripts php distants.
SOAP répond aussi à la première sauf que la réponse est au format xml
il y a un tuto pas trop mal sur phportail.net
Sinon, utiliser des sessions (ou des cookies) pour passer des variables, il faut bien comprendre le mécanisme et on arrive à faire des choses puissantes (comme les caddies)
Répondre à crazycat@idn
Ok merci je vais regarder tout ca.
Enfait j'ai encor quelques question.
Si on met un ficher .htaccess dans un dossier contenant un script php on peut y acceder avec un autre script du server non ?
Mais est ce qu'on peut y acceder avec un script d'un autre server ?
Si oui y a t'il un moyen de controler l'acces a ce script autrement ?
Et peut on personaliser l'affichage de la demande du mot de passe d'un .htaccess
Encore une fois, j'espere que je me suis exprimé compréhensiblement.
alors pour ta première question, la réponse serait oui, selon la méthode d'accès.
Si tu appelles ton php par un include(), ce sont les droits du répertoire initial qui s'appliquent, donc ton fichier dans un répertoire protégé peut être appelé.
Pour autoriser l'appel depuis un autre serveur, il faut jouer avec les règles de deny et allow.
La personnalisation quant à elle est très limitée, je te conseille de chercher un petit manuel sur htaccess
Répondre à crazycat@idn
Si, par exemple le fichier cmd.php est situé dans le dossier '/usr/' protegé par un .htaccess. Puis il y a un ficher index.php, qui ne peut qu'etre accedé par un membre enregistré, situé dans le dossier '/' qui envoi une commande (par HTTPRequest donc post) à cmd.php. Ce cmd.php execute la comande puis revoi un resultat à index.php.
Mais est ce que quelqu'un pourait, envoyer cette commande à partir de son ordinateur ou d'un autre server et donc utiliser cette comande pour faire des choses qui neme plairaient pas ?
je vois pas le but de la manoeuvre.
t'es sur le même serveur, pourquoi tu te compliques la vie à faire un HTTPRequest alors qu'il suffit de placer le cmd.php dans un répertoire non publié et de l'appeler depuis ton index.php avec un include/require/...
ton cmd.php ne sera jamais accessible directement par une url
sinon si tu veux continuer sur le HTTPRequest, tu peux vérifier que la requête vient du serveur et non pas d'un client quelconque (c'est peu mais ca doit marcher)
si tu fais bien la chose, tu ne devrais pas avoir de soucis, mais pour un tel système je déconseille l'utilisation d'un .htaccess, il vaut mieux que tu te crée des systèmes de protection personnel.
Déjà, rien ne prouve que lors du post, tout fonctionnera bien. Ensuite, avec un bon analyseur de trame, on peut décortiquer le système.
Répondre à crazycat@idn
Merci beacoup pour votre aide a tous !
Le truc du repertoir non publié ca merche pas , je suis chez free.
Et je ne peut pas utiliser le include car j'ai besion que le script s'execute apres une action de l'utilisateur et non au cahrgement de la page.
Pour le systeme de securité je propse que le script (cmd.php) verifie l'url et la session.
Vous pensez que c'est assé ?
Connaisez vous un site qui pourait m'aider avec ca ?
je ne pense pas que ce soit assez, ou bien c'est trop
Pour l'url, tu va surement utiliser le HTTP_REFERER? avec un appel javascript, 50% de chances que ça foire, et certains navigateurs ne le transmettent pas ou permettent de le fausser.
La chose que je vois possible est peut-être un peu plus complexe mais normalement toujours fonctionnelle:
ton script initial crée un fichier texte vide dont le nom est un unique-id et qui contient un identifiant propre à l'utilisateur actuel, et tu enregistres en session cet identifiant et le nom du fichier.
Lorsque cmd.php est appelé, il lit la session uniqid, regarde si le fichier existe (et pkoi pas l'heure de création), lit le contenu du fichier et le compare à la session propre à l'utilisateur.
Répondre à crazycat@idn
| Citation :
|
excuse moi si je comprends pas mais ca me rend curieux...
quelque soit cette action, après tu appelles une page, par ex: index.php, depuis index.php tu veux appeler cmd.php et tu veux aussi que cmd.php ne soit pas appelé en dehors de index.php.
avec ca, ce que je vois, c'est créer une variable dans index.php, inclure cmd.php et tester la validite de la variable (isset) sous cmd.php...
Message édité par coca25 le 20-11-2006 à 17:07:13
Ok merci, je pense que je vais pouvoir me debrouiller avec ca.
Finalement j'ai encor un probleme, mais celui la doit etre plus simple (enfin j'espere)
J'ai ca :
$mdp = fread(fopen($fichier, "r" ), filesize($fichier));
$mdp = str_replace( "#", "" , $mdp);
le fichier est un .php ou il y a ecrit #modpass donc au final ca devrait me donner modpass mais il y a quelquechose apre, qui se met automatiquement (j'ai veriffié il n'y a rien dans le fichier .php apres modpass mais quand je fait echo $mdp; il y a un espace)
Je ne sait donc pas quoi faire car quand je le compare aver password qui est un post il ne me le valide pas.
ben je pense que tout vient de la manière dont tu écris ton fichier: un caractère de fin de ligne (\n ou \n\r) se rajoute à la fin.
Répondre à crazycat@idn
J'ai résolu le probleme, j'ai tout simplement créé le fichier avec un autre script php.
oui, c'est le mieux et je présume qu'à terme, c'est ainsi que ça fonctionnera (si tu utilises le principe que je t'ai donné)
Répondre à crazycat@idn
Il y a 2408 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
