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 :

Erreur : ce n'est pas un nombre


Sujet :

PHP & Base de données

  1. #21
    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
    Donc :

    _ la variable intval teste si ce qui est entré est bien en numérique, le cas échéant le convertit en numérique.
    Enfin, convertir càd? si il met du texte, la sauvegarde va planter alors? parce que c'est chaud de traduire du texte en numérique.

    _ la variable addslashes permet d'insérer des mots avec des " ' ".

    Et quand tu parles de tester les valeurs, tu sous-entends quoi? Concrètement je veux dire?

  2. #22
    Membre régulier Avatar de windmastr26
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2009
    Messages : 234
    Points : 108
    Points
    108
    Par défaut
    Si tu as bien lu les liens que je t'ai passé, alors tu as du voir que intval retourne "Une valeur de type entier de var [ta valeur] en cas de succès ou 0 en cas d'échec.".

    Il n'y aura donc pas d'erreur d'exécution de ton script.

    Pour addSlashes : http://fr2.php.net/addslashes. Tout y est expliqué.

    Pour les autres questions je parle de tests "if... else..." : tu connais ? Si non alors tu as beaucoup de choses à apprendre avant même de continuer ce que tu fais : http://php.developpez.com/cours/

  3. #23
    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
    Alors, je me suis documenté, j'ai feuilleté (en quelques sortes) le cours PhP et j'en arrive la :
    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
     
    <?php
    include ("fonction.php");
    ?>
    <html>
    <head>
    <title> Fiche de collecte </title>
    </head>
    <body bgcolor = "silver">
    <form name="client" method="post" action="saisieClient.php">
    		<input type="radio" name="puissanceInf" value="I"/>Puissance Inférieure à 36 kVA<input type="radio" name="puissanceSup" value="S"/>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="exploitationSolo" value="ES"/>Demande à son propre compte<input type="radio" name="exploitationPropriétaire" value="EP"/>Demande en tant que mandataire<br/>
    		<input type="submit" name="valider" value="OK" <a href='propriétaire.php'>/><input type="reset" value = "Annuler"/></br>
     
    </form>
    <?php
    if (isset ($_post['nom'])) {
    	(str)$_post['nom'];
    	}
    if (isset ($_post['prenom'])) {
    	(str)$_post['prenom'];
    	}
    if (isset ($_post['repEntreprise'])) {
    	(str)$_post['repEntreprise'];
    	}
    if (isset ($_post['communeClient'])) {
    	(str)$_post['communeClient'];
    	}
    if (isset ($_post['nomInterlocuteur'])) {
    	(str)$_post['nomInterlocuteur'];
    	}
    if (isset ($_post['codePostalClient'])){
    	$_post['codePostalClient'] = (int)$_post['codePostalClient'];
    	$_post['codePostalClient'] >=1000 and $_post['codePostalClient'] < 100000;
    	}
    if (isset ($_post['numTelFixe'])){
    	$_post['numTelFixe'] = (int)$_post['numTelFixe'];
    	$_post['numTelFixe'] >=0100000000 and $_post['numTelFixe'] < 0999999999;
    	}
    if (isset ($_post['numTelPort'])){
    	$_post['numTelPort'] = (int)$_post['numTelPort'];
    	$_post['numTelPort'] >=0100000000 and $_post['numTelPort'] < 0999999999;
    	}
    if (isset ($_POST['valider'])){
    	$productionInf = $_post['puissanceInf'];
    	$productionSup = $_post['puissanceSup'];
    	$nom = $_Post['nom'];
    	$prenom = $_Post['prenom'];
    	$raisonSociale = $_post['repEntreprise'];
    	$adresse = $_Post['adresseClient'];
    	$commune = $_Post['communeClient'];
    	$codePostal = $_post['codePostalClient'];
    	$numTelFixe = $_post['numTelFixe'];
    	$numTelPort = $_post['numTelPort'];
    	$adresseMail = $_post['mailClient'];
    	$nomInterlocuteur = $_post['nomInterlocuteur'];
    	$solo = $_post['exploitationSolo'];
    	$mandataire = $_post['exploitationPropriétaire'];
    	//On se connecte
    	connectMaBase();
     
    	//On prépare la commande sql d'insertion
    	$sql = 'INSERT INTO Client VALUES("","'.$productionInf.'","'.$productionSup.'","'.$nom.'","'.$prenom.'","'.$raisonSociale.'","'.$adresse.'","'.$commune.'","'.$codePostal.'","'.$numTelFixe.'","'.$numTelPort.'","'.$mailClient.'","'.$nomInterlocuteur.'","'.$solo.'","'.$mandataire.'")';
     
    	/*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();
    	echo 'Elements enregistrés avec succès';
    }
    ?>
     
    </body>
    </html>

    J'ai l'impression que c'est mieux non?
    Pour ce qui est de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="submit" name="valider" value="OK" <a href='propriétaire.php'>/><
    propriétaire.php est la suite de mon programme. Je cherche donc un moyen de lancer cette page via le clic sur le bouton OK.

    Merci à ceux qui me donneront encore des conseils pour progresser.

  4. #24
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Bonjour,

    Ton code n'a pas de sens. Fais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="submit" name="valider" value="OK" /><
    et fait une redirection vers proprietaire.php dans saisieClient.php lorsque tu as traité les données saisies :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    header('location: proprietaire.php');

  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
    header c'est ou ça? tu peux détailler un peu plus s'il te plaît?
    Sinon, au niveau des contrôles, ils sont justes (grammaticalement et orthographiquement) ?

    Merci

  6. #26
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Citation Envoyé par feldi Voir le message
    header c'est ou ça? tu peux détailler un peu plus s'il te plaît?
    Peux-tu lire mon message en entier s'il te plait ?
    et fait une redirection vers proprietaire.php dans saisieClient.php lorsque tu as traité les données saisies

  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
    J'ai rajouté le header (pas trop sur de l'endroit mais bon).
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    	// on ferme la connexion
    	mysql_close();
    	echo 'Elements enregistrés avec succès';
    }
    header('Location : propriétaire.php');
     
    ?>
     
    </body>
    </html>

    Par contre j'ai toujours une erreur 404.
    ça peut venir de quoi? je suis ouvert à toutes idées

  8. #28
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    L'appel de header doit se faire avant tout envoi de contenu autre que des entêtes au navigateur :
    http://php.developpez.com/faq/index....s_already_sent

    Concernant ta 404, j'imagines que saisieClient.php ou propriétaire.php n'existent pas à côté du fichier qui contient le formulaire.

  9. #29
    Membre régulier Avatar de windmastr26
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2009
    Messages : 234
    Points : 108
    Points
    108
    Par défaut
    Je me permets de rajouter qu'il faut éviter les accents dans les noms de fichiers. Tous les serveurs n'aiment pas ça et ça peut engendrer des erreurs de ce type...

  10. #30
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 26
    Points : 21
    Points
    21
    Par défaut
    Sinon moi j'utilise sa ! En plus tu peut régler le temps avant la redirection :
    <meta http-equiv='refresh' content='3; URL=http://localhost/AjoutAff.php'>

  11. #31
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Citation Envoyé par whowho50 Voir le message
    Sinon moi j'utilise sa ! En plus tu peut régler le temps avant la redirection :
    <meta http-equiv='refresh' content='3; URL=http://localhost/AjoutAff.php'>
    Oui, mais ca c'est pas terrible (bien que pratique parfois lorsqu'on a la flegme), ca sert a rien d'envoyer du contenu si tu peux spécifier une redirection directement dans les entêtes

  12. #32
    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
    De nouveau moi,

    ma page marche quasiment, quasiment toutes les informations se sauvegardent dans la BDD (il manque juste les boutons radio).

    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
     
    <?php
    include "haut.php";
    include "fonction.php";
    ?>
     
     
    <form name="client" method="post" action="collecte.php">
    		<input type="radio" name="puissanceInf[]" value="I"/>Puissance Inférieure à 36 kVA<input type="radio" name="puissanceSup[]" value="S"/>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="exploitationSolo[]" value="ES"/>Demande à son propre compte<input type="radio" name="exploitationPropriétaire[]" value="EP"/>Demande en tant que mandataire<br/>
    		<input type="submit" name="valider" value="OK"/><input type="reset" value = "Annuler"/></br>
    </form>
    <?php
    	if (isset ($_POST['codePostalClient'])){
    		$_POST['codePostalClient'] = (int)$_POST['codePostalClient'];
    		$_POST['codePostalClient'] >=1000 and $_POST['codePostalClient'] < 100000;
    	}
    	if (isset ($_POST['numTelFixe'])){
    		$_POST['numTelFixe'] = (int)$_POST['numTelFixe'];
    		$_POST['numTelFixe'] >=0100000000 and $_POST['numTelFixe'] < 0999999999;
    	}
    	if (isset ($_POST['numTelPort'])){
    		$_POST['numTelPort'] = (int)$_POST['numTelPort'];
    		$_POST['numTelPort'] >=0100000000 and $_POST['numTelPort'] < 0999999999;
    	}
    	if (isset ($_POST['valider'])){
    		$productionInf = $_POST['puissanceInf[]'];
    		$productionSup = $_POST['puissanceSup[]'];
    		$nom = $_POST['nom'];
    		$prenom = $_POST['prenom'];
    		$raisonSociale = $_POST['repEntreprise'];
    		$adresse = $_POST['adresseClient'];
    		$commune = $_POST['communeClient'];
    		$codePostal = $_POST['codePostalClient'];
    		$numTelFixe = $_POST['numTelFixe'];
    		$numTelPort = $_POST['numTelPort'];
    		$adresseMail = $_POST['mailClient'];
    		$nomInterlocuteur = $_POST['nomInterlocuteur'];
    		$solo = $_POST['exploitationSolo[]'];
    		$mandataire = $_POST['exploitationPropriétaire[]'];
    		//On se connecte
    		connectContratGlobal();
     
    		//On prépare la commande sql d'insertion
    		$sql = 'INSERT INTO Client VALUES("","'.$productionInf.'","'.$productionSup.'","'.$nom.'","'.$prenom.'","'.$raisonSociale.'","'.$adresse.'","'.$commune.'","'.$codePostal.'","'.$numTelFixe.'","'.$numTelPort.'","'.$adresseMail.'","'.$nomInterlocuteur.'","'.$solo.'","'.$mandataire.'")';
     
    		/*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();
    		echo 'Elements enregistrés avec succès';
    	}
    	header('Location : propriétaire.php');
    ?>
     
    <?php
    include "bas.php";
    ?>

    Donc quelques petit soucis :
    _ les boutons radio ne s'enregistrent pas dans la BDD
    _ wampServer plante dès la fin de la sauvegarde
    _ je ne sais donc pas si la redirection fonctionne, si tant est que c'est bien une redirection que j'ai fait.


    Merci à ceux qui répondront.

Discussions similaires

  1. erreur : " ceci n'est pas un nombre"
    Par fripette dans le forum Outils
    Réponses: 5
    Dernier message: 17/11/2013, 17h51
  2. [phpMyAdmin] ce n'est pas un nombre
    Par abdelilah dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 02/12/2011, 19h09
  3. Réponses: 0
    Dernier message: 07/10/2007, 11h24
  4. Erreur "function ' ' n'est pas définie dans l'expression"
    Par wanou_le_fou dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 02/07/2007, 17h13
  5. 50.00 n'est pas un nombre en virgule flottante correct
    Par Merfolk dans le forum C++Builder
    Réponses: 2
    Dernier message: 26/01/2006, 01h44

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