[AIDE] Problème d'UPDATE sql dans un fichier Php

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [AIDE] Problème d'UPDATE sql dans un fichier Php

Re: [AIDE] Problème d'UPDATE sql dans un fichier Php

par Nekk » 12 févr. 2016, 21:19

Alors quelle est ta solution ?

Re: [AIDE] Problème d'UPDATE sql dans un fichier Php

par or 1 » 12 févr. 2016, 21:01

non le souci vient de l'url de la popup qui ne contient pas un paramètre starpass qui vaut 1, ou que la fonction safe() ne fait pas ce qui est attendu.
c'est bien cela, pas de paramètre donc normal que cela ne rentre jamais dans le if.

Re: [AIDE] Problème d'UPDATE sql dans un fichier Php

par Nekk » 12 févr. 2016, 20:56

Oui, bha mon url c'est .../payment/1.php

Et le fichier 1.php c'est le code que j'ai donné au début et qu'on essaye de débug depuis hier..

Re: [AIDE] Problème d'UPDATE sql dans un fichier Php

par or 1 » 12 févr. 2016, 20:50

une url, c'est par exemple :
htfgp://forum.phpfrance.com/post443229.html#p443229

Re: [AIDE] Problème d'UPDATE sql dans un fichier Php

par Nekk » 12 févr. 2016, 20:47

Bhen l'url d'appel c'est le fichier que j'ai mis sur mon premier post ... C'est le seul code que m'a donné Starpass à intégrer dans la page :S

Re: [AIDE] Problème d'UPDATE sql dans un fichier Php

par or 1 » 12 févr. 2016, 18:12

c'est l'url de l'appel du script qui comprend
$do2 = safe($_GET['starpass'],'SQL');
qu'il faut regarder.

Re: [AIDE] Problème d'UPDATE sql dans un fichier Php

par Nekk » 12 févr. 2016, 17:52

Voilà mon "Success"

Code : Tout sélectionner

<?php include("../init.php"); include("../includes/files/register.php"); include("../includes/files/session.disconnect.php"); $pagename = "Votre transaction est terminée"; $pageid = "p_success"; ?> <html> <head> <noscript><meta http-equiv="refresh" content="0;url=http://script.starpass.fr/error_code2.php?idd=350180&idp=200774"></noscript><script type="text/javascript" src="http://script.starpass.fr/error_code.php?idd=350180&idp=200774"></script> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title><?php echo Settings('Name'); ?>: <?PHP echo $pagename; ?> </title> <link type="text/css" rel="stylesheet" href="<?php echo Settings('Url_Images'); ?>/v5/css/habbo.popup.css?<?PHP echo $update; ?>"> <link rel="shortcut icon" href="<?php echo Settings('Url_Images'); ?>/v5/favicon.ico?<?PHP echo $update; ?>" type="image/vnd.microsoft.icon" /> <link href='//fonts.googleapis.com/css?family=Ubuntu:400,700,400italic,700italic|Ubuntu+Condensed' rel='stylesheet' type='text/css'> </head> <header> <div id="container"> <a id="logo" style="background-image: url('<?php echo Settings('Url'); ?>/images/<?php echo Settings('Logo'); ?>');height: 40px;position: absolute;top: 20px;left: 85px;width: 110px;"></a> </div> </header> <body> <img src="<?php echo Settings('Url'); ?>/images/habbo_credits_teaser_success.png" style="float:right; margin-right:50px"> <div class="error"> <h1>Félicitation !</h1> <hr> <div class="info"> <center>Vous venez de recevoir vos Diamants</center> </div> <a OnClick="javascript:window.close()" class="btn green">Fermer la fenêtre</a> </div> </body> </html>

Re: [AIDE] Problème d'UPDATE sql dans un fichier Php

par or 1 » 12 févr. 2016, 17:37

non le souci vient de l'url de la popup qui ne contient pas un paramètre starpass qui vaut 1, ou que la fonction safe() ne fait pas ce qui est attendu.

Re: [AIDE] Problème d'UPDATE sql dans un fichier Php

par Nekk » 12 févr. 2016, 17:27

Salut !

Désolé de ma soudaine déco hier soir mais j'ai fini par m’assoupir !

Alors :

Le "Avant do2" est affiché mais je n'ai pas "après do2" !


Le soucis ne viendrait pas du fait que ma page Starpass s'ouvre dans une nouvelle fenêtre ?
Et donc que le code ne se relierait pas au SQL ?

Car j'ai un bouton pour choisir une offre
Ce bouton ouvre une pop up qui me confirme que je vais acheter tel contenu et me demande mon adresse EMAIL
Puis dans cette pop up, un bouton "Payer via Starpass" qui envoie sur le dossier "Payment" et qui ouvre une nouvelle fenêtre pour y faire apparaître le script Starpass

Re: [AIDE] Problème d'UPDATE sql dans un fichier Php

par or 1 » 11 févr. 2016, 23:51

$do2 = safe($_GET['starpass'],'SQL');
echo "avant do2";
if($do2 == "1") {
echo "apres do2";

cela fait affiche bien les 2 lignes ?

Re: [AIDE] Problème d'UPDATE sql dans un fichier Php

par Nekk » 11 févr. 2016, 23:44

C'est une petite erreur mais la ligne qui redirige vers error au niveau du sql ne sert plus à rien à vrai dire car la page sucess est definie dans mon script starpass et s'affiche si le code est bon !

Donc ligne inutile à supprimer !
Merci de l'avoir relevé !

Cependant mon problème d'update reste présent :$

Re: [AIDE] Problème d'UPDATE sql dans un fichier Php

par or 1 » 11 févr. 2016, 22:53

dans un cas
Redirect(Settings('Url')."/payment/error");
et dans l'autre
Redirect(Settings('Url')."/payment/error");
la page success s'appelerait error ?

Re: [AIDE] Problème d'UPDATE sql dans un fichier Php

par Nekk » 11 févr. 2016, 22:47

j'ai supprimé les cookies et toujours pas d'injection en vue...
pourtant j'arrive bien sur ma page success ...

Re: [AIDE] Problème d'UPDATE sql dans un fichier Php

par or 1 » 11 févr. 2016, 22:35

c'est donc que ton cookie existe
if(isset($HTTP_COOKIE_VARS['code'+iDocumentId]))
il faut donc le supprimer de ton navigateur s'il a été crée à un moment et qu'il ne devrait pas l’être.

Re: [AIDE] Problème d'UPDATE sql dans un fichier Php

par Nekk » 11 févr. 2016, 22:31

Oui et remplacé par

if(isset($HTTP_COOKIE_VARS['code'+iDocumentId]))

Je te donne le nouveau code

Code : Tout sélectionner

<?php include("../init.php"); include("../includes/files/register.php"); include("../includes/files/session.disconnect.php"); $do2 = safe($_GET['starpass'],'SQL'); if($do2 == "1") { // Déclaration des variables $ident=$idp=$ids=$idd=$codes=$code1=$code2=$code3=$code4=$code5=$datas=''; $idp = Settings('IDP'); // $ids n'est plus utilisé, mais il faut conserver la variable pour une question de compatibilité $idd = Settings('IDD'); $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 = Settings('Url')."/payment/error"; 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") { Redirect(Settings('Url')."/payment/error"); exit; } else { /* Le serveur a répondu "OUI" On place un cookie appelé CODE_BON et qui vaut la valeur 1 Ce cookie est valide jusqu'à ce que l'internaute ferme son navigateur Dans les pages suivantes, nous testerons l'existence du cookie S'il existe, c'est que l'internaute est autorisé, sinon on le renverra sur une page d'erreur */ setCookie("CODE_BON", "1", 0); // Si vous avez plusieurs documents, nommer le cookie plutôt 'code'+iDocumentId // vous pouvez afficher les variables de cette façon : // echo "idd : $idd / codes : $codes / datas : $datas / pays : $pays / palier : $palier / id_palier : $id_palier / type : $type"; } // On vérifie si le cookie existe if(isset($HTTP_COOKIE_VARS['code'+iDocumentId])) { // Si le cookie existe mais que le contenu n'est pas bon on le redirige sur la page d'erreur if( $HTTP_COOKIE_VARS['code'+iDocumentId] != '1'){ Redirect(Settings('Url')."/payment/error"); exit(1); } } else{ $SQL = "UPDATE `users` SET `diamonds` = diamonds + ".Settings('Prix_1')." WHERE id = '".safe($user['id'],'SQL')."'"; echo $SQL; $bdd->exec($SQL); $bdd->exec("INSERT INTO `retrophp_payment` (`user_id`, `pseudo`, `statut`, `nombres`, `type`, `code`, `operation` , `remis`) VALUES ('".safe($user['id'],'SQL')."', '".safe($user['username'],'SQL')."', 'Valide', '".Settings('Prix_1')."', 'diamants', '".safe($codes,'SQL')."', 'Achat de diamants', '1');"); Redirect(Settings('Url')."/payment/error"); echo $SQL; exit(1); } } ?> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title><?php echo Settings('Name'); ?>: <?PHP echo $pagename; ?> </title> <link type="text/css" rel="stylesheet" href="<?php echo Settings('Url_Images'); ?>/v5/css/habbo.popup.css?<?PHP echo $update; ?>"> <link rel="shortcut icon" href="<?php echo Settings('Url_Images'); ?>/v5/favicon.ico?<?PHP echo $update; ?>" type="image/vnd.microsoft.icon" /> <link href='//fonts.googleapis.com/css?family=Ubuntu:400,700,400italic,700italic|Ubuntu+Condensed' rel='stylesheet' type='text/css'> </head> <header> <div id="container"> <a id="logo" style="background-image: url('<?php echo Settings('Url'); ?>/images/<?php echo Settings('Logo'); ?>');height: 40px;position: absolute;top: 20px;left: 85px;width: 110px;"></a> </div> </header> <body> <?PHP echo $SQL; ?> <center><div id="starpass_<?php echo Settings('IDD'); ?>"></div> <script type="text/javascript" src="http://script.starpass.fr/script.php?idd=<?php echo Settings('IDD'); ?>&datas="></script> <noscript>Veuillez activer le Javascript de votre navigateur s'il vous pla&icir;t.<br /> <a href="http://www.starpass.fr">Micro Paiement StarPass</a> </noscript></center> </body> </html>