voici le code complet du formulaire:
Il y a bien pourtant mes variable titre,city,...
Je ne comprends pas trop où est le problème, merci à vous
<?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';
}
/////////
// Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
$dossier = 'img/annonce/';
$fichier = basename($_FILES['photo']['name']);
$taille_maxi = 1000000;
$taille = filesize($_FILES['photo']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
$extension = strrchr($_FILES['photo']['name'], '.');
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Veuillez vérifier que le format de votre photo soit de type png, gif, jpg, jpeg, ';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
if(move_uploaded_file($_FILES['photo']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
echo 'Téléchargement effectué avec succès !';
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec du téléchargement !';
}
}
else
{
echo $erreur;
}
//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 ( photo, titre, phone, street, postcode, city)
VALUES (:photo, :titre, :phone, :street, :postcode, :city)');
$retour= $req->execute(array(
'photo'=>$_FILES['photo']['name'],
'titre'=>$_POST['titre'],
'phone'=>$_POST['phone'],
'street'=>$_POST['street'],
'postcode'=>$_POST['postcode'],
'city'=>$_POST['city']
));
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
?>
Bienvenue,<?php echo $_SESSION['user']['email']; ?>
<form action="" method="post" enctype="multipart/form-data">
<!-- titre de la sortie -->
<label>titre :</label>
<input class="form-control" type="text" name="titre" value="<?php if(isset($_POST['titre'])) echo $_POST['titre'];?>" />
<div class="error"><?php if(isset($erreurs['titre'])) echo $erreurs['titre'];?></div>
<!-- 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>
<label>Photo</label>
<input name="photo" type="file"/>
<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>
<input name="currency_code" type="hidden" value="EUR" />
<input name="shipping" type="hidden" value="0.00" />
<input name="tax" type="hidden" value="0.00" />
<input name="return" type="hidden" value="http://www.lasortie.fr/succes.php" />
<input name="cancel_return" type="hidden" value="URL_ANNULATION" />
<input name="notify_url" type="hidden" value="" />
<input name="cmd" type="hidden" value="_xclick" />
<input name="business" type="hidden" value="[email protected]" />
<input name="item_name" type="hidden" value="offre publicitaire" />
<input name="no_note" type="hidden" value="1" />
<input name="lc" type="hidden" value="FR" />
<input name="bn" type="hidden" value="PP-BuyNowBF" />
<input name="custom" type="hidden" value="<?php echo $_SESSION['user']['id'].'|'.$_POST['titre'].'|'.$_POST['city'].'|'.$_POST['street'].'|'.$_POST['postcode'] ?>" />
<input type="submit" value="S'abonner" class="btn primary">
</form>
voici le code complet du formulaire:
Il y a bien pourtant mes variable titre,city,...
Je ne comprends pas trop où est le problème, merci à vous
[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';
}
/////////
// Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
$dossier = 'img/annonce/';
$fichier = basename($_FILES['photo']['name']);
$taille_maxi = 1000000;
$taille = filesize($_FILES['photo']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
$extension = strrchr($_FILES['photo']['name'], '.');
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Veuillez vérifier que le format de votre photo soit de type png, gif, jpg, jpeg, ';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
if(move_uploaded_file($_FILES['photo']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
echo 'Téléchargement effectué avec succès !';
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec du téléchargement !';
}
}
else
{
echo $erreur;
}
//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 ( photo, titre, phone, street, postcode, city)
VALUES (:photo, :titre, :phone, :street, :postcode, :city)');
$retour= $req->execute(array(
'photo'=>$_FILES['photo']['name'],
'titre'=>$_POST['titre'],
'phone'=>$_POST['phone'],
'street'=>$_POST['street'],
'postcode'=>$_POST['postcode'],
'city'=>$_POST['city']
));
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
?>
Bienvenue,<?php echo $_SESSION['user']['email']; ?>
<form action="" method="post" enctype="multipart/form-data">
<!-- titre de la sortie -->
<label>titre :</label>
<input class="form-control" type="text" name="titre" value="<?php if(isset($_POST['titre'])) echo $_POST['titre'];?>" />
<div class="error"><?php if(isset($erreurs['titre'])) echo $erreurs['titre'];?></div>
<!-- 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>
<label>Photo</label>
<input name="photo" type="file"/>
<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>
<input name="currency_code" type="hidden" value="EUR" />
<input name="shipping" type="hidden" value="0.00" />
<input name="tax" type="hidden" value="0.00" />
<input name="return" type="hidden" value="http://www.lasortie.fr/succes.php" />
<input name="cancel_return" type="hidden" value="URL_ANNULATION" />
<input name="notify_url" type="hidden" value="" />
<input name="cmd" type="hidden" value="_xclick" />
<input name="business" type="hidden" value="
[email protected]" />
<input name="item_name" type="hidden" value="offre publicitaire" />
<input name="no_note" type="hidden" value="1" />
<input name="lc" type="hidden" value="FR" />
<input name="bn" type="hidden" value="PP-BuyNowBF" />
<input name="custom" type="hidden" value="<?php echo $_SESSION['user']['id'].'|'.$_POST['titre'].'|'.$_POST['city'].'|'.$_POST['street'].'|'.$_POST['postcode'] ?>" />
<input type="submit" value="S'abonner" class="btn primary">
</form>[/php]