Bonjour à tous!

Pour mon petit projet j'ai réalisé un site web marchand en PHP avec système de paiement paypal.

Lorsque le panier du client est fini, le client clique sur le lien "payer" jusque là c'est normal =)

Voici le petit bout de code du lien:

<?php 
...du code php...
$paypal = 'https://www.sandbox.paypal.com/webscr?cmd=_express-checkout&useraction=commit&token=' . $response['TOKEN'];
?>
<a href="<?= $paypal; ?>">Payer</a>


Je suis chez l'hébergeur OVH et il utilise Windows server iis:
Version Microsoft .NET Framework :4.0.30319; Version ASP.NET :4.0.30319.18033

Ainsi si on clique sur le lien PAYER par défaut il y a un système de sécurité qui bloque les URL qui contiennent des caractères spéciaux genre <, > , ? , etc...
et je me retrouve avec :


Erreur du serveur dans l'application '/'.
Une valeur Request.Path potentiellement dangereuse a été détectée à partir du client (<).
Description : Une exception non gérée s'est produite au moment de l'exécution de la requête Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.

Détails de l'exception: System.Web.HttpException: Une valeur Request.Path potentiellement dangereuse a été détectée à partir du client (<).

Erreur source:
Une exception non gérée s'est produite lors de l'exécution de la requête Web actuelle. Les informations relatives à l'origine et l'emplacement de l'exception peuvent être identifiées en utilisant la trace de la pile d'exception ci-dessous.

Trace de la pile:
[HttpException (0x80004005): Une valeur Request.Path potentiellement dangereuse a été détectée à partir du client (<).]
System.Web.HttpRequest.ValidateInputIfRequiredByConfig() +12615775

Je code en PHP et j'ai jamais eu de problème comme ça. Je ne sais pas comment faire pour enlever la sécurité du serveur.
J'ai parcouru d'autres forum, google etc.. Mais rien de très concluant.

Avez vous une idée, des conseils, une solution serait l'idéale !
Une forum spécialisé peut être je vous avoue je suis complètement perdu

Merci d'avance à tous Smiley smile
Déjà il me semble que tu as oublié le "php" ici :

<a href="<?php $paypal; ?>">Payer</a>

et mis un "=" en trop.

Ensuite, essaye d'échapper les apostrophes de la variable $response['TOKEN'] comme ça :

$paypal = 'https://www.sandbox.paypal.com/webscr?cmd=_express-checkout&useraction=commit&token=' . $response[\'TOKEN\'];

Modifié par j0r (04 Jun 2013 - 12:29)
je vais test tout de suite

Hum nan toujours pas.

Le code que j'ai mis marche parfaitement en local avec wamp.

c'est vraiment bizarre Smiley fache
Modifié par sacha51 (04 Jun 2013 - 12:37)
a écrit :
Déjà il me semble que tu as oublié le "php" ici :


<a href="<?php $paypal; ?>">Payer</a>


et mis un "=" en trop.

c'est une façon simplifiée d'écrire
<?php echo $paypal; ?>
.

@sacha51> ça pourrait t'aider
Merci

j'ai bien avancé.

Apparemment c'est mon lien.

Lorque je fais un echo de $paypal j'ai le bon chemin c'est nikel.

Mais lorsque je survole avec la souris sur mon lien

<a href="<?= $paypal; ?>">Payer</a>
il ne m'indique pas le chemin $paypal.

Donc normal que le lien PAYER ne marche pas
il y a un problème avec la redirection.
Si ça peut vous éclairer
Modifié par sacha51 (04 Jun 2013 - 13:13)
j'ai essayé dans le web.config

<configuration> <system.web> <pages validateRequest="false" /> </system.web> </configuration>


échec à moins que je me suis trompé.
Modifié par sacha51 (04 Jun 2013 - 13:46)
J'ai encore avancé en faite ce n'est pas un problème de sécurité

il fallait écrire le lien comme :

<a href='"<?php echo $paypal; ?>"'>Payer</a>


cependant j'ai un petit problème

il me rajoute dans le lien PAYER

http://www.monsiteinternet.com/"https://www.sandbox.paypal.com/webscr?cmd=_express-checkout&useraction=commit etc.."


Il faudrait que je vire le
http://www.monsiteinternet.com/


Merci a tous pour vos réponse ça m'a beaucoup aidé déjà
Modifié par sacha51 (04 Jun 2013 - 13:47)
<a href="<?php echo $paypal; ?>">Payer</a>

et non
<a href='"<?php echo $paypal; ?>"'>Payer</a>

pas apostrophe.