Bonjour,
J'ai un petit problème. J'ai intégrer un système de micropaiement sur mon site.
La page d'accès fonctionne mais la page protégée renvoi toujours sur le fichier "errorcred.php" :

Page protégée :

<?php
session_start();
if(isset($_COOKIE'pseudo'])){
// Identifiants de votre document
$docId = ****** ;
$siteId = ****** ;
$uid = $_COOKIE'pseudo'];
$awards = 100;
// PHP5 avec register_long_arrays désactivé?
if (!isset($HTTP_GET_VARS)) {
    $HTTP_SESSION_VARS = $_SESSION;
    $HTTP_SERVER_VARS = $_SERVER;
    $HTTP_GET_VARS = $_GET;
}
// Construction de la requête pour vérifier le code
$query = 'http://payment.rentabiliweb.com/checkcode.php?';
$query .= 'docId='.$docId;
$query .= '&siteId='.$siteId;
$query .= '&code='.$HTTP_GET_VARS'code'];
$query .= "&REMOTE_ADDR=".$HTTP_SERVER_VARS'REMOTE_ADDR'];
$result = @file($query);

if(trim($result[0]) !== "OK") {
    header('Location: errorcred.php');
    exit();
}
    require "conf.php";
    /* Mon traitement SQL */
    header('Location: index.php?p=credit&rep=2');
}
else {
    $_SESSION'flash']=array();
    $_SESSION'flash']'type']="error";
    $_SESSION'flash']'title']="Erreur !";
    $_SESSION'flash']'content']='Vous devez être connecté pour acceder à cette page.';
    header('Location: index.php?p=index');
}
?>

Merci d'avance pour votre aide.

2 réponses


Lqncer
Réponse acceptée

Bonjour,

Es-ce que votre serveur permet d'utiliser la fonction file() ?

Sinon testé en curl

$url = 'http://payment.rentabiliweb.com/checkcode.php?';
$url .= 'docId='.$docId; 
$url .= '&siteId='.$siteId;  
$url .= '&code='.$_GET'code'];  
$url .= "&REMOTE_ADDR=".$HTTP_SERVER_VARS'REMOTE_ADDR'];  

$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER'HTTP_USER_AGENT']);
curl_setopt($ch, CURLOPT_REFERER, $_SERVER'HTTP_REFERER']);
curl_setopt($ch, CURLOPT_TIMEOUT, 10); // 10secondes de time out
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPGET, 1);

$result = curl_exec($ch);
$result = trim($result);
$pos = strpos($result,'OK');

if ($pos === false) {
    // code erreur
} else {
    // acces à la page protégé
}

Votre code fonctionne. :D
En effet ça doit être un refus de la fonction file().

Merci Beaucoup :)