Menu

Table BDD nombre de ligne limitée [Résolu]

- - Dernière réponse : jordane45
Messages postés
24637
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
22 février 2019
- 9 févr. 2019 à 18:05
Bonjour à tous et toutes,
Je dispose d'une table SQL pour enregistrer les dossiers des membres de mon site. Pour entrer les données dans ma table, j'ai fait une page d''inscription' connectée à ma BDD. J'ai réussi à rentrer 10membres mais il me reste encore environ 10membres à ajouter et impossible de les enregistrer...
Je remplis ma page, je clique sur envoyé mais ça ne s'envoie plus dans ma BDD. (Je me suis dit que c'était que ma table était limitée à 10lignes mais j'ai essayé d'insérer un membre manuellement (via phpMyAdmin) et la le membre c'est bien enregistré.)

J'espère m'^tre bien exprimé sinon faites moi signe...

Auriez-vous une idée de pourquoi je n'arrive plus à les enregistrer depuis ma page d'inscription?
Merci d'avance...
Bonne journée.
Configuration: Windows / Firefox 65.0
Afficher la suite 

Votre réponse

2 réponses

Messages postés
24637
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
22 février 2019
1859
0
Merci
Bonjour,

Primo... ta BDD .. c'est du mysql ... et pas du sql server. Je déplace donc ta question dans le bon forum.
Ensuite.. ton souci semble concerner le code avec lequel tu fais l'insertion en base... pas la bdd elle même.
Et si tu ne nous montres pas ton code, il nous est IMPOSSIBLE de t'aider.
Penses à nous donner le code ( PHP je suppose) qui te sert à faire ton insertion ainsi que la structure (via un DUMP ) de ta table.

NB : Pour poster ton code sur le forum, tu devras utiliser : les balises de code
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Commenter la réponse de jordane45
Messages postés
2
Date d'inscription
samedi 9 février 2019
Dernière intervention
15 février 2019
0
Merci
PAGE creer_membres.php
<?php require_once ("debut2.php");?><?php include('../haut.php');?> <!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>Nouveau membre</title>

        <style>

            body
            {
                background: rgba(255,221,95,1)
            }

            header 
            {
                height: 210px;
                border: 2px solid black;
                text-align: center;
                padding: 10px;
                margin: 20px;
            }

            table
            {
                text-align: center;
                margin: auto;
                width: 95%;
              height: 50em;

            }

            footer
            {
                height: 100px;
                border: 2px solid black;
                text-align: center;
                padding: 10px;
                margin: 5px;
            }

ul#menu_horizontal li 
{ 
display : inline;
padding : 0 0.5em;
border: 1px black;
}

ul#menu_horizontal 
{
    list-style-type : none; 
}

a
{
    border: 1px blue;
}
        </style>

    </head>
    <body>
        <header>
        <br>
            <h2>Créer un membre:</h2>

            <ul id="menu_horizontal">
            <li><a href="../index.php">Accueil</a></li>
            <li><a href="../membres.php">Les membres</a></li>
            <li><a href="../clients.php">Les clients</a></li>
            <li><a href="../aides.php">Les aides</a></li>
            <li><a href="../documents_officiels.php">Les documents</a></li>
            <li><a href="../gestion_avancee.php">Gestion</a></li>
            <?php
                if(isset($_SESSION['user'])){
            ?>
                <li><a href="../update-password.php">Changer mot de passe</a></li>
            <?php
                }
            ?>
            <li><a style="color: red" href="../connexion.php">Me <?php if(isset($_SESSION['user'])){echo"dé";}?>connecter</a></li>
            
            <?php
                if(!isset($_SESSION['user']) || $_SESSION['user']['role']<3) {                    
                    header('Location: ../index.php'); 
                } else {
            ?>
                    <li><a style="color: green" href="../creer-utilisateur.php">Créer un utilisateur</a></li>
            <?php
                }
            ?>    
            </ul>
        </header>
        <br /><br />                

        <br>
        <br>             
        <?php
            if(!empty($_POST)) {

                $valid=true;
                if(!isset($_POST['nom']) || empty($_POST['nom'])) {
                    echo "<div class='bandeau bandeau-error'>Merci de renseigner le nom.</div>";
                    $valid=false;
                }
                if(!isset($_POST['prenom']) || empty($_POST['prenom'])) {
                    echo "<div class='bandeau bandeau-error'>Merci de renseigner le prénom.</div>";
                    $valid=false;
                }

                if(!isset($_POST['date_naissance']) || empty($_POST['date_naissance'])) {
                    echo "<div class='bandeau bandeau-error'>Merci de renseigner la date de naissance.</div>";
                    $valid=false;
                }

                if(!isset($_POST['domiciliation']) || empty($_POST['domiciliation'])) {
                    echo "<div class='bandeau bandeau-error'>Merci de renseigner la domiciliation.</div>";
                    $valid=false;
                }
              
              	if(!isset($_POST['profession']) || empty($_POST['profession'])) {
                    echo "<div class='bandeau bandeau-error'>Merci de renseigner la profession.</div>";
                    $valid=false;
                }

                if(!isset($_POST['dateinscription']) || empty($_POST['dateinscription'])) {
                    echo "<div class='bandeau bandeau-error'>Merci de renseigner la date d'inscription du client.</div>";
                    $valid=false;
                }
              
              	if(!isset($_POST['mise_a_jour']) || empty($_POST['mise_a_jour'])) {
                    echo "<div class='bandeau bandeau-error'>Merci de renseigner la date d'aujourd'hui.</div>";
                    $valid=false;
                }
              
                        if(!isset($_POST['ID']) || empty($_POST['ID'])) {
                              echo "<div class='bandeau bandeau-error'>Merci de renseigner l'ID (****).</div>";
                              $valid=false;
                          }

                if(!isset($_POST['email']) || empty($_POST['email'])) {
                    echo "<div class='bandeau bandeau-error'>Merci de renseigner l'email.</div>";
                    $valid=false;
                }

                if(!isset($_POST['tel']) || empty($_POST['tel'])) {
                    echo "<div class='bandeau bandeau-error'>Merci de renseigner le téléphone.</div>";
                    $valid=false;
                }

                if(!isset($_POST['autrecontact']) || empty($_POST['autrecontact'])) {
                    echo "<div class='bandeau bandeau-error'>Merci de renseigner les autres points de contact.</div>";
                    $valid=false;
                }

                if(!isset($_POST['aide']) || empty($_POST['aide'])) {
                    echo "<div class='bandeau bandeau-error'>Merci de renseigner le domaine d'aide.</div>";
                    $valid=false;
                }

                if(!isset($_POST['aidesupp']) || empty($_POST['aidesupp'])) {
                    echo "<div class='bandeau bandeau-error'>Merci de renseigner les autres domaines d'aides.</div>";
                    $valid=false;
                }
              
              	if(!isset($_POST['commentaire']) || empty($_POST['commentaire'])) {
                    echo "<div class='bandeau bandeau-error'>Merci de renseigner un commentaire ou remplir la case..</div>";
                    $valid=false;
                }
              
                if(!isset($_POST['frais']) || empty($_POST['frais'])) {
                      echo "<div class='bandeau bandeau-error'>Merci de renseigner si ce membre participe ou non aux frais.</div>";
                      $valid=false;
                  }
              
                if(!isset($_POST['montant']) || empty($_POST['montant'])) {
                        echo "<div class='bandeau bandeau-error'>Merci de renseigner le montant si ce membre participe aux frais.</div>";
                        $valid=false;
                    }

                if($valid) {
                    $nom = htmlspecialchars($_POST['nom']);
                    $prenom = htmlspecialchars($_POST['prenom']);
                    $date_naissance = htmlspecialchars($_POST['date_naissance']);
                    $domiciliation = htmlspecialchars($_POST['domiciliation']);
                  	$profession = htmlspecialchars($_POST['profession']);
                    $dateinscription = htmlspecialchars($_POST['dateinscription']);
                  	$mise_a_jour = htmlspecialchars ($_POST['mise_a_jour']);
                    $ID = htmlspecialchars($_POST['ID']);
                  	$email = htmlspecialchars($_POST['email']);
                  	$statutemail = htmlspecialchars($_POST['statutemail']);
                    $tel = htmlspecialchars($_POST['tel']);
                  	$statuttel = htmlspecialchars ($_POST['statuttel']);
                    $autrecontact = htmlspecialchars($_POST['autrecontact']);
                  	$statutautre1 = htmlspecialchars($_POST['statutautre1']);
                  	$autrecontact2 = htmlspecialchars($_POST['autrecontact2']);
                  	$statutautre2 = htmlspecialchars($_POST['statutautre2']);
                    $aide = htmlspecialchars($_POST['aide']);
                    $aidesupp = htmlspecialchars($_POST['aidesupp']);
                  $commentaire = htmlspecialchars($_POST['commentaire']);
                  $frais = htmlspecialchars($_POST['frais']);
                  $montant = htmlspecialchars($_POST['montant']);

                    $res = add_membres($pdo, $nom, $prenom, $date_naissance, $domiciliation, $profession, $dateinscription, $mise_a_jour, $ID, $email, $statutemail, $tel, $statuttel, $autrecontact, $statutautre1, $autrecontact2, $statutautre2, $aide, $aidesupp, $commentaire, $frais, $montant);
                    if($res) {
                        echo "<div class='bandeau bandeau-success'>Le membre a bien été ajouté !</div>";
                    } else {                        
                        echo "<div class='bandeau bandeau-error'>Le membre a été ajouté.</div>";
                    }
                }
            }
        ?>
            <table border=1 width=100% align="center" cellspacing=0 cellpadding=0 >
                <tr>
                    <td width="100%"><h3>Créer un membre:</h3>
                    <form method="POST" action="creer_membres.php">
                      <p>Mettre le nom</p><input style= "width: 50%; text-align: center;" type="text" name="nom" placeholder="Nom" required/><br>
                      <br>
                        <p>Mettre le prénom</p><input style= "width: 50%; text-align: center;" type="text" name="prenom" placeholder="Prénom" required/><br>
                      <br>
                        <p>Mettre la date de naissance</p><input style= "width: 50%; text-align: center;" type="text" name="date_naissance" placeholder="1900-01-31" required/><br>
                      <br>
                      <p>Mettre la profession</p><input style= "width: 50%; text-align: center;" type="text" name="profession" placeholder="Profession" required/><br>
                      <br>
                        <p>Mettre le lieu de résidence</p><input style= "width: 50%; text-align: center;" type="text" name="domiciliation" placeholder="Domiciliation" required/><br>
                      <br>
                      <br>
                        <p>Mettre la date d'inscription. Année-mois-jour</p><input style= "width: 50%; text-align: center;" type="text" name="dateinscription" placeholder="2018-05-07" required/><br>                       
                      <br>
                      <p>Mettre la date du jour (aujourd'hui). Année-mois-jour</p><input style= "width: 50%; text-align: center;" type="text" name="mise_a_jour" placeholder="2018-01-31" required/><br>                       
                      <br>
                      <p>Mettre l'ID</p><input style= "width: 50%; text-align: center;" type="text" name="ID" placeholder="ID" required/><br>
                      <br>
                      <br>
                       <p>Mettre l'email</p><input style= "width: 50%; text-align: center;" type="text" name="email" placeholder="Email" required/>
                      	<p>Mettre le statut de l'email</p><select name="statutemail" id="statutemail">
                      		<option value="public" selected>Public</option>
							<option value="semi-public">Semi-public</option>
                      		<option value="prive">Privé</option></select>
                      <br>
                        <p>Mettre le tel (si rien mettre des 00)</p><input style= "width: 50%; text-align: center;" type="text" name="tel" placeholder="Téléphone" required/>
                      	 <p>Mettre le statut du téléphone</p><select name="statuttel" id="statuttel">
                      		<option value="public">Public</option>
							<option value="semi-public">Semi-public</option>
                      		<option value="prive" selected>Privé</option></select>
                      <br>
                        <p>Mettre un autre point de contact</p><input style= "width: 50%; text-align: center;" type="text" name="autrecontact" placeholder="Autre point de contact" required/>
                      	 <p>Mettre le statut du point de contact</p><select name="statutautre1" id="statutautre1">
                      		<option value="public">Public</option>
							<option value="semi-public" selected>Semi-public</option>
                      		<option value="prive">Privé</option></select>
                      <br>
                      	<p>Mettre les autres points de contact</p><input style= "width: 50%; text-align: center;" type="text" name="autrecontact2" placeholder="Autres points de contact"/>
                      	 <p>Mettre le statut des autres points de contact</p><select name="statutautre2" id="statutautre2">
                      		<option value="public">Public</option>
							<option value="semi-public" selected>Semi-public</option>
                      		<option value="prive">Privé</option></select>
                      <br>
                        <p>Mettre un domaine d'aide</p><input style= "width: 50%; text-align: center;" type="text" name="aide" placeholder="aide" required/><br>
                      <br>
                        <p>Mettre les autres domaines d'aides</p><input style= "width: 50%; text-align: center;" type="text" name="aidesupp" placeholder="Autre domaine d'aide" required/><br>
                      <br>
                      	<p>Mettre un commentaire</p><input style= "width: 50%; text-align: center;" type="text" name="commentaire" placeholder="Commentaire" required/><br>
                      <br>
                      <br>
                      	<p>Mettre si participation aux frais</p><input style= "width: 50%; text-align: center;" type="text" name="frais" placeholder="Oui ou non" required/><br>
                      <br>
                        <p>Mettre le montant de l'aide</p><input style= "width: 50%; text-align: center;" type="text" name="montant" placeholder="Montant" required/><br>
    
                        <input style= "width: 30%; text-align: center;"type="submit" /><br><br>
                    </form>
                </td>
            </table>
        <footer>
            <p>Mailto: tousuniscontrelesuicide@hotmail.com</p>
            <a href="../qui_contacter.php">Nous contacter</a>
            <p>Site web:<a href="https://www.tousuniscontrelesuicide.com">www.tousuniscontrelesuicide.com</a></p>
        </footer>
        
    </body>
</html>


PAGE debut2.php
<?php
$host_name = 'db770114383.hosting-data.io';
$database = 'db770114383';
$user_name = 'dbo770114383';
$password = 'MON MDP ICI';
  try {
  $pdo = new PDO("mysql:host=$host_name; dbname=$database;", $user_name, $password);
    $pdo->exec('SET NAMES utf8');
} catch (PDOException $e) {
  echo "Erreur!: " . $e->getMessage() . "<br/>";
  die();  
}

function add_membres($pdo, $nom, $prenom, $date_naissance, $domiciliation, $profession, $dateinscription, $mise_a_jour,$ID, $email, $statutemail, $tel, $statuttel, $autrecontact, $statutautre1, $autrecontact2, $statutautre2, $aide, $aidesupp, $commentaire, $frais, $montant){
        try {
            $stmt = $pdo->prepare("INSERT INTO membres (nom, prenom, date_naissance, profession, domiciliation, dateinscription, mise_a_jour, ID, email, statutemail, tel, statutemail, autrecontact, statutautre1, autrecontact2, statutautre2, aide, aidesupp, commentaire, frais, montant) VALUES(:nom, :prenom, :date_naissance, :profession, :domiciliation, :dateinscription, :mise_a_jour, :ID, :email, :statutemail, :tel, :statuttel, :autrecontact, :statutautre1, :autrecontact2, :statutautre2, :aide, :aidesupp, :commentaire, :frais, :montant)");
            $stmt->bindParam(':nom', $nom);
            $stmt->bindParam(':prenom', $prenom);
            $stmt->bindParam(':date_naissance', $date_naissance);
          	$stmt->bindParam(':profession', $profession);
            $stmt->bindParam(':domiciliation', $domiciliation);
            $stmt->bindParam(':dateinscription', $dateinscription);
          	$stmt->bindParam(':mise_a_jour', $mise_a_jour);
            $stmt->bindParam(':ID', $ID);
            $stmt->bindParam(':email', $email);
          	$stmt->bindParam(':statutemail', $statutemail);
            $stmt->bindParam(':tel', $tel);
          	$stmt->bindParam(':statuttel', $statuttel);
            $stmt->bindParam(':autrecontact', $autrecontact);
          	$stmt->bindParam(':statutautre1', $statutautre1);
          	$stmt->bindParam(':autrecontact2', $autrecontact2);
          	$stmt->bindParam(':statutautre2', $statutautre2);
            $stmt->bindParam(':aide', $aide);
            $stmt->bindParam(':aidesupp', $aidesupp);
            $stmt->bindParam(':commentaire', $commentaire);
            $stmt->bindParam(':frais', $frais);
            $stmt->bindParam(':montant', $montant);
            $stmt->execute();
            return false;
        } catch(Exception $e) {
            return false;
        }
    }

function update_infos($pdo, $nom, $prenom, $date_naissance, $domiciliation, $profession, $dateinscription, $mise_a_jour, $ID, $email, $statutemail, $tel, $statuttel, $autrecontact, $statutautre1, $autrecontact2, $statutautre2, $aide, $aidesupp, $commentaire, $frais, $montant){
        try {
            $stmt = $pdo->prepare("UPDATE membres SET nom=:nom, prenom=:prenom, date_naissance=:date_naissance, domiciliation=:domiciliation, dateinscription=:dateinscription, mise_a_jour=:mise_a_jour, email=:email, statutemail=:statutemail, tel=:tel, statuttel=:statuttel, autrecontact=:autrecontact, statutautre1=:statutautre1, autrecontact2=:autrecontact2, statutautre2=:statutautre2, aide=:aide, aidesupp=:aidesupp, commentaire=:commentaire, frais=:frais, montant=:montant WHERE ID=:ID");
            $stmt->bindParam(':nom', $nom);
            $stmt->bindParam(':prenom', $prenom);
            $stmt->bindParam(':date_naissance', $date_naissance);
          	$stmt->bindParam(':profession', $profession);
            $stmt->bindParam(':domiciliation', $domiciliation);
            $stmt->bindParam(':dateinscription', $dateinscription);
          	$stmt->bindParam(':mise_a_jour', $mise_a_jour);					
            $stmt->bindParam(':email', $email);
          	$stmt->bindParam(':statutemail', $statutemail);
            $stmt->bindParam(':tel', $tel);
          	$stmt->bindParam(':statuttel', $statuttel);
            $stmt->bindParam(':autrecontact', $autrecontact);
          	$stmt->bindParam(':statutautre1', $statutautre1);
          	$stmt->bindParam(':autrecontact2', $autrecontact2);
          	$stmt->bindParam(':statutautre2', $statutautre2);
            $stmt->bindParam(':aide', $aide);
            $stmt->bindParam(':aidesupp', $aidesupp);
            $stmt->bindParam(':commentaire', $commentaire);
            $stmt->bindParam(':frais', $frais);
            $stmt->bindParam(':montant', $montant);
            $stmt->execute();
            return true;
        } catch(Exception $e) {
            return false;
        }
    }

?>


Il y a surement beaucoup de remarques à faire sur mon code car je ne suis pas professionnel... :)
jordane45
Messages postés
24637
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
22 février 2019
1859 -
Bon;
Le code est pas si mal..

mais il y a bien des choses à modifier/corriger.

dans creer_membres.php
Déjà...
- La fonction htmlspecialchars n'est à utiliser que pour de l'affichage. En aucun cas pour l'insertion en bdd.
- isset et empty ... empty vérifie déjà que la variable existe ET n'est pas vide.. donc pas besoin d'avoir le isset en plus.

Ensuite, il serait préférable de traiter le maximum de php AVANT le html et de récupérer proprement les variables AVANT de les utiliser.
Je t'invite à lire ceci (et à appliquer) : http://www.commentcamarche.net/faq/48399-php-gestion-des-erreurs-debogage-et-ecriture-du-code

Dans debut2.php
- pas besoin de passer la variable $pdo comme un paramètre de tes fonctions....
il suffit de le déclarer en global au début de celles-ci
function add_membres( $nom, $prenom, $date_naissance, $domiciliation, $profession, $dateinscription, $mise_a_jour,$ID, $email, $statutemail, $tel, $statuttel, $autrecontact, $statutautre1, $autrecontact2, $statutautre2, $aide, $aidesupp, $commentaire, $frais, $montant){
  global $pdo;


- Tu places bien des requêtes dans des blocs try/catch ... mais tu n'as pas activé, dans ta connexion, la gestion des erreurs PDO...
Donc, à lire et à appliquer :
http://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs



Avec tout ça... tu devrais obtenir, si ça ne fonctionne toujours, un message d'erreur indiquant où se situe le souci.
Reviens nous avec ton code corrigé et l'eventuel message d'erreur.
Commenter la réponse de Guigui4671