Partage
  • Partager sur Facebook
  • Partager sur Twitter

il manque une ou plusieurs données

    19 mai 2019 à 21:45:09

    Bonjour,

    Je test actuellement mon site internet.

    voici mon formulaire d'inscription d'une assurance :

    <?php
    
    
    debug( $_POST, true );
    
    echo '<pre>' . print_r( $_POST, true ) . '</pre>';
    $_GET['page'] = 'connexion';
    if ( ! empty( $_POST ) ) {
    	if ( ! isset(
    		$_POST['nom'],
    		$_POST['codePostal'],
    		$_POST['email'],
    		$_POST['ville'],
    		$_POST['telephone'],
    		$_POST['pays'],
    		$_POST['numAssurer'],
    		$_POST['adresse1'],
    		$_POST['adresse2'],
    		$_POST['assurance']) ) {
    
    		echo "il manque une ou plusieurs donnees";
    
    	} else {
    		//remont� dans l'index
    		// 		require_once '../../include/autoload.php';
    		try {
    			$oManagerAssurance_habitation = new ManagerAssurance_habitation(); //cr�aton d'un objet manager
    			$oManagerAssurance_habitation->setDb( $db ); // on passe la connexion � l'objet manager
    			$oManagerAssurance_habitation->add( $_POST );
    			$Assurance_habitation = $oManagerAssurance_habitation->getAllHabitation();
    
    			$_GET['page'] = 'accueil';
    		} catch ( LengthException $lengthException ) {
    //cas longueur == 0
    			echo $lengthException->GetMessage();
    		} catch ( Exception $exception ) {
    //aute cas (mais pour nous invalide)
    			echo $exception->GetMessage();
    		}
    		header("Location: index.php?page=completez_profil");
    
    	}
    }
    ?>
    
    <div class="row align-items-start">
    	<div class="col-12 col-md-8 unis_volontaire">
    		<section class="page-section">
    			<form action="?page=profil_AssuranceHabitationInscription" method="post">
    
    				<div class="form-group">
    					<label for="nom"> Nom : </label><input type="text" class="form-control" aria-describedby="nom"  id="nom" name="nom">
    				</div>
    				<span id="nom_manquant">
                        </span>
    
    				<div class="form-group">
    					<label for="codePostal"> Code Postal : </label><input type="text" class="form-control" aria-describedby="code Postal"  id="codePostal" name="codePostal">
    				</div>
    				<span id="code_manquant">
                        </span>
    
    				<div class="form-group">
    					<label for="email"> email : </label><input type="email" class="form-control" aria-describedby="email"  id="email" name="email">
    				</div>
    				<span id="email_manquant">
                        </span>
    
    				<div class="form-group">
    					<label for="ville"> ville : </label><input type="text" class="form-control" aria-describedby="ville"  id="ville" name="ville">
    				</div>
    				<span id="ville_manquant">
                        </span>
    
    				<div class="form-group">
    					<label for="telephone"> telephone : </label><input type="text" class="form-control" aria-describedby="telephone"  id="telephone" name="telephone">
    				</div>
    				<span id="telephone_manquant">
                        </span>
    
    				<div class="form-group">
    					<label for="pays"> Pays : </label><input type="text" class="form-control" aria-describedby="pays"  id="pays" name="pays">
    				</div>
    
    				<div class="form-group">
    					<label for="numAssurer"> Num�ro d'assurer : </label><input type="text" class="form-control" aria-describedby="numAssurer"  id="numAssurer" name="numAssurer">
    				</div>
    
    				<div class="form-group">
    					<label for="adresse1"> adresse : </label><input type="text" class="form-control" aria-describedby="adresse1"  id="adresse1" name="adresse1">
    				</div>
    				<span id="adresse1_manquant">
                        </span>
    
    				<div class="form-group">
    					<label for="adresse2"> adresse : </label><input type="text" class="form-control" aria-describedby="adresse2"  id="adresse2" name="adresse2">
    				</div>
    
    				<p>
    					<input type="submit" name="inscription" id="button" class="btn-inscrit" value="enregistrer">
    				</p>
    
    			</form>
    		</section>
    
    	</div>
    </div>
    
    
    

    voici les class :

    <?php
    /**
     * Created by PhpStorm.
     * User: Adeline
     * Date: 16/02/2019
     * Time: 00:33
     */
    
    class Assurance {
    
    	protected $id;
    	protected $nom;
    	protected $codePostal;
    	protected $email;
    	protected $ville;
    	protected $telephone;
    	protected $pays;
    	protected $numAssurer;
    	protected $adresse1;
    	protected $adresse2;
    
    	public function __construct( array $array =[] )
    	{
    		$this->hydrate($array);
    	}
    
    
    	public function getId() {
    		return $this->id;
    	}
    
    
    	public function getNom() {
    		return $this->nom;
    	}
    
    
    	public function getCodePostal() {
    		return $this->codePostal;
    	}
    
    
    	public function getEmail() {
    		return $this->email;
    	}
    
    
    	public function getVille() {
    		return $this->ville;
    	}
    
    
    	public function getTelephone() {
    		return $this->telephone;
    	}
    
    
    	public function getPays() {
    		return $this->pays;
    	}
    
    
    	/**
    	 * @return mixed
    	 */
    	public function getNumAssurer() {
    		return $this->numAssurer;
    	}
    
    	/**
    	 * @return mixed
    	 */
    	public function getAdresse1() {
    		return $this->adresse1;
    	}
    
    	/**
    	 * @return mixed
    	 */
    	public function getAdresse2() {
    		return $this->adresse2;
    	}
    
    
    
    
    	public function setId( $id ) {
    		echo '<br>[debug]Dans "'.__FUNCTION__.'" [/debug]';
    		$id = (int) $id;
    		if ($id > 0)
    		{
    			$this->id = $id;
    		}
    	}
    
    
    	public function setNom( $nom ) {
    		if (strlen(trim($nom)) > 0)
    			//strlen = Calcule la taille d'une chaîne
    			// trim = Supprime les espaces (ou d'autres caractères) en début et fin de chaîne
    		{
    			if (strpos($nom,"#") !== false)
    				// strpos = Cherche la position de la première occurrence dans une chaîne
    			{
    				throw new Exception("Le nom ne peut pas avoir de caracteres speciaux");
    			}
    			if (preg_match("/[0-9]/", "$nom"))
    				// preg_match = sert ici pour les cfiffres
    			{
    				throw new Exception("Le nom ne peut pas avoir de chiffre");
    			}
    			else
    			{
    				//echo "la chaîne $nom est correcte";
    				$this->nom = $nom;
    			}
    		}
    
    	}
    
    
    	public function setCodePostal( $codePostal ) {
    		if (preg_match('/[0-9]{5}/',$codePostal))
    		{
    			$this->codePostal = $codePostal;
    		} else {
    			echo "<br/>Aucun r&eacute;sultat n'a &eacute;t&eacute; trouv&eacute;.";
    		}
    	}
    
    
    	public function setEmail( $email ) {
    		//1) si la chaine n'est pas vide
    		if (strlen(trim($email)) == 0) {
    			//erreur
    			throw new LengthException("Le mail est vide",100); //code 100 == mail vide
    		} else {
    			//pas d'erreur on continue
    // 			if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
    // 				//mail validé
    			$this->email = $email;
    // 			} else {
    // 				//erreur à gérer
    // 				throw new Exception("Le mail est invalide",101); //code 101 == mail invalide
    // 			}
    		}
    	}
    
    
    	public function setVille( $ville ) {
    		if (strlen(trim($ville)) > 0)
    		{
    			$this->ville = $ville;
    
    			if (preg_match("/[0-9]/", "$ville"))
    			{
    				throw new Exception("La ville ne peut pas avoir de chiffre");
    			}
    
    		}else{
    			echo "la ville est obligatoire";
    		}
    	}
    
    
    	public function setTelephone( $telephone ) {
    		$this->telephone = $telephone;
    	}
    
    	public function setPays( $pays ) {
    		if (strlen(trim($pays)) > 0)
    		{
    			$this->pays = $pays;
    
    			if (preg_match("/[0-9]/", "$pays"))
    			{
    				throw new Exception("La ville ne peut pas avoir de chiffre");
    			}
    
    		}else{
    			echo "le pays est obligatoire";
    		}
    	}
    
    
    	/**
    	 * @param mixed $numAssurer
    	 */
    	public function setNumAssurer( $numAssurer ) {
    		$this->numAssurer = $numAssurer;
    	}
    
    	/**
    	 * @param mixed $adresse1
    	 */
    	public function setAdresse1( $adresse1 ) {
    		$this->adresse1 = $adresse1;
    	}
    
    	/**
    	 * @param mixed $adresse2
    	 */
    	public function setAdresse2( $adresse2 ) {
    		$this->adresse2 = $adresse2;
    	}
    
    
    
    	protected function hydrate($array){
    		echo '<br>[debug]Dans "'.__FUNCTION__.'" [/debug]';
    		foreach ($array as $key => $value) {
    			$methodName = 'set'.ucfirst($key);
    			if(method_exists($this, $methodName)){
    				$this->$methodName($value);
    			}
    		}
    	}
    
    
    
    
    }
    <?php
    /**
     * Created by PhpStorm.
     * User: Adeline
     * Date: 19/02/2019
     * Time: 19:09
     */
    
    class Assurance_habitation extends Assurance {
    
    	protected $id;
    	protected $assurance;
    
    	public function __construct( array $data =[] )
    	{
    		//appel du constructeur parent puisqu'on est h�rit� de ...
    		parent::__construct($data);
    	}
    
    	/**
    	 * @return mixed
    	 */
    	public function getId() {
    		return $this->id;
    	}
    
    	/**
    	 * @return mixed
    	 */
    	public function getAssurance() {
    		return $this->assurance;
    	}
    
    
    	/**
    	 * @param mixed $id_habitation
    	 */
    	public function setId( $id ) {
    		echo '<br>[debug]Dans "'.__FUNCTION__.'" [/debug]';
    		$id = (int) $id;
    		if ($id > 0)
    		{
    			$this->id_habitation = $id;
    		}
    	}
    
    	/**
    	 * @param mixed $assurance
    	 */
    	public function setAssurance( $assurance ) {
    		$this->assurance = $assurance;
    	}
    
    	protected function hydrate($array){
    		echo '<br>[debug]Dans "'.__FUNCTION__.'" [/debug]';
    		foreach ($array as $key => $value) {
    			$methodName = 'set'.ucfirst($key);
    			if(method_exists($this, $methodName)){
    				$this->$methodName($value);
    			}
    		}
    	}
    
    
    }

    manager :

    <?php
    
    
    class ManagerAssurance extends Manager{
    	public function __construct( $mode = 'prod' ) {
    		debug( '<br>[debug]Dans "' . __CLASS__ . "::" . __FUNCTION__ . '" [/debug]', true );
    		parent::__construct( $mode );
    	}
    
    
    	public function read( $id ) {
    		echo '<br>[debug]Dans "' . __FUNCTION__ . '" [/debug]';
    		$req = $this->db->prepare( 'SELECT * FROM assurance WHERE id =:id' );
    		$req->bindValue( 'id', $id, PDO::PARAM_INT );
    		$req->execute();
    		$array= $req->fetch();
    		$oAssurance = new assurance( $array );
    
    		return $oAssurance;
    	}
    
    	public function add( $data ) {
    		echo '<br>[debug]Dans "' . __FUNCTION__ . '" [/debug]';
    		//bloc try/catch pour g�rer les exceptions
    		//provenant de Employer
    		try {
    			$oAssurance = new assurance( $data );
    		} catch ( LengthException $lengthException ) {
    			//cas longueur == 0
    			throw new Exception( $lengthException->GetMessage(), $lengthException->GetCode() );
    		} catch ( Exception $exception ) {
    			//autre cas (mais pour nous invalide)
    			throw new Exception( $exception->GetMessage(), $exception->GetCode() );
    		}
    		$req = $this->db->prepare( 'INSERT INTO assurance (nom,codePostal,email,ville,telephone,pays,numAssurer,adresse1,adresse2) VALUES(:nom,:codePostal,:email,:ville,:telephone,:pays,:numAssurer,:adresse1,:adresse2)' );
    		$req->bindValue( 'nom', $oAssurance->getNom(), PDO::PARAM_STR );
    		$req->bindValue( 'codePostal', $oAssurance->getCodePostal(), PDO::PARAM_STR );
    		$req->bindValue( 'email', $oAssurance->getEmail(), PDO::PARAM_STR );
    		$req->bindValue( 'ville', $oAssurance->getVille(), PDO::PARAM_STR );
    		$req->bindValue( 'telephone', $oAssurance->getTelephone(), PDO::PARAM_STR );
    		$req->bindValue( 'pays', $oAssurance->getPays(), PDO::PARAM_STR );
    		$req->bindValue( 'numAssurer', $oAssurance->getNumAssurer(), PDO::PARAM_STR );
    		$req->bindValue( 'adresse1', $oAssurance->getAdresse1(), PDO::PARAM_STR );
    		$req->bindValue( 'adresse2', $oAssurance->getAdresse2(), PDO::PARAM_STR );
    		$req->execute();
    		$id = $this->db->lastInsertId();
    		$oAssurance->setId( $id );
    	}
    
    	public function getAllAssurance() {
    		$stm = "SELECT * FROM assurance";
    		//Ceci:
    //         $stmt = $this->connexion->query($req);
    //         return $stmt;
    		//resum� par cela
    		return $this->db->query( $stm );
    	}
    
    	public function getAssurance( $id ) {
    		$stm = "SELECT * FROM assurance WHERE id=:id";
    		//preparation == protection des donn?es ? venir
    		$stmt = $this->db->prepare( $stm );
    		//liaison des marqueur :toto aux donnees
    		$stmt->bindValue( 'id', $id, PDO::PARAM_INT );
    		//execution de la requete sur le serveur SQL
    		$stmt->execute();
    
    		return $stmt;
    	}
    
    	public function update( $data ) {
    		echo '<pre>' . print_r( $data, true ) . '</pre>';
    
    		echo '<br>[debug]SESSION';
    		echo '<pre>' . print_r( $data, true ) . '</pre>';
    
    		$req = $this->db->prepare( 'UPDATE assurance SET nom=:nom,codePostal=:codePostal,email=:email,ville=:ville,telephone=:telephone,pays=:pays,numAssurer=:numAssurer,adresse1=:adresse1,adresse2=:adresse2 WHERE id =:id' );
    		$req->bindValue( 'id', $data->getId(), PDO::PARAM_INT );
    		$req->bindValue( 'nom', $data->getNom(), PDO::PARAM_STR );
    		$req->bindValue( 'codePostal', $data->getCodePostal(), PDO::PARAM_STR );
    		$req->bindValue( 'email', $data->getEmail(), PDO::PARAM_STR );
    		$req->bindValue( 'ville', $data->getVille(), PDO::PARAM_STR );
    		$req->bindValue( 'telephone', $data->getTelephone(), PDO::PARAM_STR );
    		$req->bindValue( 'pays', $data->getPays(), PDO::PARAM_STR );
    		$req->bindValue( 'numAssurer', $data->getNumAssurer(), PDO::PARAM_STR );
    		$req->bindValue( 'adresse1', $data->getAdresse1(), PDO::PARAM_STR );
    		$req->bindValue( 'adresse2', $data->getAdresse2(), PDO::PARAM_STR );
    
    		if ( ! $req->execute() ) {
    			echo "<br>[debug] Erreur";
    		}
    	}
    
    	public function delete( $id ) {
    		// =>voir  getLivre(id) pour modele
    		$req  = "DELETE FROM assurance WHERE id=:id";
    		$stmt = $this->db->prepare( $req );
    		$stmt->execute();
    		if ( $stmt->rowCount() == 1 ) {
    			echo '[debug]OK 1 ligne inseree';
    		} else {
    			echo 'Erreur insertion donnees';
    		}
    	}
    }
    <?php
    /**
     * Created by PhpStorm.
     * User: Adeline
     * Date: 21/02/2019
     * Time: 14:29
     */
    
    class ManagerAssurance_habitation extends ManagerAssurance {
    
    	public function __construct( $mode = 'prod' ) {
    		debug('<br>[debug]Dans "'.__CLASS__."::".__FUNCTION__.'" [/debug]',true);
    		parent::__construct( $mode );
    	}
    
    
    
    
    	public function read($id){
    		echo '<br>[debug]Dans "'.__FUNCTION__.'" [/debug]';
    		$req = $this->db->prepare('SELECT * FROM Assurance_habitation WHERE id =:id');
    		$req->bindValue('id', $id, PDO::PARAM_INT);
    		$req->execute();
    		$array = $req->fetch();
    		$oAssurance_habitation = new assurance_habitation($array);
    
    		return $oAssurance_habitation;
    	}
    
    	public function add( $data ) {
    		echo '<br>[debug]Dans "' . __FUNCTION__ . '" [/debug]';
    		//bloc try/catch pour g�rer les exceptions
    		//provenant de Employer
    		try {
    			$oAssurance_habitation = new assurance_habitation( $data );
    		} catch ( LengthException $lengthException ) {
    			//cas longueur == 0
    			throw new Exception( $lengthException->GetMessage(), $lengthException->GetCode() );
    		} catch ( Exception $exception ) {
    			//autre cas (mais pour nous invalide)
    			throw new Exception( $exception->GetMessage(), $exception->GetCode() );
    		}
    		$req = $this->db->prepare( 'INSERT INTO Assurance_habitation (assurance) VALUES(:assurance)' );
    		$req->bindValue('numAssurer', $oAssurance_habitation->getAssurance(), PDO::PARAM_INT );
    		$req->execute();
    		$id = $this->db->lastInsertId();
    		$oAssurance_habitation->setId( $id );
    	}
    
    	public function getAllHabitation() {
    		$stm = "SELECT * FROM assurance_habitation";
    		//Ceci:
    //         $stmt = $this->connexion->query($req);
    //         return $stmt;
    		//resum� par cela
    		return $this->db->query($stm);
    	}
    
    	public function getHabitation($id) {
    		$stm = "SELECT * FROM assurance_habitation WHERE id=:id";
    		//preparation == protection des donn?es ? venir
    		$stmt = $this->db->prepare($stm);
    		//liaison des marqueur :toto aux donnees
    		$stmt->bindValue('id',$id,PDO::PARAM_INT);
    		//execution de la requete sur le serveur SQL
    		$stmt->execute();
    		return $stmt;
    	}
    
    	public function update($data){
    		echo '<pre>'.print_r($data,true).'</pre>';
    
    		echo '<br>[debug]SESSION';
    		echo '<pre>'.print_r($data,true).'</pre>';
    
    		$req = $this->db->prepare('UPDATE assurance_habitation SET assurance=:assurance WHERE id=:id');
    		$req->bindValue('id', $data->getId(), PDO::PARAM_INT);
    		$req->bindValue('assurance', $data->getAssurance(), PDO::PARAM_INT );
    		if (! $req->execute()) {
    			echo "<br>[debug] Erreur";
    		}
    	}
    
    	public function delete($id) {
    		// =>voir  getLivre(id) pour modele
    		$req = "DELETE FROM assurance_habitation WHERE id=:id";
    		$stmt = $this->db->prepare($req);
    		$stmt->execute();
    		if ($stmt->rowCount() == 1) {
    			echo '[debug]OK 1 ligne inseree';
    		} else {
    			echo 'Erreur insertion donnees';
    		}
    
    	}
    
    }

    lorsque je remplie mon formulaire et le valide, cela dit qu'il manque une ou plusieurs données






    • Partager sur Facebook
    • Partager sur Twitter

    Merci à tous. Vous pouvez me retrouver ici :

    🌐 Visitez mon profil sur Comeup

    🚀 Découvrez BeFreelancr

    📱 Retrouvez-moi sur LinkedIn

      19 mai 2019 à 21:48:34

      A moins d'avoir mal cherché, il n'y a aucun champ avec name="assurance" ...

      Le truc qui saute aux yeux en faisant un simple var_dump($_POST); en principe.

      -
      Edité par julp 19 mai 2019 à 21:49:29

      • Partager sur Facebook
      • Partager sur Twitter
        19 mai 2019 à 21:52:01

        bonjour,

        je l'ai mis dans la base de donné mais j'ignorer si dans le post c'était utile ou non ...

        j'ai essayer de le retirer mais cela donne une erreur que je n'ai jamais vue :

        Array
        (
            [nom] => reeer
            [codePostal] => 65230
            [email] => toto@gmail.com
            [ville] => qfs
            [telephone] => 0321548765
            [pays] => rfdsd
            [numAssurer] => 455221
            [adresse1] => hhfd
            [adresse2] => sdq
            [inscription] => enregistrer
        )
        
        Array
        (
            [nom] => reeer
            [codePostal] => 65230
            [email] => toto@gmail.com
            [ville] => qfs
            [telephone] => 0321548765
            [pays] => rfdsd
            [numAssurer] => 455221
            [adresse1] => hhfd
            [adresse2] => sdq
            [inscription] => enregistrer
        )
        



        [debug]Dans "ManagerAssurance_habitation::__construct" [/debug] 

        [debug]Dans "ManagerAssurance::__construct" [/debug] 
        [debug]Dans "add" [/debug]
        [debug]Dans "hydrate" [/debug]SQLSTATE[HY093]: Invalid parameter number: parameter was not defined


        ( ! )Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\uniscite\code\templates\profil_AssuranceHabitationInscription.php:6) in C:\wamp\www\uniscite\code\templates\profil_AssuranceHabitationInscription.php on line39
        Call Stack
        #TimeMemoryFunctionLocation
        1 0.0014 392680 {main}( ) ...\index.php:0
        2 0.0157 414592 include_once('C:\wamp\www\uniscite\code\templates\profil_AssuranceHabitationInscription.php') ...\index.php:101
        3 0.0255 427120 header( ) ...\profil_AssuranceHabitationInscription.php:39

        -
        Edité par AdServ 19 mai 2019 à 21:56:06

        • Partager sur Facebook
        • Partager sur Twitter

        Merci à tous. Vous pouvez me retrouver ici :

        🌐 Visitez mon profil sur Comeup

        🚀 Découvrez BeFreelancr

        📱 Retrouvez-moi sur LinkedIn

          19 mai 2019 à 21:54:14

          Je ne parle pas de ta bdd mais de $_POST['assurance'] qui, si tu n'as aucun input/select/textarea dans ton formulaire ayant pour name="assurance" ne peut que valoir NULL/ne pas exister d'où l'isset qui renvoie faux derrière ...

          -
          Edité par julp 19 mai 2019 à 21:54:37

          • Partager sur Facebook
          • Partager sur Twitter
            19 mai 2019 à 21:59:30

            je ne suis pas sur de tout comprendre...

            voici le add de mon manager :

            public function add( $data ) {
            		echo '<br>[debug]Dans "' . __FUNCTION__ . '" [/debug]';
            		//bloc try/catch pour g�rer les exceptions
            		//provenant de Employer
            		try {
            			$oAssurance_habitation = new assurance_habitation( $data );
            		} catch ( LengthException $lengthException ) {
            			//cas longueur == 0
            			throw new Exception( $lengthException->GetMessage(), $lengthException->GetCode() );
            		} catch ( Exception $exception ) {
            			//autre cas (mais pour nous invalide)
            			throw new Exception( $exception->GetMessage(), $exception->GetCode() );
            		}
            		$req = $this->db->prepare( 'INSERT INTO Assurance_habitation (assurance) VALUES(:assurance)' );
            		$req->bindValue('assurance', $oAssurance_habitation->getAssurance(), PDO::PARAM_INT );
            		$req->execute();
            		$id = $this->db->lastInsertId();
            		$oAssurance_habitation->setId( $id );
            	}



            • Partager sur Facebook
            • Partager sur Twitter

            Merci à tous. Vous pouvez me retrouver ici :

            🌐 Visitez mon profil sur Comeup

            🚀 Découvrez BeFreelancr

            📱 Retrouvez-moi sur LinkedIn

              19 mai 2019 à 22:04:51

              Ouais mais si tu parles de plusieurs problèmes à la fois et saute du coq à l'âne sans le préciser, on va droit dans le mur.

              Le post initial, ton problème était :

              > je remplis mon formulaire et le valide, cela dit qu'il manque une ou plusieurs données

              Ce qui correspond à ce code :

              > echo "il manque une ou plusieurs donnees";

              D'où ma réponse qu'il manque un champ dans ton formulaire avec le name assurance

              On est bon ?


              Pour ton :

              > Invalid parameter number: parameter was not defined

              Je voudrais bien le message d'erreur complet (avec nom du fichier et ligne !). Tu as un DELETE qui contient un marqueur :id que tu ne bindes jamais et un INSERT où le marqueur est :assurance mais où tu cherches à en binder un qui s'appelle ... numAssurer.

              -
              Edité par julp 19 mai 2019 à 22:09:15

              • Partager sur Facebook
              • Partager sur Twitter
                19 mai 2019 à 22:08:05

                Bonsoir.

                je ne suis pas sur de tout comprendre...

                À la ligne 19 de ton premier code, tu mets $_POST['assurance'], sauf que tu n'as aucun élément dans le formulaire correspondant, donc tu tombes forcément sur l'erreur de ta condition.

                • Partager sur Facebook
                • Partager sur Twitter

                Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.

                  19 mai 2019 à 22:09:07

                  oui et non =) 

                  oui en théorie car c'est logique

                  mais en pratique, le champs n'est justement pas a remplir.

                  si je le supprime de la bdd est ce que cela sera mieux ?

                  -
                  Edité par AdServ 19 mai 2019 à 22:09:53

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Merci à tous. Vous pouvez me retrouver ici :

                  🌐 Visitez mon profil sur Comeup

                  🚀 Découvrez BeFreelancr

                  📱 Retrouvez-moi sur LinkedIn

                    19 mai 2019 à 22:11:14

                    Mais c'est quoi le rapport avec ta bdd ? On te parle de ton formulaire (le code HTML de celui-ci et le code PHP pour le traiter) !

                    En clair : soit tu ajoutes un champ nommé assurance à ton formulaire soit tu le vires de ton test avec isset. Ce n'est pas compliqué quand même ?

                    -
                    Edité par julp 19 mai 2019 à 22:13:16

                    • Partager sur Facebook
                    • Partager sur Twitter
                      19 mai 2019 à 22:23:34

                      mais il ne doit pas y avoir de champs assurance dans le formulaire ....

                      l'utilisateur ne remplie pas ce champs, il est déja en train de remplir l'assurance habitation (exemple)

                      • Partager sur Facebook
                      • Partager sur Twitter

                      Merci à tous. Vous pouvez me retrouver ici :

                      🌐 Visitez mon profil sur Comeup

                      🚀 Découvrez BeFreelancr

                      📱 Retrouvez-moi sur LinkedIn

                        19 mai 2019 à 22:24:27

                        Grande question : pourquoi tester qu'il en existe un ? C'est ton code, hein ...

                        Bon, tu l'as viré de ton test isset alors ?

                        -
                        Edité par julp 19 mai 2019 à 22:25:01

                        • Partager sur Facebook
                        • Partager sur Twitter
                          19 mai 2019 à 22:26:45

                          oui je l'ai retiré, il n'est plus dans le post

                          mais j'ai une autre erreur

                          Array
                          (
                              [nom] => erfez
                              [codePostal] => 64521
                              [email] => d@g.com
                              [ville] => sdq
                              [telephone] => 0221456995
                              [pays] => dfq
                              [numAssurer] => 325895223
                              [adresse1] => qdsq
                              [adresse2] => sdsq
                              [inscription] => enregistrer
                          )
                          
                          Array
                          (
                              [nom] => erfez
                              [codePostal] => 64521
                              [email] => d@g.com
                              [ville] => sdq
                              [telephone] => 0221456995
                              [pays] => dfq
                              [numAssurer] => 325895223
                              [adresse1] => qdsq
                              [adresse2] => sdsq
                              [inscription] => enregistrer
                          )
                          



                          [debug]Dans "ManagerAssurance_habitation::__construct" [/debug] 

                          [debug]Dans "ManagerAssurance::__construct" [/debug] 
                          [debug]Dans "add" [/debug]
                          [debug]Dans "hydrate" [/debug]
                          [debug]Dans "setId" [/debug]


                          ( ! )Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\uniscite\code\templates\profil_AssuranceHabitationInscription.php:6) in C:\wamp\www\uniscite\code\templates\profil_AssuranceHabitationInscription.php on line39
                          Call Stack
                          #TimeMemoryFunctionLocation
                          1 0.0003 392376 {main}( ) ...\index.php:0
                          2 0.0059 414288 include_once('C:\wamp\www\uniscite\code\templates\profil_AssuranceHabitationInscription.php') ...\index.php:101
                          3 0.0185 439992 header( ) ...\profil_AssuranceHabitationInscription.php:39

                          -
                          Edité par AdServ 19 mai 2019 à 22:33:29

                          • Partager sur Facebook
                          • Partager sur Twitter

                          Merci à tous. Vous pouvez me retrouver ici :

                          🌐 Visitez mon profil sur Comeup

                          🚀 Découvrez BeFreelancr

                          📱 Retrouvez-moi sur LinkedIn

                            19 mai 2019 à 22:36:45

                            Quelle erreur ? Ca :

                            > Warning: Cannot modify header information - headers already sent by ...

                            ? Si oui, c'est normal, tu dumpes $_POST avant quand on n'est pas censé "afficher" quoi que ce soit avant une fonction dite d'entête dont fait partie header.

                            C'est bien beau de mettre du debug partout, mais en production, ça n'aura plus sa place.

                            -
                            Edité par julp 19 mai 2019 à 22:38:28

                            • Partager sur Facebook
                            • Partager sur Twitter
                              19 mai 2019 à 22:47:40

                              oki 

                              merci

                              deux questions : 

                              1) dans base de donnée, dans assurance_habitation, j'ai : 

                              - id (normal) et assurance : null ... c'est bisare, je n'ai rien d'autre.

                              dans la table assurance je n'ai rien non plus (nom, adresse ...)

                              et le sql de la bdd est :

                              -- Structure de la table `assurance`
                              --
                              
                              DROP TABLE IF EXISTS `assurance`;
                              CREATE TABLE IF NOT EXISTS `assurance` (
                                `id` int(11) NOT NULL AUTO_INCREMENT,
                                `nom` varchar(50) NOT NULL,
                                `codePostal` varchar(5) NOT NULL,
                                `email` varchar(500) NOT NULL,
                                `ville` varchar(500) NOT NULL,
                                `telephone` varchar(500) NOT NULL,
                                `pays` varchar(500) NOT NULL,
                                `numAssurer` varchar(50) NOT NULL,
                                `adresse1` varchar(500) NOT NULL,
                                `adresse2` varchar(500) NOT NULL,
                                PRIMARY KEY (`id`)
                              ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
                              
                              -- --------------------------------------------------------
                              
                              --
                              -- Structure de la table `assurance_habitation`
                              --
                              
                              DROP TABLE IF EXISTS `assurance_habitation`;
                              CREATE TABLE IF NOT EXISTS `assurance_habitation` (
                                `id` int(11) NOT NULL AUTO_INCREMENT,
                                `assurance` int(11) DEFAULT '3',
                                PRIMARY KEY (`id`)
                              ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
                              

                              2) comment faire pour qu'une fois le formulaire compléter, cela redirige automatiquement vers la page souhaité ?

                              • Partager sur Facebook
                              • Partager sur Twitter

                              Merci à tous. Vous pouvez me retrouver ici :

                              🌐 Visitez mon profil sur Comeup

                              🚀 Découvrez BeFreelancr

                              📱 Retrouvez-moi sur LinkedIn

                                19 mai 2019 à 22:53:22

                                1) On la trouve où la valeur pour assurance_habitation.assurance si elle ne fait pas partie des champs du formulaire ? Parce que dans le code de départ c'était : $oManagerAssurance_habitation->add( $_POST );

                                2) je ne vois pas le problème, c'est toujours header('Location: ...') comme tu l'as déjà fait

                                -
                                Edité par julp 19 mai 2019 à 22:55:00

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  19 mai 2019 à 22:55:40

                                  1) cela ne peut pas etre automatique ?
                                  • Partager sur Facebook
                                  • Partager sur Twitter

                                  Merci à tous. Vous pouvez me retrouver ici :

                                  🌐 Visitez mon profil sur Comeup

                                  🚀 Découvrez BeFreelancr

                                  📱 Retrouvez-moi sur LinkedIn

                                    19 mai 2019 à 22:58:51

                                    C'est-à-dire ? Tu as déjà un auto-incrément dans ta table si tu veux de l'automatique.

                                    Quels sont les lien et différence entre assurance et assurance_habitation ?

                                    -
                                    Edité par julp 19 mai 2019 à 23:01:03

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      19 mai 2019 à 23:05:09

                                      assurance a toutes les infos de base (nom, adresse) ...

                                      assurance_habitation (tout comme assurance_vie, assurance_voiture) est une "caractéristique" (si on peut dire cela ainsi). elle reprends les champs d'assurance et permet de savoir qu'il sagit de l'habitation. 

                                      je ne sais pas si je suis tres clair.

                                      • Partager sur Facebook
                                      • Partager sur Twitter

                                      Merci à tous. Vous pouvez me retrouver ici :

                                      🌐 Visitez mon profil sur Comeup

                                      🚀 Découvrez BeFreelancr

                                      📱 Retrouvez-moi sur LinkedIn

                                        19 mai 2019 à 23:10:38

                                        C'est plus des clients quoi ? Pourquoi une table différente par type d'assurance au lieu d'une pour les décrire et une (contrats) pour faire le lien entre les deux ?

                                        Il n'y a même pas de clé étrangère pour faire un quelconque lien. Un tour préalable par la case MCD ?

                                        Je ne sais pas si c'est une bonne idée cette POO, quand il va falloir lier des tables, ça va vite montrer ses limites.

                                        -
                                        Edité par julp 19 mai 2019 à 23:13:06

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          19 mai 2019 à 23:16:04

                                          j'avais essayer une autre méthode ... 

                                          avant mais cela a rapidement était le basard....

                                          j'avais fais un mcd

                                          donc j'ai préféré simplifier (pour moi)

                                          j'ai oublier la clé étrangère ?

                                          -
                                          Edité par AdServ 19 mai 2019 à 23:17:51

                                          • Partager sur Facebook
                                          • Partager sur Twitter

                                          Merci à tous. Vous pouvez me retrouver ici :

                                          🌐 Visitez mon profil sur Comeup

                                          🚀 Découvrez BeFreelancr

                                          📱 Retrouvez-moi sur LinkedIn

                                          il manque une ou plusieurs données

                                          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                          • Editeur
                                          • Markdown