Bonjour,j'aimerai de l'aide pour sécuriser ma page d'achat de jetons avec starpass enfaîte quand j'entre le code sa me mais sur la page d'erreur mais le jetons s'ajoute a mon compte quand même est si je mais en lien monsite/achatok.php le jetons ce mais quand même voici mon code :
<?php session_start();
require("includes/config.php");
$reqconfig = $BDD->query("SELECT * FROM configuration") or die('Erreur SQL ! <br />');
$config = $reqconfig->fetch();
$BDD->query("UPDATE membres SET jetons = jetons + 1 WHERE pseudo = '".$_SESSION['pseudo']."'");
header('Location: commande.php?status=valide');
?>
<?php
if(isset($_SESSION['pseudo']))
{
$pseudomembres = $_SESSION["pseudo"];
$reponse = $BDD->query("SELECT * FROM membres WHERE PSEUDO= '$pseudomembres'") or die('Erreur SQL ! <br />');
$donnees = $reponse->fetch();
}
else
{
header('Location: index.php');
}
?>
<?php
// Déclaration des variables
$ident=$idp=$ids=$idd=$codes=$code1=$code2=$code3=$code4=$code5=$datas='';
$idp = 76223;
// $ids n'est plus utilisé, mais il faut conserver la variable pour une question de compatibilité
$idd = 344173;
$ident=$idp.";".$ids.";".$idd;
// On récupère le(s) code(s) sous la forme 'xxxxxxxx;xxxxxxxx'
if(isset($_POST['code1'])) $code1 = $_POST['code1'];
if(isset($_POST['code2'])) $code2 = ";".$_POST['code2'];
if(isset($_POST['code3'])) $code3 = ";".$_POST['code3'];
if(isset($_POST['code4'])) $code4 = ";".$_POST['code4'];
if(isset($_POST['code5'])) $code5 = ";".$_POST['code5'];
$codes=$code1.$code2.$code3.$code4.$code5;
// On récupère le champ DATAS
if(isset($_POST['DATAS'])) $datas = $_POST['DATAS'];
// On encode les trois chaines en URL
$ident=urlencode($ident);
$codes=urlencode($codes);
$datas=urlencode($datas);
/* Envoi de la requête vers le serveur StarPass
Dans la variable tab[0] on récupère la réponse du serveur
Dans la variable tab[1] on récupère l'URL d'accès ou d'erreur suivant la réponse du serveur */
$get_f=@file( "http://script.starpass.fr/check_php.php?ident=$ident&codes=$codes&DATAS=$datas" );
if(!$get_f)
{
exit( "Votre serveur n'a pas accès au serveur de StarPass, merci de contacter votre hébergeur. " );
}
$tab = explode("|",$get_f[0]);
if(!$tab[1]) $url = "http://script.starpass.fr/error.php";
else $url = $tab[1];
// dans $pays on a le pays de l'offre. exemple "fr"
$pays = $tab[2];
// dans $palier on a le palier de l'offre. exemple "Plus A"
$palier = urldecode($tab[3]);
// dans $id_palier on a l'identifiant de l'offre
$id_palier = urldecode($tab[4]);
// dans $type on a le type de l'offre. exemple "sms", "audiotel, "cb", etc.
$type = urldecode($tab[5]);
// vous pouvez à tout moment consulter la liste des paliers à l'adresse : http://script.starpass.fr/palier.php
// Si $tab[0] ne répond pas "OUI" l'accès est refusé
// On redirige sur l'URL d'erreur
if( substr($tab[0],0,3) != "OUI" )
{
header( "Location: $url" );
exit;
}
?>
$get_f=@file( "http://script.starpass.fr/check_php.php?ident=$ident&codes=$codes&DATAS=$datas" );
Tu n'échappe pas tes variables à passer ($ident, $codes, $datas).
Il faut remplacer par :
$get_f=@file( "http://script.starpass.fr/check_php.php?ident=". $ident ."&codes=". $codes ."&DATAS=". $datas);
Salut, sa ne fonctionne pas, quand j'entre un code bon sa me fait sur la page erreur de starpass comme quoi le code est pas bon mais j'ai quand même le jetons qu'il ce crédite est si je mais directement monsite/achatok.php sa me credite quand même
C'est le code de quelle page la ? Parce que un truc que je comprend pas (ton code est mal foutu, on comprend pas grand chose à ce qu'il se passe et à quel moment ;) ).
Après ton session_start()
, tu update +1 le nombre de jeton à chaque affichage de la page. C'est peut être pour ça que tu as toujours +1 ! Met donc cette requete sur ta page "ok.php".
salut,
C'est justement la page achatok.php.
Celle ou le membres dois pouvoir y'aller seulement si sur la page achat.php il entre un code valide.
Mais si il mais directement achatok.php sa lui give directement un jetons