Petit annonce

alexis12web

alexis12web Le 15 avril 2017 à 17:37 (Édité le 25 janvier 2019 à 17:53)

Bonjours, je souhaite créer un site de petit annonce.
J'ai donc commencé a coder seulement je ne comprend pas pourquoi les condition de fonctionne pas et donc il n'y a rien dans ma table.

De plus je n'ais aucune erreur qui s'affiche.

<?php
session_start();

try
{
$bdd = new PDO('mysql:host=127.0.0.1;dbname=siteweb', 'root', '');
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e)
{
    echo $e->getMessage();
}

if(isset($_POST['formannonce'])) {
   $titre = htmlspecialchars($_POST['titre']);
   $prix = htmlspecialchars($_POST['prix']);
   $description = htmlspecialchars($_POST['description']);
   $categorie = htmlspecialchars($_POST['categorie']);
   $classe = htmlspecialchars($_POST['classe']);
   $etat = htmlspecialchars($_POST['etat']);
   $region = htmlspecialchars($_POST['region']);
   $departement = htmlspecialchars($_POST['departement']);
   $ville = htmlspecialchars($_POST['ville']);
   $code_postale = htmlspecialchars($_POST['code_postale']);
   if(!empty($_POST['titre']) AND !empty($_POST['prix']) AND !empty($_POST['description']) AND !empty($_POST['categorie']) AND !empty($_POST['classe']) AND !empty($_POST['etat']) AND !empty($_POST['region']) AND !empty($_POST['departement']) AND !empty($_POST['ville']) AND !empty($_POST['code_postale'])) {
      if($titrelength <= 50) {
         

       $insertmbr = $bdd->prepare("INSERT INTO annonce(titre, prix, description, categorie, classe, etat, region, departement, ville, code_postale, photo1) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
        $insertmbr->execute(array($titre, $prix, $description, $categorie, $classe, $etat, $region, $departement, $ville, $code_postale, "no_picture.jpeg"));
                  
         
      } else {
         $erreur = "Votre titre ne doit pas dépasser 50 caractères !";
      }
   } else {
      $erreur = "Tous les champs doivent être complétés !";
   }
}
   


if(isset($_FILES['photo1']) AND !empty($_FILES['photo1']['name'])) {
   $tailleMax = 2097152;
   $extensionsValides = array('jpg', 'jpeg', 'gif', 'png');
   if($_FILES['photo1']['size'] <= $tailleMax) {
      $extensionUpload = strtolower(substr(strrchr($_FILES['photo1']['name'], '.'), 1));
      if(in_array($extensionUpload, $extensionsValides)) {
         $chemin = "annonce/photo1/".$_SESSION['id'].".".$extensionUpload;
         $resultat = move_uploaded_file($_FILES['photo1']['tmp_name'], $chemin);
         if($resultat) {
            $updateavatar = $bdd->prepare('UPDATE membres SET photo1 = 😋hoto1 WHERE id = :id');
            $updateavatar->execute(array(
               'photo1' => $_SESSION['id'].".".$extensionUpload,
               'id' => $_SESSION['id']
               ));
         } else {
            $msg = "Erreur durant l'importation de votre photo 1";
         }
      } else {
         $msg = "Votre photo 1 doit être au format jpg, jpeg, gif ou png";
      }
   } else {
      $msg = "Votre photo 1 ne doit pas dépasser 2Mo";
   }
}
?>

<html>
<head>
      <title>Annonce</title>
      <meta charset="utf-8">
   </head>
   <body>
   <TABLE align="center">
 
<p>
  <label for="region">Région : </label>
    <A>
      <select id="region" name="region">
        <OPTION value='' >Choisissez la région</OPTION>
        <option value=1 >Alsace</option>
        <option value=2 >Aquitaine</option>
        <option value=3 >Auvergne</option>
        <option value=4 >Basse Normandie</option>
        <option value=5 >Bourgogne</option>
        <option value=6 >Bretagne</option>
        <option value=7 >Centre</option>
        <option value=8 >Champagne-Ardenne</option>
        <option value=9 >Corse</option>
        <option value=10 >Franche Comte</option>
        <option value=11 >Haute Normandie</option>
        <option value=12 >Ile de France</option>
        <option value=13 >Languedoc-Roussillon</option>
        <option value=14 >Limousin</option>
        <option value=15 >Lorraine</option>
        <option value=16 >Midi-Pyrenees</option>
        <option value=17 >Nord-Pas-de-Calais</option>
        <option value=18 >Pays de la Loire</option>
        <option value=19 >Picardie</option>
        <option value=20 >Poitou-Charentes</option>
        <option value=21 >Provence-Alpes-Cote-d-Azur</option>
        <option value=22 >Rhone-Alpes</option>
      </select>
    </A>
</p>



<p> 
  <label for="departement">Département : </label> 
  <A id=departement_div><SELECT id="departement" name="departement"> 
    <OPTION value='' >Choisissez le département</OPTION></SELECT>
  </A>
</p>

<p>
  <label for="categorie">Catégorie : </label>
    <select name="categorie">
      <option value="">Choisissez une catégorie</option>

      <option value="voiture"> Voiture</option>

      <option value="moto"> Moto</option>

      <option value="quad"> Quad</option>

      <option value="scooter"> Scooter</option>

      <option value="agricole"> Agricole </optgroup>

      <option value="bateau"> Bateau</option>

      <option value="jet-ski"> Jet ski</option>
    </select>
</p>

<p>
  <label for="classe">Vous êtes un :</label> 
    Particulier <input id="classe" name="classe" value="Particulier" checked="checked"  type="radio"> Professionnel <input id="classe" name="classe" value="Professionnel"  type="radio">
</p>

  <br>

<p> 
  <label for="ville">Ville :</label> 
  <input type="text" id="ville" name="ville" value="">
</p>
 
<p> 
  <label for="postal">Code postal : </label> 
  <input type="text" id="code_postale" name="code_postale" value="" maxlength="5">
</p>

<br><br>



<label>Photo n°1 :</label>
<input type="file" name="photo1"> 

<br /><br />

<p> 
  <label for="prix">Prix de l'objet :</label> 
  <input type="text" id="prix" name="prix" value="">
</p> 


<p> 
  <label for="titre">Titre de l'annonce :</label> 
  <input type="text" id="titre" name="titre" value="" class="formchamp" maxlength="50"> 
</p> 


<p> 
  <label for="description">Description de l'objet :</label> 
  <textarea id="description" name="description" class="textform" ></textarea>
</p> 


<p>
  <label for="etat">Etat de l'objet :</label> 

    <select id="etat" name="etat">

      <option value="">Choisissez l'etat de l'objet</option>

      <option value="Neuf" size="50">Neuf</option>

      <option value="Comme neuf" size="50">Comme neuf</option>

      <option value="Excellent" size="50">Excellent</option>

      <option value="Très Bon Etat" size="50">Très Bon Etat</option>

      <option value="Etat Correct" size="50">Etat Correct</option>

      <option value="Bon Etat" size="50">Bon Etat</option>

      <option value="Occasion" size="50">Occasion</option>

      <option value="Occasion moyen" size="50">Occasion moyen</option>

      <option value="Autre" size="50">Autre</option>
    </select>
</p> 

<form>
<p> 
<label for="envoyer"></label> 
  <input type="submit" name="formannonce" id="formannonce" value="Envoyer">
  <input type="reset" value="Effacer"> 
</p> 
</form>

<p><br><br></p>

</TD>
</TR>
</TR>
</table>
</html>


voila ma BDD
Balatharas

Balatharas Le 15 avril 2017 à 22:32

Sérieusement...
C'est sur que si tu n'entoures pas tout tes inputs de balises form (sans oubliez "enctype='multipart/form-data'") bah rien ne va se passer
alexis12web

alexis12web Le 17 avril 2017 à 19:45

Comme ceci ?

<html>
<head>
      <title>Annonce</title>
      <meta charset="utf-8">
   </head>
   <body>
   <form enctype="multipart/form-data">
   <TABLE align="center">
 
<p>
  <label for="region">Région : </label>
    <A>
      <select id="region" name="region">
        <OPTION value='' >Choisissez la région</OPTION>
        <option value=1 >Alsace</option>
        <option value=2 >Aquitaine</option>
        <option value=3 >Auvergne</option>
        <option value=4 >Basse Normandie</option>
        <option value=5 >Bourgogne</option>
        <option value=6 >Bretagne</option>
        <option value=7 >Centre</option>
        <option value=8 >Champagne-Ardenne</option>
        <option value=9 >Corse</option>
        <option value=10 >Franche Comte</option>
        <option value=11 >Haute Normandie</option>
        <option value=12 >Ile de France</option>
        <option value=13 >Languedoc-Roussillon</option>
        <option value=14 >Limousin</option>
        <option value=15 >Lorraine</option>
        <option value=16 >Midi-Pyrenees</option>
        <option value=17 >Nord-Pas-de-Calais</option>
        <option value=18 >Pays de la Loire</option>
        <option value=19 >Picardie</option>
        <option value=20 >Poitou-Charentes</option>
        <option value=21 >Provence-Alpes-Cote-d-Azur</option>
        <option value=22 >Rhone-Alpes</option>
      </select>
    </A>
</p>



<p> 
  <label for="departement">Département : </label> 
  <A id=departement_div><SELECT id="departement" name="departement"> 
    <OPTION value='' >Choisissez le département</OPTION></SELECT>
  </A>
</p>

<p>
  <label for="categorie">Catégorie : </label>
    <select name="categorie">
      <option value="">Choisissez une catégorie</option>

      <option value="voiture"> Voiture</option>

      <option value="moto"> Moto</option>

      <option value="quad"> Quad</option>

      <option value="scooter"> Scooter</option>

      <option value="agricole"> Agricole </optgroup>

      <option value="bateau"> Bateau</option>

      <option value="jet-ski"> Jet ski</option>
    </select>
</p>

<p>
  <label for="classe">Vous êtes un :</label> 
    Particulier <input id="classe" name="classe" value="Particulier" checked="checked"  type="radio"> Professionnel <input id="classe" name="classe" value="Professionnel"  type="radio">
</p>

  <br>

<p> 
  <label for="ville">Ville :</label> 
  <input type="text" id="ville" name="ville" value="">
</p>
 
<p> 
  <label for="postal">Code postal : </label> 
  <input type="text" id="code_postale" name="code_postale" value="" maxlength="5">
</p>

<br><br>



<label>Photo n°1 :</label>
<input type="file" name="photo1"> 

<br /><br />

<p> 
  <label for="prix">Prix de l'objet :</label> 
  <input type="text" id="prix" name="prix" value="">
</p> 


<p> 
  <label for="titre">Titre de l'annonce :</label> 
  <input type="text" id="titre" name="titre" value="" class="formchamp" maxlength="50"> 
</p> 


<p> 
  <label for="description">Description de l'objet :</label> 
  <textarea id="description" name="description" class="textform" ></textarea>
</p> 


<p>
  <label for="etat">Etat de l'objet :</label> 

    <select id="etat" name="etat">

      <option value="">Choisissez l'etat de l'objet</option>

      <option value="Neuf" size="50">Neuf</option>

      <option value="Comme neuf" size="50">Comme neuf</option>

      <option value="Excellent" size="50">Excellent</option>

      <option value="Très Bon Etat" size="50">Très Bon Etat</option>

      <option value="Etat Correct" size="50">Etat Correct</option>

      <option value="Bon Etat" size="50">Bon Etat</option>

      <option value="Occasion" size="50">Occasion</option>

      <option value="Occasion moyen" size="50">Occasion moyen</option>

      <option value="Autre" size="50">Autre</option>
    </select>
</p> 

<form>
<p> 
<label for="envoyer"></label> 
  <input type="submit" name="formannonce" id="formannonce" value="Envoyer">
  <input type="reset" value="Effacer"> 
</p> 
</form>

<p><br><br></p>

</TD>
</TR>
</TR>
</table>
</form>
</html>
TheOldNoob

TheOldNoob Le 17 avril 2017 à 20:02

ça a l'air pas mal a première vu, mais comme ton indentation est catastrophique, j'ai bcp de mal a voir si il peu y avoir des erreurs

Ah si, tu a une balise form autour de tes deux boutons, tu n'a pas besoin de les remettre dedans puisqu'ils sont déjà dans la balise form de ton formulaire.
alexis12web

alexis12web Le 18 avril 2017 à 18:50 (Édité le 18 avril 2017 à 18:50)

Salut. Toujours rien ne se passe et je ne sais pas pourquoi.
TheOldNoob

TheOldNoob Le 19 avril 2017 à 23:01

J'ai pas vu ta correction de code, mais tu doit avoir une structure qui ressemble a ça :

<form action="">
  <input type="text">
  <textarea name="" id="" cols="30" rows="10">
  <select name="" id="">
    <option value=""></option>
    <option value=""></option>
    <option value=""></option>
    <option value=""></option>
    <option value=""></option>
  </select>
  <submit>
</form>
Absolument tout tes input, et autre option pour ton utilisateur, ainsi que les boutons doivent être dans la balise form
Balatharas

Balatharas Le 20 avril 2017 à 14:39

Tu es sur de savoir utiliser un formulaire ? Tu devrais regarder la vidéo de PrimFX (ou meme de quelqu'un d'autre hein)
alexis12web

alexis12web Le 24 avril 2017 à 19:41

j'ai refait mon indentation. j'ai regardé pour les formulaire aussi.
<!DOCTYPE>
<html>
  <head>
    <title>Annonce</title>
    <meta charset="utf-8">
  </head>
  <body>
    <div align="center">
      <h2>Déposer un annonce</h2>
        <form method="POST" action="" enctype="multipart/form-data">
          <TABLE>
            <tr>
              <td align="right">
                <label for="region">Région : </label>
              </td>
              <td>
                <select id="region" name="region">
                  <OPTION value='' >Choisissez la région</OPTION>
                  <option value=1 >Alsace</option>
                  <option value=2 >Aquitaine</option>
                  <option value=3 >Auvergne</option>
                  <option value=4 >Basse Normandie</option>
                  <option value=5 >Bourgogne</option>
                  <option value=6 >Bretagne</option>
                  <option value=7 >Centre</option>
                  <option value=8 >Champagne-Ardenne</option>
                  <option value=9 >Corse</option>
                  <option value=10 >Franche Comte</option>
                  <option value=11 >Haute Normandie</option>
                  <option value=12 >Ile de France</option>
                  <option value=13 >Languedoc-Roussillon</option>
                  <option value=14 >Limousin</option>
                  <option value=15 >Lorraine</option>
                  <option value=16 >Midi-Pyrenees</option>
                  <option value=17 >Nord-Pas-de-Calais</option>
                  <option value=18 >Pays de la Loire</option>
                  <option value=19 >Picardie</option>
                  <option value=20 >Poitou-Charentes</option>
                  <option value=21 >Provence-Alpes-Cote-d-Azur</option>
                  <option value=22 >Rhone-Alpes</option>
                </select>
              </td>
            </tr>
            <tr>
              <td align="right">
                <label for="departement">Département : </label> 
              </td>
              <td>
                <A id=departement_div><SELECT id="departement" name="departement"> 
                  <OPTION value='' >Choisissez le département</OPTION></SELECT>
                </A>
              </td>
            </tr>
            <tr>
              <td align="right">
                <label for="categorie">Catégorie : </label>
              </td>
              <td>
                <select name="categorie">
                  <option value="">Choisissez une catégorie</option>
                  <option value="voiture"> Voiture</option>
                  <option value="moto"> Moto</option>
                  <option value="quad"> Quad</option>
                  <option value="scooter"> Scooter</option>
                  <option value="agricole"> Agricole </optgroup>
                  <option value="bateau"> Bateau</option>
                  <option value="jet-ski"> Jet ski</option>
                </select>
              </td>
            </tr>
            <tr>
              <td align="right">
                <label for="classe">Vous êtes un :</label>
              </td>
              <td>
                Particulier <input id="classe" name="classe" value="Particulier" checked="checked"  type="radio"> Professionnel <input id="classe" name="classe" value="Professionnel"  type="radio">
              </td>
            </tr>
            <tr>
              <td align="right">
                <label for="ville">Ville :</label>
              </td>
              <td>
                <input type="text" id="ville" name="ville" value="">
              </td>
            </tr>
            <tr>
              <td align="right">
                <label for="postal">Code postal : </label>
              </td>
              <td>
                <input type="text" id="code_postale" name="code_postale" value="" maxlength="5">
              </td>
            </tr>
            <tr>
              <td align="right">
                <label>Photo n°1 :</label>
              </td>
              <td>
                <input type="file" name="photo1">
              </td>
            </tr>
            <tr>
              <td align="right">
                <label for="prix">Prix de l'objet :</label>
              </td>
              <td>
                <input type="text" id="prix" name="prix" value="">
              </td>
            </tr>
            <tr>
              <td align="right">
                <label for="titre">Titre de l'annonce :</label>
              </td>
              <td>
                <input type="text" id="titre" name="titre" value="" class="formchamp" maxlength="50">
              </td>
            </tr>
            <tr>
              <td align="right">
                <label for="description">Description de l'objet :</label>
              </td>
              <td>
                <textarea id="description" name="description" class="textform" cols="30" rows="5"></textarea>
              </td>
            </tr>
            <tr>
              <td align="right">
                <label for="etat">Etat de l'objet :</label>
              </td>
              <td>
                <select id="etat" name="etat">
                  <option value="">Choisissez l'etat de l'objet</option>
                  <option value="Neuf" size="50">Neuf</option>
                  <option value="Comme neuf" size="50">Comme neuf</option>
                  <option value="Excellent" size="50">Excellent</option>
                  <option value="Très Bon Etat" size="50">Très Bon Etat</option>
                  <option value="Etat Correct" size="50">Etat Correct</option>
                  <option value="Bon Etat" size="50">Bon Etat</option>
                  <option value="Occasion" size="50">Occasion</option>
                  <option value="Occasion moyen" size="50">Occasion moyen</option>
                  <option value="Autre" size="50">Autre</option>
                </select>
              </td>
            </tr>
            <tr>
              <td align="right">
                <label for="envoyer"></label>
              </td>
              <td>
                <input type="submit" name="formannonce" id="formannonce" value="Envoyer">
                <input type="reset" value="Effacer">
              </td>
            </tr>
          </table>
        </form>
    </div>
</body>
</html>
pouvez-vous m'aider ?
TheOldNoob

TheOldNoob Le 24 avril 2017 à 20:11

C'est tout le problème de se genre de vérification mono vérification. Tu n'a qu'un seul if pour vérifié si il y a bien tout tes champs qui ne sont pas vide. 
Tu doit avoir un if ainsi qu'un message personnalisé d'erreur pour chaque condition. C'est le seul moyen de savoir d'ou l'erreur peu venir.

Ensuite, bon ok ça n'entre pas dans ta bdd, mais a tu un message d'erreur?
Sinon, il faut faire des var_dump
alexis12web

alexis12web Le 24 avril 2017 à 20:28

je vient de rajouter un message d'erreur pour chaque condition et toujours rien. je n'ai aucun message d'erreur. comment on utilise les var_dump ?
Balatharas

Balatharas Le 24 avril 2017 à 20:35

Syntaxe var_dump( );
<?php
var_dump($var);
?>
Il te fait un retour auto
alexis12web

alexis12web Le 24 avril 2017 à 21:03

je l'ais mis comme ceci 
if(isset($_POST['formannonce'])) {
   $titre = htmlspecialchars($_POST['titre']);
   $prix = htmlspecialchars($_POST['prix']);
   $description = htmlspecialchars($_POST['description']);
   $categorie = htmlspecialchars($_POST['categorie']);
   $classe = htmlspecialchars($_POST['classe']);
   $etat = htmlspecialchars($_POST['etat']);
   $region = htmlspecialchars($_POST['region']);
   $departement = htmlspecialchars($_POST['departement']);
   $ville = htmlspecialchars($_POST['ville']);
   $code_postale = htmlspecialchars($_POST['code_postale']);
   var_dump($titre);
   var_dump($prix);
   var_dump($description);
   var_dump($categorie);
   var_dump($classe);
   var_dump($etat);
   var_dump($region);
   var_dump($departement);
   var_dump($ville);
   var_dump($code_postale);
     if(!empty($_POST['titre']) AND !empty($_POST['prix']) AND !empty($_POST['description']) AND !empty($_POST['categorie']) AND !empty($_POST['classe']) AND !empty($_POST['etat']) AND !empty($_POST['region']) AND !empty($_POST['departement']) AND !empty($_POST['ville']) AND !empty($_POST['code_postale'])) {
        if($titrelength <= 50) {
         
       $insertmbr = $bdd->prepare("INSERT INTO annonce(titre, prix, description, categorie, classe, etat, region, departement, ville, code_postale, photo1) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
        $insertmbr->execute(array($titre, $prix, $description, $categorie, $classe, $etat, $region, $departement, $ville, $code_postale, "no_picture.jpeg"));
                  
         
      } else {
         $erreur = "Votre titre ne doit pas dépasser 50 caractères !";
      }
   } else {
      $erreur = "Tous les champs doivent être complétés !";
   }
}
du coup en haut a gauche s'affiche la valeur qui est entré ainsi que le nombre de mots
alexis12web

alexis12web Le 26 avril 2017 à 20:17 (Édité le 26 avril 2017 à 20:18)

Est-ce normal que rien ne se passe quand j'envoie (aucune erreur même pour les champs vides) sachant qu'il y a marquer en bas (en attente de localhost ) ceci pendant un 1sec ?
Balatharas

Balatharas Le 28 avril 2017 à 16:25 (Édité le 28 avril 2017 à 16:26)

Tu n'a pas défini la variable $titrelength.. + tu es sûr que le nom de la table est correct par rapport a ta bdd ? Que le nom des colonnes est aussi correct ?
$titrelength = strlen($titre);
[...] sachant qu'il y a marquer en bas (en attente de localhost ) ceci pendant un 1sec ?
 Aucun rapport. Le navigateur montre qu'il est en train de communiquer les infos que tu as rentrées au serveur.
D'autant plus que si tu cliques sur un lien quelconque tu verras en bas en attente de <site en question> 
alexis12web

alexis12web Le 28 avril 2017 à 20:20 (Édité le 28 avril 2017 à 21:56)

Oui le nom de ma table correspond ainsi que le nom des colonnes. Je ne vois vraiment pas d'ou cela peut venir. Voici ma BDD
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte