par
cindy381 » 16 juil. 2014, 14:51
Mon problème est tout bête je ne vois pas pourquoi mon formulaire me renvoi renseigner les champ vide alors que je les compléte.
Apparament ce sont les champs au niveau de la carte de crédit qui bloquent:
<div class="form-row">
<label>Card Number</label>
<input type="text" size="20" autocomplete="off" class="card-number" />
</div>
<div class="form-row">
<label>CVC</label>
<input type="text" size="4" autocomplete="off" class="card-cvc" />
</div>
<div class="form-row">
<label>Expiration (MM/YYYY)</label>
<input type="text" size="2" class="card-expiry-month"/>
<span> / </span>
<input type="text" size="4" class="card-expiry-year" />
</div>
<?php
$erreurs = array(); //tableau contenant des messages d'erreurs
/* traitement des erreurs
* tous les champs du formulaire non remplis seront placés
* dans le tableau des erreurs $erreurs.A la fin du traitement
* ce tableau sera soit vide, auquel cas on exécute la requête insert
* pour inserer les données en bd, soit ce tableau n'est pas vide(champs non remplis) on invite
* l'utilisateur à remplir tous les champs
*/
if(!empty($_POST)) {//soumission du formulaire
//Verification titre
if(empty($_POST['titre']))
{
$erreurs['titre'] = 'Renseigner un nom de sortie';
}
//Verification ville
if(empty($_POST['city']))
{
$erreurs['city'] = 'Renseigner une ville';
}
//Verification code postal
if(empty($_POST['postcode']))
{
$erreurs['postcode'] = 'Renseigner un code postal';
}
//fin traitement des erreurs
//s'il y a problème, procède au debogage en decommentant les 2 lignes çi-dessus:
//var_dump($_POST);
//die('fin debogage');
//le tableau d'erreurs est vide alors on insère les données
if( empty( $erreurs) ){
$req = $bdd->prepare('INSERT INTO `orders` (`user_id`,`amount`,`created`, `titre`, `phone`, `street`, `postcode`, `city`)
VALUES ( :user_id,:amount, NOW(), :titre, :phone, :street, :postcode, :city)');
$req->execute(array(
'user_id' => $_POST['membre'],
'amount' => $_POST['amount'],
'titre'=>$_POST['titre'],
'phone'=>$_POST['phone'],
'street'=>$_POST['street'],
'postcode'=>$_POST['postcode'],
'city'=>$_POST['city']
));
$created = 'NOW()';
if( $retour ===false) echo "Problème lors de l'insertion";
}else{//le tableau ne contient
echo "<p> renseignez les champs vides</p>";
}
}//fin de la soumission du formulaire
// reste à integrer le input photo
?>
<?php
// on introduit au script la librairie php de STRIPE
require_once('./lib/Stripe.php');
if ($_POST) {
Stripe::setApiKey("entri-keys");
$error = '';
$success = '';
try {
if (!isset($_POST['stripeToken']))
throw new Exception("The Stripe Token was not generated correctly");
Stripe_Charge::create(array("amount" => 1000,
"currency" => "usd",
"card" => $_POST['stripeToken']));
$success = 'Le paiement à bien était effectué.';
}
catch (Exception $e) {
$error = $e->getMessage();
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title>Stripe Getting Started Form</title>
<script type="text/javascript" src="https://js.stripe.com/v1/"></script>
<!-- jQuery is used only for this example; it isn't required to use Stripe -->
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script type="text/javascript">
// this identifies your website in the createToken call below
Stripe.setPublishableKey('pk_test_4Mjwmnwe6y4wKRdygwOxfrAM');
function stripeResponseHandler(status, response) {
if (response.error) {
// re-enable the submit button
$('.submit-button').removeAttr("disabled");
// show the errors on the form
$(".payment-errors").html(response.error.message);
} else {
var form$ = $("#payment-form");
// token contains id, last4, and card type
var token = response['id'];
// insert the token into the form so it gets submitted to the server
form$.append("<input type='hidden' name='stripeToken' value='" + token + "' />");
// and submit
form$.get(0).submit();
}
}
$(document).ready(function() {
$("#payment-form").submit(function(event) {
// disable the submit button to prevent repeated clicks
$('.submit-button').attr("disabled", "disabled");
// createToken returns immediately - the supplied callback submits the form if there are no errors
Stripe.createToken({
number: $('.card-number').val(),
cvc: $('.card-cvc').val(),
exp_month: $('.card-expiry-month').val(),
exp_year: $('.card-expiry-year').val()
}, stripeResponseHandler);
return false; // submit from callback
});
});
</script>
</head>
<body>
<h1>Charge $10 with Stripe</h1>
<!-- to display errors returned by createToken -->
<form action="stripe.php" method="POST" id="payment-form">
<div class="form-row">
<label>Card Number</label>
<input type="text" size="20" autocomplete="off" class="card-number" />
</div>
<div class="form-row">
<label>CVC</label>
<input type="text" size="4" autocomplete="off" class="card-cvc" />
</div>
<div class="form-row">
<label>Expiration (MM/YYYY)</label>
<input type="text" size="2" class="card-expiry-month"/>
<span> / </span>
<input type="text" size="4" class="card-expiry-year" />
</div>
<select name="amount">
<?php
$req = $bdd->query('SELECT * FROM offers');
while($d = $req->fetch(PDO::FETCH_ASSOC)){
?>
<option value="<?php echo $d['price']; ?>"><?php echo $d['name'];?> -<?php echo $d['price'];?> Euros</option>
<?php
}
?>
</select>
<!-- Ville de la sortie -->
<label>Ville *</label>
<input class="form-control" type="text" name="city" value="<?php if(isset($_POST['city'])) echo $_POST['city'];?>" />
<div class="error"><?php if(isset($erreurs['city'])) echo $erreurs['city'];?></div>
<!-- Ville de la sortie -->
<label>Rue</label>
<input class="form-control" type="text" name="street" value="<?php if(isset($_POST['street'])) echo $_POST['street'];?>" />
<div class="error"><?php if(isset($erreurs['street'])) echo $erreurs['street'];?></div>
<!-- Code postal de la sortie -->
<label>Code postal *</label>
<input class="form-control" type="text" name="postcode" value="<?php if(isset($_POST['postcode'])) echo $_POST['postcode'];?>" />
<div class="error"><?php if(isset($erreurs['postcode'])) echo $erreurs['postcode'];?></div>
<label>Télephone</label>
<input class="form-control" type="text" name="phone" value="<?php if(isset($_POST['phone'])) echo $_POST['phone'];?>" />
<div class="error"><?php if(isset($erreurs['phone'])) echo $erreurs['phone'];?></div>
<input name="membre" type="text" value="<?php echo $_SESSION['user']['id'] ?>" />
<button type="submit" class="submit-button">Submit Payment</button>
</form>
Mon problème est tout bête je ne vois pas pourquoi mon formulaire me renvoi renseigner les champ vide alors que je les compléte.
Apparament ce sont les champs au niveau de la carte de crédit qui bloquent:
[html]<div class="form-row">
<label>Card Number</label>
<input type="text" size="20" autocomplete="off" class="card-number" />
</div>
<div class="form-row">
<label>CVC</label>
<input type="text" size="4" autocomplete="off" class="card-cvc" />
</div>
<div class="form-row">
<label>Expiration (MM/YYYY)</label>
<input type="text" size="2" class="card-expiry-month"/>
<span> / </span>
<input type="text" size="4" class="card-expiry-year" />
</div>[/html]
[php]<?php
$erreurs = array(); //tableau contenant des messages d'erreurs
/* traitement des erreurs
* tous les champs du formulaire non remplis seront placés
* dans le tableau des erreurs $erreurs.A la fin du traitement
* ce tableau sera soit vide, auquel cas on exécute la requête insert
* pour inserer les données en bd, soit ce tableau n'est pas vide(champs non remplis) on invite
* l'utilisateur à remplir tous les champs
*/
if(!empty($_POST)) {//soumission du formulaire
//Verification titre
if(empty($_POST['titre']))
{
$erreurs['titre'] = 'Renseigner un nom de sortie';
}
//Verification ville
if(empty($_POST['city']))
{
$erreurs['city'] = 'Renseigner une ville';
}
//Verification code postal
if(empty($_POST['postcode']))
{
$erreurs['postcode'] = 'Renseigner un code postal';
}
//fin traitement des erreurs
//s'il y a problème, procède au debogage en decommentant les 2 lignes çi-dessus:
//var_dump($_POST);
//die('fin debogage');
//le tableau d'erreurs est vide alors on insère les données
if( empty( $erreurs) ){
$req = $bdd->prepare('INSERT INTO `orders` (`user_id`,`amount`,`created`, `titre`, `phone`, `street`, `postcode`, `city`)
VALUES ( :user_id,:amount, NOW(), :titre, :phone, :street, :postcode, :city)');
$req->execute(array(
'user_id' => $_POST['membre'],
'amount' => $_POST['amount'],
'titre'=>$_POST['titre'],
'phone'=>$_POST['phone'],
'street'=>$_POST['street'],
'postcode'=>$_POST['postcode'],
'city'=>$_POST['city']
));
$created = 'NOW()';
if( $retour ===false) echo "Problème lors de l'insertion";
}else{//le tableau ne contient
echo "<p> renseignez les champs vides</p>";
}
}//fin de la soumission du formulaire
// reste à integrer le input photo
?>[/php]
[php]<?php
// on introduit au script la librairie php de STRIPE
require_once('./lib/Stripe.php');
if ($_POST) {
Stripe::setApiKey("entri-keys");
$error = '';
$success = '';
try {
if (!isset($_POST['stripeToken']))
throw new Exception("The Stripe Token was not generated correctly");
Stripe_Charge::create(array("amount" => 1000,
"currency" => "usd",
"card" => $_POST['stripeToken']));
$success = 'Le paiement à bien était effectué.';
}
catch (Exception $e) {
$error = $e->getMessage();
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title>Stripe Getting Started Form</title>
<script type="text/javascript" src="https://js.stripe.com/v1/"></script>
<!-- jQuery is used only for this example; it isn't required to use Stripe -->
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script type="text/javascript">
// this identifies your website in the createToken call below
Stripe.setPublishableKey('pk_test_4Mjwmnwe6y4wKRdygwOxfrAM');
function stripeResponseHandler(status, response) {
if (response.error) {
// re-enable the submit button
$('.submit-button').removeAttr("disabled");
// show the errors on the form
$(".payment-errors").html(response.error.message);
} else {
var form$ = $("#payment-form");
// token contains id, last4, and card type
var token = response['id'];
// insert the token into the form so it gets submitted to the server
form$.append("<input type='hidden' name='stripeToken' value='" + token + "' />");
// and submit
form$.get(0).submit();
}
}
$(document).ready(function() {
$("#payment-form").submit(function(event) {
// disable the submit button to prevent repeated clicks
$('.submit-button').attr("disabled", "disabled");
// createToken returns immediately - the supplied callback submits the form if there are no errors
Stripe.createToken({
number: $('.card-number').val(),
cvc: $('.card-cvc').val(),
exp_month: $('.card-expiry-month').val(),
exp_year: $('.card-expiry-year').val()
}, stripeResponseHandler);
return false; // submit from callback
});
});
</script>
</head>
<body>
<h1>Charge $10 with Stripe</h1>
<!-- to display errors returned by createToken -->
<form action="stripe.php" method="POST" id="payment-form">
<div class="form-row">
<label>Card Number</label>
<input type="text" size="20" autocomplete="off" class="card-number" />
</div>
<div class="form-row">
<label>CVC</label>
<input type="text" size="4" autocomplete="off" class="card-cvc" />
</div>
<div class="form-row">
<label>Expiration (MM/YYYY)</label>
<input type="text" size="2" class="card-expiry-month"/>
<span> / </span>
<input type="text" size="4" class="card-expiry-year" />
</div>
<select name="amount">
<?php
$req = $bdd->query('SELECT * FROM offers');
while($d = $req->fetch(PDO::FETCH_ASSOC)){
?>
<option value="<?php echo $d['price']; ?>"><?php echo $d['name'];?> -<?php echo $d['price'];?> Euros</option>
<?php
}
?>
</select>
<!-- Ville de la sortie -->
<label>Ville *</label>
<input class="form-control" type="text" name="city" value="<?php if(isset($_POST['city'])) echo $_POST['city'];?>" />
<div class="error"><?php if(isset($erreurs['city'])) echo $erreurs['city'];?></div>
<!-- Ville de la sortie -->
<label>Rue</label>
<input class="form-control" type="text" name="street" value="<?php if(isset($_POST['street'])) echo $_POST['street'];?>" />
<div class="error"><?php if(isset($erreurs['street'])) echo $erreurs['street'];?></div>
<!-- Code postal de la sortie -->
<label>Code postal *</label>
<input class="form-control" type="text" name="postcode" value="<?php if(isset($_POST['postcode'])) echo $_POST['postcode'];?>" />
<div class="error"><?php if(isset($erreurs['postcode'])) echo $erreurs['postcode'];?></div>
<label>Télephone</label>
<input class="form-control" type="text" name="phone" value="<?php if(isset($_POST['phone'])) echo $_POST['phone'];?>" />
<div class="error"><?php if(isset($erreurs['phone'])) echo $erreurs['phone'];?></div>
<input name="membre" type="text" value="<?php echo $_SESSION['user']['id'] ?>" />
<button type="submit" class="submit-button">Submit Payment</button>
</form>[/php]