IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Problème de liens entre les pages [MySQL]


Sujet :

PHP & Base de données

  1. #21
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Janvier 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2008
    Messages : 227
    Points : 273
    Points
    273
    Par défaut
    Citation Envoyé par Madfrix Voir le message
    Cependant, dis toi bien que l'utilisateur peut desactiver js et tes formulaires ne seront plus validables car leur validation s'effectue chez toi par une fonction js et non par un attribut de type submit.

    De plus, ne jamais valider un formulaire uniquement par js, toujours le faire par php. Tout ca pour dire que peut etre tu bosses pour rien là
    Même si ce que tu dis est vrai, tu es un peu dur quand même.

    Pour ne pas valider le formulaire en cas d'échec, tu peux utiliser un preventDefault sur ton event ou alors tu retournes false au choix.

    Cordialement,
    Patouche

  2. #22
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2010
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2010
    Messages : 347
    Points : 121
    Points
    121
    Par défaut
    Je viens de faire un test. Y a pas d'erreurs !!
    Mais il ne se passe rien...

  3. #23
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    montre nous ta nouvelle fonction et les appels de tes formulaires stp

  4. #24
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Janvier 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2008
    Messages : 227
    Points : 273
    Points
    273
    Par défaut
    Il te faut un bouton avec un attribut type ayant la valeur submit.

    Grâce à ça, tu pourras valider ton formulaire.


    Cordialement,
    Patouche

  5. #25
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2010
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2010
    Messages : 347
    Points : 121
    Points
    121
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="button" name="valider" value="OK" onClick="controle()"/>

    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <SCRIPT LANGUAGE="JavaScript">
    		function controle(form)
    		{
    			if (form == 'client'){
    				var cp = document.client.codePostalClient.value;
    				var telF = document.client.numTelFixe.value;
    				var telP = document.client.numTelPort.value;
    				if ((cp < 1000) || (cp >= 100000)) 
    				{
    					alert("code postal erroné");
    				}
    ...




    Citation Envoyé par patouche Voir le message
    Il te faut un bouton avec un attribut type ayant la valeur submit.

    Grâce à ça, tu pourras valider ton formulaire.


    Cordialement,
    Patouche
    Qu'est ce que c'est?

  6. #26
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Citation Envoyé par feldi Voir le message
    Qu'est ce que c'est?
    C'est un input permettant de valider ton formulaire sans passer par js :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="submit" value="valider le formulaire" />

    Sinon pour ton problème, il ne se passe rien car tu utilises onClick="controle()" alors que ta fonction attend un paramètre qui est le nom de ton formulaire. Ainsi pour le formulaire client, tu devras ecrire onClick="controle('client')" ce qui lancera la validation de ton formulaire client contenu dans ton bloc correspondant dans ta fonction js

  7. #27
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2010
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2010
    Messages : 347
    Points : 121
    Points
    121
    Par défaut
    Merci bien.
    Désolé de t'embêter, mais j'ai encore une question ^^
    Quand je valide les informations, y'a un gros temps d'attente puis message d'erreur, Appache http serveur doit fermer.

    Je te mets le code de la page appelante et celle appelée :
    page collecte qui appelle :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    <?php
    include "haut.php";
    include "fonction.php";
    ?>
    	<form name="client" method="post" action="proprietaire.php">
    		<input type="radio" name="puissance[]" value="Inf"/>Puissance Inférieure à 36 kVA<input type="radio" name="puissance[]" value="Sup"/>Puissance comprise entre 36 et 250 kVA<br/>
            Entrez votre nom : <input type="text" name="nom"/> <br/>
            Entrez votre prenom : <input type="text" name="prenom"/><br/>
    		ou la raison sociale de votre entreprise (si vous êtes une entreprise) : <input type="text" name="repEntreprise"/><br/>
    		Entrez votre adresse : <input type="text" name="adresseClient"/><br/>
    		Entrez le nom de votre commune : <input type="text" name="communeClient"/><br/>
    		Entrez votre code postal : <input type="text" name="codePostalClient"/><br/>
    		Entrez votre numéro de téléphone fixe : <input type="text" name="numTelFixe"/><br/>
    		Entrez votre numéro de téléphone portable : <input type="text" name="numTelPort"/><br/>
    		Entrez votre adresse e-mail : <input type="text" name="mailClient"/><br/>
    		Entrez le nom de votre interlocuteur : <input type="text" name="nomInterlocuteur"/><br/>
    		<input type="radio" name="exploitation[]" value="solo"/>Demande à son propre compte<input type="radio" name="exploitation[]" value="mandataire"/>Demande en tant que mandataire<br/>
    		<input type="button" name="valider" value="OK" onClick="controle('client')"/><input type="reset" value="Annuler"/></br>
    	</form>
    <?php
    include "bas.php";
    ?>

    page propriétaire qui est appellée :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    <?php
    include "haut.php";
    include "fonction.php";
    ?>
    <form name="proprietaire" method="post" action="situationGeographique.php">
    		Entrez votre nom : <input type="text" name="nom"/> <br/>
            Entrez votre prenom : <input type="text" name="prenom"/><br/>
    		ou la raison sociale de votre entreprise (si vous êtes une entreprise) : <input type="text" name="repEntreprise"/><br/>
    		Entrez votre adresse : <input type="text" name="adressePropriétaire"/><br/>
    		Entrez le nom de votre commune : <input type="text" name="communePropriétaire"/><br/>
    		Entrez votre code postal : <input type="text" name="codePostalPropriétaire"/><br/>
    		Entrez votre numéro de téléphone fixe : <input type="text" name="numTelFixe"/><br/>
    		Entrez le nom du mandataire : <input type="text" name="nomMandataire"/></br>
    		<input type="button" name="valider" value="OK" onClick="controle('proprietaire')"/><input type="reset" value = "Annuler"/></br>
    </form>
    <?php
    		$nom = $_POST['nom'];
            $prenom = $_POST['prenom'];
            $entreprise = $_POST['repEntreprise'];
            $adresse = $_POST['adresseClient'];
            $commune = $_POST['communeClient'];
            $code_postal = $_POST['codePostalClient'];
            $telephone = $_POST['numTelFixe'];
            $portable = $_POST['numTelPort'];
            $mail = $_POST['mailClient'];
            $interlocuteur = $_POST['nomInterlocuteur'];
            $puissance = $_POST['puissance[]'];
            $exploitation = $_POST['exploitation[]'];
            //On se connecte
            connectContratGlobal(); 
            //On prépare la commande sql d'insertion
            $sql = "INSERT INTO Client VALUES('','".$puissance."','".$nom."','".$prenom."','".$entreprise."','".$adresse."','".$commune."','".$code_postal."','".$telephone."','".$portable."','".$mail."','".$interlocuteur."','".$exploitation."')";
            /*on lance la commande (mysql_query) et au cas où,
            on rédige un petit message d'erreur si la requète ne passe pas (or die) 
            (Message qui intègrera les causes d'erreur sql)*/
            mysql_query ($sql) or die ('Erreur SQL : '.$sql.'<br />'.mysql_error()); 
            // on ferme la connexion
            mysql_close();
    include"bas.php";
    ?>

    Désolé de t'embêter mais j'y connais pas grand chose.

    Merci encore

  8. #28
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $puissance = $_POST['puissance[]'];
    $exploitation = $_POST['exploitation[]'];

    Ces lignes me semblent suspectes. Normalement on fait plutot :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $puissance = $_POST['puissance'];
    $exploitation = $_POST['exploitation'];

    et ensuite $puissance et $exploitation sont des array() contenant tes valeurs. Tu peux faire un var_dump() sur tes variables voir ce qu'elles contiennet vraiment. D'autre part, comment est définie ta fonction connectContratGlobal() ?

  9. #29
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2010
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2010
    Messages : 347
    Points : 121
    Points
    121
    Par défaut
    contratGlobal est ma BDD MySql, je te mets le code de fonction.php :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <?php
    function connectContratGlobal(){
        $base = mysql_connect ('localhost', 'root', '');  
        mysql_select_db ('ContratGlobal', $base) ;
    }
    # Cette fonction teste la présence de caractères spéciaux
    # Renvoie 1 si des caractères spéciaux sont trouvés, ou 0 si la chaine est validée
    # Cela évitera des injections SQL par exemple, ou inclusion XSS (je te laisse te documenter sur les deux)
     
    function caractSpeciaux ($string) {
    	$erreur = 1;
    	if (preg_match("#^[a-zA-Z0-9@_\.-]{3,20}$#", $string)) $erreur = 0;
    	return $erreur;
    }
    ?>

    Voila

  10. #30
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Mets en commentaires ces lignes :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    //mysql_query ($sql) or die ('Erreur SQL : '.$sql.'<br />'.mysql_error()); 
    //mysql_close();

    et rajoute un


    voir si ta requete est correctement formatée

  11. #31
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2010
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2010
    Messages : 347
    Points : 121
    Points
    121
    Par défaut
    oh ! ma page est passée à propriétaire. Et ça m'affiche correctement mes infos entrées sauf les boutons radio où ça m'indique Array.
    Le problème vient de la alors non?

  12. #32
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Tu n'as pas besoin de tableau pour les radios, seulement pour les checkbox donc remplace par :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="radio" name="exploitation" value="solo"/>Demande à son propre compte<input type="radio" name="exploitation" value="mandataire"/>Demande en tant que mandataire<br/>

  13. #33
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2010
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2010
    Messages : 347
    Points : 121
    Points
    121
    Par défaut
    Merci beaucoup !!

    si j'ai encore besoin d'aide, je sais vers qui me tourner désormais ^^

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 5
    Dernier message: 06/10/2011, 14h43
  2. Réponses: 10
    Dernier message: 11/10/2010, 08h03
  3. CMake projet C/C++, problème de liens entre les fichiers
    Par LaMainSurLeKatana dans le forum C++
    Réponses: 1
    Dernier message: 16/08/2010, 15h53
  4. Liens entre les pages
    Par amtdev dans le forum Langage
    Réponses: 3
    Dernier message: 13/06/2007, 12h06
  5. Labyrinthe : problème de lien entres les cases
    Par spax dans le forum Prolog
    Réponses: 3
    Dernier message: 20/12/2006, 16h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo