par
Fre3z69 » 24 nov. 2012, 15:35
Voici ce que j'ai fait, j'ai très certainement dû me tromper, mais je ne vois pas où:
Sur le site local, dans panier.php, après appuie sur le bouton "Valider"
if (!empty($total)){
$itid = serialize($_POST['itesm_id']);
$qnt = serialize($_POST['quantity']);
$msg = false;
/*Initialisation de la ressource curl*/
$c = curl_init();
curl_setopt($c, CURLOPT_URL, 'http://monsitedistant.fr/panier.php');
/*On indique à curl de nous retourner le contenu de la requête plutôt que de l'afficher*/
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
/*On indique à curl de ne pas retourner les headers http de la réponse dans la chaine de retour*/
curl_setopt($c, CURLOPT_HEADER, false);
/*On indique à curl d'envoyer une requete post*/
curl_setopt($c, CURLOPT_POST,true);
/*On ddonne les paramètre de la requête post*/
curl_setopt($c, CURLOPT_POSTFIELDS,array('owner'=>USERS_NAME,'count'=>$qnt,'item'=>$itid)); /*On exécute la requête*/
$output = curl_exec($c);
/*On a une erreur alors on la lève*/
if($output === false)
{
trigger_error('Erreur curl : '.curl_error($c),E_USER_WARNING);
exit;
}
/*Si tout c'est bien passé on affiche le contenu de la requête*/
else
{
//on affiche le résultat de la page distante, peux importe le résultat de l'envoie
echo $output;
if (!preg_match('#à bien été ajouté#i', $output))
{
$msg = true;
}
}
/*On ferme la ressource*/
curl_close($c);
}
Script permettant de récupérer les données sur le site distant. (testé aussi bien avec
unserialize que
http_build_query
$item = $_POST['item'];
$count = $_POST['count'];
$item = unserialize($_POST['item']);
$count = unserialize($_POST['count']);
$table = array_combine ($item, $count);
foreach ($table as $v => $q){
echo $v.' '.$q;
}
Le résultat:
Code : Tout sélectionner
Warning: array_combine() expects parameter 1 to be array, boolean given in /var/www/monsitedistant.fr/panier.php on line 25
Warning: Invalid argument supplied for foreach() in /var/www/monsitedistant.fr/panier.php on line 26
Merci de votre aide
Cordialement
Voici ce que j'ai fait, j'ai très certainement dû me tromper, mais je ne vois pas où:
Sur le site local, dans panier.php, après appuie sur le bouton "Valider"
[php]
if (!empty($total)){
$itid = serialize($_POST['itesm_id']);
$qnt = serialize($_POST['quantity']);
$msg = false;
/*Initialisation de la ressource curl*/
$c = curl_init();
curl_setopt($c, CURLOPT_URL, 'http://monsitedistant.fr/panier.php');
/*On indique à curl de nous retourner le contenu de la requête plutôt que de l'afficher*/
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
/*On indique à curl de ne pas retourner les headers http de la réponse dans la chaine de retour*/
curl_setopt($c, CURLOPT_HEADER, false);
/*On indique à curl d'envoyer une requete post*/
curl_setopt($c, CURLOPT_POST,true);
/*On ddonne les paramètre de la requête post*/
curl_setopt($c, CURLOPT_POSTFIELDS,array('owner'=>USERS_NAME,'count'=>$qnt,'item'=>$itid)); /*On exécute la requête*/
$output = curl_exec($c);
/*On a une erreur alors on la lève*/
if($output === false)
{
trigger_error('Erreur curl : '.curl_error($c),E_USER_WARNING);
exit;
}
/*Si tout c'est bien passé on affiche le contenu de la requête*/
else
{
//on affiche le résultat de la page distante, peux importe le résultat de l'envoie
echo $output;
if (!preg_match('#à bien été ajouté#i', $output))
{
$msg = true;
}
}
/*On ferme la ressource*/
curl_close($c);
}
[/php]
Script permettant de récupérer les données sur le site distant. (testé aussi bien avec [b]unserialize[/b] que [b]http_build_query[/b]
[php]
$item = $_POST['item'];
$count = $_POST['count'];
$item = unserialize($_POST['item']);
$count = unserialize($_POST['count']);
$table = array_combine ($item, $count);
foreach ($table as $v => $q){
echo $v.' '.$q;
}
[/php]
Le résultat:
[code]Warning: array_combine() expects parameter 1 to be array, boolean given in /var/www/monsitedistant.fr/panier.php on line 25
Warning: Invalid argument supplied for foreach() in /var/www/monsitedistant.fr/panier.php on line 26[/code]
Merci de votre aide
Cordialement