2008-12-02 9 views
1

Existe-t-il une sorte de script php qui exécutera une série d'URL, puis dirigera l'utilisateur vers la destination finale? l'utilisation de ceci est: créer un panier de caisse sur un site qui ne dispose pas d'une fonction robuste "wishlist".PHP Script pour exécuter plusieurs URL?

Le script exécute une série de « ajouter l'article au panier » urls, puis la destination finale amène l'utilisateur à leur panier de produits que je l'ai choisi pour eux.

Répondre

4

Voir http://php.net/curl

modifier: En ce qui concerne la gestion des sessions à distance grâce à cURL, cela dépend du site distant suivi des sessions. Certains utilisent des cookies (pris en charge par cURL), d'autres génèrent un jeton sessionid que vous devez renvoyer dans les requêtes suivantes, soit en tant que paramètre, soit dans l'en-tête http.

Les docs de l'API cURL sont assez rares, de sorte que vous pourriez avoir à chasser pour des tutoriels plus. J'ai trouvé ce qui suit par googler pour « tutoriel cookie boucle »:

http://coderscult.com/php/php-curl/2008/05/20/php-curl-cookies-example/

+0

Comment cela fonctionnerait - auriez-vous passer la session de l'utilisateur ID à friser? Pour un panier, le script doit afficher les données de session de l'utilisateur final. En utilisant simplement curl, une nouvelle session ne serait-elle pas créée à chaque requête, car elle est demandée par PHP et non par le navigateur de l'utilisateur? –

6

Oui, vous pouvez le faire avec ajax.

Utilisez jQuery pour faire vos demandes ajax.

par exemple

$.get("http://mywebsite.com/json/cart_add.php?pid=25"); 
$.get("http://mywebsite.com/json/cart_add.php?pid=27"); 

Si vous utilisez des sessions, alors il sera ajouté à la session en cours à condition qu'il soit sur le même domaine.

+0

C'est lisse. Y a-t-il un problème de sécurité à régler? Je ne peux pas penser à tout, mais je ne suis pas nécessairement le meilleur à les comprendre. – MrChrister

+0

Pas vraiment, ils devraient Hi-jack votre ID de session qui devrait être bien si vous ne le passez jamais via l'URL. – Jay

+0

Donc, tant que le cart_add.php a donné de bonnes réponses, pas de soucis. Cette attaque ne s'appliquerait pas parce que vous pouvez atténuer la réponse, non? http://haacked.com/archive/2008/11/20/anatomy-of-a-subtle-json-vulnerability.aspx – MrChrister

0

cela dépend vraiment des spécificités de votre site.

si son oo, vous pouvez être en mesure d'appeler les méthodes pertinentes les unes après les autres pour ajouter des éléments au panier? ou vous pouvez être en mesure de le faire avec des inclusions?

ou il se peut que le site comporte des fichiers d'inclusion que vous pouvez utiliser?

ou il peut avoir un mécanisme pour rediriger les utilisateurs après l'ajout d'éléments dans le panier dont vous pouvez profiter?

ou sinon, il y a d'autres réponses qui sont apparues alors que je rédigeais que suggérer des moyens valables pour y parvenir avec javascript ou onduler.

0

ok je vais essayer la suggestion ajax mais je ne suis pas sûr de savoir comment le code est formaté avec get et post. c'est ce que j'ai commencé et ça ne va pas chercher l'url (j'ai échangé des urls génériques pour la démonstration);

<html> 
<head>           
<script type="text/javascript" src="jquery-1.2.6.min.js"></script>   
<script type="text/javascript">  
$(document).ready(function() {  
$("a").click(function(){  
$.get("http://www.store.com/item4");  
$.get("http://www.store.com/item5"); 
alert("Items Added, Now Redirecting");   
});  
});               
</script>               
</head> 
<body> 
<a href="">Link</a>                        
</body>                   
</html> 
+0

Quel est le résultat du script que vous ciblez après avoir ajouté les éléments au panier? – MrChrister

+0

rien, j'ai ajouté une ligne de post et il n'a pas aidé $ .get ("http://www.store.com/item5"); $ .post ("http://www.store.com/cart.php"); – mrtunes

+0

Mettez du code de sortie dans le script qui ajoute des éléments au panier. Ensuite, utilisez quelque chose comme ça \t .get $ ("http://www.store.com/item5", la fonction (données) { \t \t alerte ("Données Loaded:" + données); \t}); Pour voir votre sortie de la page appelant le $ .get – MrChrister

Questions connexes