[RESOLU] Formulaire renvoi champ vide

Eléphant du PHP | 75 Messages

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>

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

16 juil. 2014, 15:42

salut,

les formules de politesse c'est mieux quand on demande quelque chose ...

tu n'as pas mis de nom aux champs de formulaire donc pas d'envois des champs lorsque tu valide le formulaire.

si le problème est coté JS la c'est autre chose il te faut déboguer le script (avec chrome par exemple).

@+
Il en faut peu pour être heureux ......

Mammouth du PHP | 2278 Messages

16 juil. 2014, 15:54

Chalut, les pécheurs,
Un formulaire comprend un tag
<form method ='post' action = ''>

<button type = 'submit'>OK</button>
</form>
Et sauf erreur je ne vois rien de semblable....
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphant du PHP | 75 Messages

16 juil. 2014, 18:38

Oups ! Excuse moi il est vrai que j'ai oublié les formule de politesse toutes mes excuse.
Donc , bjr à toutes et à tous voici j'ai mis à jour en fonction de ce que vous m'avez dit et lors de l'envoi j'ai toujours veuillez remplir les champs vide :/
<?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';
  }
  
  //Verification card-number
  if(empty($_POST['card-number']))
  {
  $erreurs['card-number'] = 'Renseigner un code postal';
  }
  
   //Verification card-cvc
  if(empty($_POST['card-cvc']))
  {
  $erreurs['card-cvc'] = 'Renseigner un code postal';
  }
  
   //Verification card-expiry-month
  if(empty($_POST['card-expiry-month']))
  {
  $erreurs['card-expiry-month'] = 'Renseigner un code postal';
  }
  
   //Verification card-expiry-year
  if(empty($_POST['card-expiry-year']))
  {
  $erreurs['card-expiry-year'] = '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(" la clef de test");
  $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" name="card-number" size="20" autocomplete="off" class="card-number" value="<?php if(isset($_POST['card-number'])) echo $_POST['card-number'];?>" />
      <div class="error"><?php if(isset($erreurs['card-number'])) echo $erreurs['card-number'];?></div>
      
            </div>
            <div class="form-row">
                <label>CVC</label>
                <input type="text" name="card-cvc" size="4" autocomplete="off" class="card-cvc" value="<?php if(isset($_POST['card-cvc'])) echo $_POST['card-cvc'];?>" />
      <div class="error"><?php if(isset($erreurs['card-cvc'])) echo $erreurs['card-cvc'];?></div>
      
            </div>
            <div class="form-row">
                <label>Expiration (MM/YYYY)</label>
                <input  type="text" name="card-expiry-month" size="2" class="card-expiry-month" value="<?php if(isset($_POST['card-expiry-month'])) echo $_POST['card-expiry-month'];?>" />
      <div class="error"><?php if(isset($erreurs['card-expiry-month'])) echo $erreurs['card-expiry-month'];?></div>
      
                <span> / </span>
                <input type="text"  name="card-expiry-year" size="4" class="card-expiry-year" value="<?php if(isset($_POST['card-expiry-year'])) echo $_POST['card-expiry-year'];?>" />
      <div class="error"><?php if(isset($erreurs['card-expiry-year'])) echo $erreurs['card-expiry-year'];?></div>
            </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>

Eléphant du PHP | 75 Messages

17 juil. 2014, 00:59

mon problème viens de mon tableau mais je ne vois pas trop où ?

Tout semble correct, voir dans le message du dessus le code.

Merci pour votre aide à venir.