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 lors de l'envoi d'un formulaire vers la db


Sujet :

PHP & Base de données

  1. #1
    Membre du Club Avatar de Sianobel
    Femme Profil pro
    Webmaster
    Inscrit en
    Octobre 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2007
    Messages : 54
    Points : 58
    Points
    58
    Par défaut Problème lors de l'envoi d'un formulaire vers la db
    Bonjour et excusez moi si j'ai mal chercher sur le forum.

    J'ai un soucis avec un formulaire en mysqli. Je débute avec étant habitué au mysql standard. Sur mes autres formulaires, aucun problème, juste sur celui que je vais vous soumettre. Cela me donne une page blanche.

    Formulaire
    Code : 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
    <form method="post" action="">
    	<input type="hidden" name="nouvelle_case" value="oui">
    	<fieldset>
    		<legend>Ajouter une case</legend>
    		</ul>
    			<li>
    				<label>Nom</label><input type="text" name="nom" value="" />
    			</li>
    			<li>
    				<label>Type</label><select name="type">
    					<?php
    						$selection_type=mysqli_query($connexion, "SELECT * FROM type_case ORDER BY nom");
    						while ($recap_type = mysqli_fetch_assoc($selection_type)) { 
    							echo "<option valeur='$recap_type[id]'>$recap_type[nom]</option>";
    						}
    					?>
    				</select>
    			</li>
    			<li><label>Coordonnée X</label><input type="text" name="x" value="" /></li>
    			<li><label>Coordonnée Y</label><input type="text" name="y" value="" /></li>
    			<li>
    				<label>Route</label><input type="radio" name="route" value="1" /> Oui <input type="radio" name="route" value="0" CHECKED /> Non
    			</li>
    			<li>
    				<label>Fleuve</label><input type="radio" name="fleuve" value="1" /> Oui <input type="radio" name="fleuve" value="0" CHECKED /> Non
    			</li>
    			<li><label><img src="/img/ressources/Pierre.gif" /></label><input type="text" name="pierre" value="0" /></li>
    			<li><label><img src="/img/ressources/Bois.gif" /></label><input type="text" name="bois" value="0" /></li>
    			<li><label><img src="/img/ressources/Vegetaux.gif" /></label><input type="text" name="vegetaux" value="0" /></li>
    			<li><label><img src="/img/ressources/Fruits.gif" /></label><input type="text" name="fruit" value="0" /></li>
    			<li><label><img src="/img/ressources/Poissons.gif" /></label><input type="text" name="poisson" value="0" /></li>
    			<li><label><img src="/img/ressources/Cadavres.gif" /></label><input type="text" name="cadavre" value="0" /></li>
    			<li><label><img src="/img/ressources/Cereales.gif" /></label><input type="text" name="cereale" value="0" /></li>
    			<li><label><img src="/img/ressources/Charbon.gif" /></label><input type="text" name="charbon" value="0" /></li>
    			<li><label><img src="/img/ressources/Dricks.gif" /></label><input type="text" name="drick" value="0" /></li>
    			<li><label><img src="/img/ressources/Gemmes.gif" /></label><input type="text" name="gemme" value="0" /></li>
    			<li><label><img src="/img/ressources/Gibier.gif" /></label><input type="text" name="gibier" value="0" /></li>
    			<li><label><img src="/img/ressources/Metal.gif" /></label><input type="text" name="metal" value="0" /></li>
    			<li><label><img src="/img/ressources/Papier.gif" /></label><input type="text" name="papier" value="0" /></li>
    			<li><label><img src="/img/ressources/Pierres_de_vie.gif" /></label><input type="text" name="pdv" value="0" /></li>
    			<li><label><img src="/img/ressources/Runes_givre.gif" /></label><input type="text" name="rune" value="0" /></li>
    			<li><label><img src="/img/ressources/Spiritueux.gif" /></label><input type="text" name="spiritueux" value="0" /></li>
    			<li><label><img src="/img/ressources/Drogues.gif" /></label><input type="text" name="drogue" value="0" /></li>
    			<li><label><img src="/img/ressources/Encens.gif" /></label><input type="text" name="encen" value="0" /></li>
    			<li><label><img src="/img/ressources/Epice.gif" /></label><input type="text" name="epice" value="0" /></li>
    			<li>
    				<input type="submit" title="On ne clique qu'une seule fois ;)" value="Valider" />
    				<input type="reset" title="Vous êtes sur?" value="Effacer le formulaire">
    			</li>
    		</ul>
    	</fieldset>
    </form>
    Page de traitement
    Code : 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
    <?php
     
    	//Chargement des scripts
     
    	//Chargement de la page
    		$titre_page = "Créer une case";
    		$variable_page = "case";
    		$rang = "0";
    		$loggin = "0";
     
    	//Récolte des informations
    		if (isset($_POST['nouvelle_case'])) {
    			// champ texte
    			$nom = addslashes($_POST['nom']);
    			$x = $_POST['x'];
    			$y = $_POST['y'];
    			$type = $_POST['type'];
     
    			// champ radio
    			$route = $_POST['route'];
    			$fleuve = $_POST['fleuve'];
     
    			// ressources
    			$pierre = $_POST['pierre'];
    			$bois = $_POST['bois'];
    			$vegetaux = $_POST['vegetaux'];
    			$fruit = $_POST['fruit'];
    			$poisson = $_POST['poisson'];
    			$cadavre = $_POST['cadavre'];
    			$cereal = $_POST['cereale'];
    			$charbon = $_POST['charbon'];
    			$drick = $_POST['drick'];
    			$gemme = $_POST['gemme'];
    			$gibier = $_POST['gibier'];
    			$metaux = $_POST['metal'];
    			$pdv = $_POST['pdv'];
    			$papier = $_POST['papier'];
    			$rune = $_POST['rune'];
    			$spiritueux = $_POST['spiritueux'];
    			$drogue = $_POST['drogue'];
    			$encen = $_POST['encen'];
    			$epice = $_POST['epice'];
     
    			// on injecte les données dans la db
    			$requete_case = "INSERT INTO case_ressources (nom,id_type,x,y,route,fleuve,Pierre,Bois,Vegetaux,Fruits,Poissons,Cadavres_frais,Cereales,Charbon,Dricks,Gemmes,Gibier,Metal,Pierres_de_vie,Papier,Rune,Spiritueux,Drogues,Encens,Epices) VALUES ('$nom','$type','$x','$y','$route','$fleuve','$pierre','$bois','$vegetaux','$fruit','$poisson','$cadavre','$cereal','$charbon','$drick','$gemme','$gibier','$metaux','$pdv','$papier','$rune','$spiritueux','$drogue','$encen','$epice')";
    			$resultat_case = mysqli_query($connexion, $requete_case) or die (mysql_error());
    		}
    ?>
    Il n'est pas encore sécurisé et il n'y a pas de vérification pour le moment. Cela viendra ensuite. Cela doit être une bêtise que je n'arrive pas à voir. Si vous pouviez m'ouvrir les yeux ça serait cool.

    Merci pour ceux qui m'aideront ^^

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Si tu as une page blanche sur la page du formulaire, regarde dans ton log d'erreur PHP s'il y a quelque chose ; l'extension mysqli n'est peut être pas active sur ton serveur par exemple.
    Si c'est sur la page de traitement, c'est normal, il n'y a aucun affichage dedans.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club Avatar de Sianobel
    Femme Profil pro
    Webmaster
    Inscrit en
    Octobre 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2007
    Messages : 54
    Points : 58
    Points
    58
    Par défaut
    Le site est construit pour que la page soit affiché directement mais c'est sur l'index que le code se trouve. Je vais regarde le log.

    Voilà ce qui s'y trouve:
    Access log
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    127.0.0.1 - - [24/Jan/2016:22:46:41 +0100] "POST /?p=case HTTP/1.1" 200 -
    127.0.0.1 - - [24/Jan/2016:22:46:56 +0100] "GET /eds-modules/phpmyadmin4531x160119181851/sql.php?server=1&db=wargame&table=case_ressources&pos=0&token=3f2b678de655eebd2270fb09c0e6ffd1&ajax_request=true&ajax_page_request=true&_nocache=1453672016917740517 HTTP/1.1" 200 4668
    127.0.0.1 - - [24/Jan/2016:22:46:57 +0100] "GET /eds-modules/phpmyadmin4531x160119181851/index.php?ajax_request=1&recent_table=1&token=3f2b678de655eebd2270fb09c0e6ffd1&no_debug=true&_nocache=1453672017298627128 HTTP/1.1" 200 1483
    127.0.0.1 - - [24/Jan/2016:22:46:58 +0100] "GET /eds-modules/phpmyadmin4531x160119181851/sql.php?server=1&db=wargame&table=case_ressources&pos=0&token=3f2b678de655eebd2270fb09c0e6ffd1&ajax_request=true&ajax_page_request=true&_nocache=1453672018862493068 HTTP/1.1" 200 4669
    127.0.0.1 - - [24/Jan/2016:22:46:59 +0100] "GET /eds-modules/phpmyadmin4531x160119181851/index.php?ajax_request=1&recent_table=1&token=3f2b678de655eebd2270fb09c0e6ffd1&no_debug=true&_nocache=1453672019228564705 HTTP/1.1" 200 1483
    Et rien de le erreur log

    L'extension mysqli est activée compte tenu du fait que c'est le serveur qui me dit que mysql est dépassé. J'ai déjà un formulaire fonctionnel sur le site et je ne comprend ce qui foire avec celui ci.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    L'extension mysqli est activée compte tenu du fait que c'est le serveur qui me dit que mysql est dépassé.
    Ce n'est pas parce qu'il te dit que mysql est dépassé que mysqli est activé ; il peut n'y avoir que PDO ou même rien du tout pour mysql.

    Concernant le log, c'est celui d'Apache que tu as regardé.

    Le site est construit pour que la page soit affiché directement mais c'est sur l'index que le code se trouve.
    Tu veux dire que les deux codes que tu nous as montré sont dans le même fichier index.php ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre du Club Avatar de Sianobel
    Femme Profil pro
    Webmaster
    Inscrit en
    Octobre 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2007
    Messages : 54
    Points : 58
    Points
    58
    Par défaut
    Non, les deux codes sont chacun dans un fichier séparé. Via la variable $variable_page, l'index sait quelles pagent il doit charger et fait les vérifications de sécurité suivante:
    $rang = "0"; (ne doit pas être administrateur ou modérateur)
    $loggin = "0"; (ne doit pas être logguer sur le site pour y avoir accès)

    Comme dit dans un précédent message, j'ai déjà coder un formulaire pour ce site avec mysqli avec upload de fichier et celui-là fonctionne très bien, d'où mon incompréhension du problème que celui ci me fait.

    Est-ce possible que j'envoie un trop grand nombre de donnée en $_POST? Est-ce possible que le php refuse car je n'envoie pas les données dans tous les champs de la db malgré un réglage par défaut?

    Bien à vous.

    PS: Je regarderai le log ce soir. Je suis au boulot.

    New: J'ai ce message d'erreur maintenant -> Incorrect integer value: 'Prairies' for column 'id_type' at row 1

  6. #6
    Membre du Club Avatar de Sianobel
    Femme Profil pro
    Webmaster
    Inscrit en
    Octobre 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2007
    Messages : 54
    Points : 58
    Points
    58
    Par défaut
    Bonjour,

    Mon erreur provient de Mysql 5. Tous les champs ont pourtant une valeur par défaut si je n'envoie pas de donnée dans le champ et cela ne suffit pas à retiré l'erreur. Dois je supprimer les champs encore non exploités? Y a t il un reglage à faire dans l'ini (tout ceux trouvé sur internet ne fonctionnent pas)

    C'est assez bloquant ce bug, tout ça pour une version de mysql.

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    L'erreur dit que tu essaies d'insérer la chaine 'Prairies' dans la colonne 'id_type'

    Je suppose que 'Prairies' c'est le "nom" dans la table type_case ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Membre du Club Avatar de Sianobel
    Femme Profil pro
    Webmaster
    Inscrit en
    Octobre 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2007
    Messages : 54
    Points : 58
    Points
    58
    Par défaut
    Normalement, c'est censé être un id qui doit être transmis comme le montre ce bout de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <label>Type</label><select name="type">
    					<?php
    						$selection_type=mysqli_query($connexion, "SELECT * FROM type_case ORDER BY nom");
    						while ($recap_type = mysqli_fetch_assoc($selection_type)) { 
    							echo "<option valeur='$recap_type[id]'>$recap_type[nom]</option>";
    						}
    					?>
    				</select>
    Le site s'obstine a vouloir prendre en compte le descriptif du champ plutôt que sa valeur.

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Dans la source HTML de la liste tu vois quoi ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Membre du Club Avatar de Sianobel
    Femme Profil pro
    Webmaster
    Inscrit en
    Octobre 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2007
    Messages : 54
    Points : 58
    Points
    58
    Par défaut
    Je vois ceci:
    Code html : 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
     
     
     
    <label>Type</label><select name="type">
    	<option valeur="20">Collines</option>
    	<option valeur="12">Collines boisées</option>
    	<option valeur="21">Collines de jungle</option>
    	<option valeur="5">Collines forestières mortes</option>
    	<option valeur="16">Collines herbeuses</option>
    	<option valeur="32">Désert</option>
    	<option valeur="30">Désert rocheux</option>
    	<option valeur="31">Dunes de sable</option>
    	<option valeur="8">Forêt morte</option>
    	<option valeur="19">Grande forêt</option>
    	<option valeur="18">Grande forêt de conifères</option>
    	<option valeur="17">Grands cactus</option>
    	<option valeur="22">Jungle</option>
    	<option valeur="23">Lave</option>
    	<option valeur="25">Marais</option>
    	<option valeur="36">Marécage</option>
    	<option valeur="34">Mer</option>
    	<option valeur="33">Mer morte</option>
    	<option valeur="27">Montagnes</option>
    	<option valeur="1">Montagnes boisées</option>
    	<option valeur="10">Montagnes boisées enneigées</option>
    	<option valeur="7">Montagnes boisées mortes</option>
    	<option valeur="35">Montagnes enneigées</option>
    	<option valeur="6">Montagnes forestières mortes enneigées</option>
    	<option valeur="26">Mousse</option>
    	<option valeur="28">Oasis</option>
    	<option valeur="24">Petite forêt</option>
    	<option valeur="11">Plaines</option>
    	<option valeur="15">Prairies</option>
    	<option valeur="14">Prairies pauvres</option>
    	<option valeur="13">Prairies pauvres bis</option>
    	<option valeur="29">Récifs</option>
    	<option valeur="3">Terres brisées</option>
    	<option valeur="2">Terres cultivées</option>
    	<option valeur="4">Terres mortes</option>
    	<option valeur="37">Volcan</option>
    	<option valeur="9">Volcan endormis</option>				
    </select>

  11. #11
    Membre du Club Avatar de Sianobel
    Femme Profil pro
    Webmaster
    Inscrit en
    Octobre 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2007
    Messages : 54
    Points : 58
    Points
    58
    Par défaut
    Ho je m'en veux et je me sens bête. L'erreur est toute bête. Il s'agissait uniquement d'une erreur dans la liste déroulante select.

    J'avais écris VALEUR à la place de VALUE -_-

    Bon, je vais me cacher.

  12. #12
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je ne l'ai pas vue non plus.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Réponses: 4
    Dernier message: 30/07/2015, 09h38
  2. Problème lors de l'envoie d'un formulaire
    Par Gjumi dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 20/08/2009, 18h10
  3. [MySQL] problème lors de l'envoi de mon formulaire
    Par cdevl32 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 04/03/2009, 18h19
  4. problème lors de l'envoi d'un formulaire
    Par fk04 dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 15/04/2007, 21h00
  5. Réponses: 2
    Dernier message: 21/11/2005, 09h29

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