php/mysql

php/mysql - PHP - Programmation

Marsh Posté le 27-02-2006 à 11:17:39    

au secours,
 
j'ai créé une base qui enregistre les donnés d'un formulaire en ligne. quand le formulaire est valide, si l'utilisateur n'a pas coché tous les champs, j'ai ceci :
Notice: Undefined index: age in D:\xxx\xxx\xxx\spip\xxx\xxx.php on line 37
pourtant, le champs NULL est bien definis dans ma base pour les champs optionnel et de plus, les resultats sont correctement enregistré dans la base. mais pour l'utilisateur voir une page rempli de Undefined après sa validation c pas top!!!
je voudrais corriger ce probleme
merci infiniment de votre aide.
 

Reply

Marsh Posté le 27-02-2006 à 11:17:39   

Reply

Marsh Posté le 27-02-2006 à 11:20:04    

montre ton code car la c'est plus dur a comprendre

Reply

Marsh Posté le 27-02-2006 à 11:21:09    

if ( !isset($_POST["age"]) ) $_POST["age"] = "";
 
je crois que ça réglerais la chose mais ça fais un peu bricolage. Au fait, tu utilise easyPhp ou un truc du genre, non?


Message édité par dwogsi le 27-02-2006 à 11:21:45
Reply

Marsh Posté le 27-02-2006 à 11:23:51    

oui j 'utilise l'interface de phpmyadmin qui est chez mon hebergeur.

Reply

Marsh Posté le 27-02-2006 à 11:25:23    

voilà le début de code de ma page de formulaire :  
 
<?php require_once('Connections/agorap.php'); ?>
<?php
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "" )  
{
  $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
 
  switch ($theType) {
    case "text":
      $theValue = ($theValue != "" ) ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "" ) ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "" ) ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "" ) ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "" ) ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
 
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
 
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1" )) {
  $insertSQL = sprintf("INSERT INTO enquetes (ID, sexe, age, `titre_inscription`, `titre_inscription2`, `titre_inscription3`, `titre_inscription4`, `titre_inscription5`, `titre_inscription6`, `titre_inscription7`, `titre_inscription8`, `titre_inscription9`, `titre_inscription10`, `titre_inscription11`, `titre_inscription12`, `titre_inscription13`, `titre_inscription_autre`, `date`, `comment_connu`, `comment_connu_autre`, `utilisation_message`, `pose_question`, `repondu_question`, `communication_info`, `recup_document`, `contact_auteur`, `a_quoi_sert`, `a_quoi_sert2`, `a_quoi_sert3`, `a_quoi_sert4`, `a_quoi_sert5`, suggestion, Nom, Prenom, Organisme) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
                       GetSQLValueString($_POST['ID'], "int" ),
                       GetSQLValueString($_POST['sexe'], "text" ),
                       GetSQLValueString($_POST['age'], "text" ),
                       GetSQLValueString($_POST['titre_inscription'], "text" ),
                       GetSQLValueString($_POST['titre_inscription2'], "text" ),
                       GetSQLValueString($_POST['titre_inscription3'], "text" ),
                       GetSQLValueString($_POST['titre_inscription4'], "text" ),
                       GetSQLValueString($_POST['titre_inscription5'], "text" ),
                       GetSQLValueString($_POST['titre_inscription6'], "text" ),
                       GetSQLValueString($_POST['titre_inscription7'], "text" ),
                       GetSQLValueString($_POST['titre_inscription8'], "text" ),
                       GetSQLValueString($_POST['titre_inscription9'], "text" ),
                       GetSQLValueString($_POST['titre_inscription10'], "text" ),
                       GetSQLValueString($_POST['titre_inscription11'], "text" ),
                       GetSQLValueString($_POST['titre_inscription12'], "text" ),
                       GetSQLValueString($_POST['titre_inscription13'], "text" ),
                       GetSQLValueString($_POST['titre_inscription_autre'], "text" ),
                       GetSQLValueString($_POST['date'], "text" ),
                       GetSQLValueString($_POST['comment_connu'], "text" ),
                       GetSQLValueString($_POST['comment_connu_autre'], "text" ),
                       GetSQLValueString($_POST['utilisation_message'], "text" ),
                       GetSQLValueString($_POST['pose_question'], "text" ),
                       GetSQLValueString($_POST['repondu_question'], "text" ),
                       GetSQLValueString($_POST['communication_info'], "text" ),
                       GetSQLValueString($_POST['recup_document'], "text" ),
                       GetSQLValueString($_POST['contact_auteur'], "text" ),
                       GetSQLValueString($_POST['a_quoi_sert'], "text" ),
                       GetSQLValueString($_POST['a_quoi_sert2'], "text" ),
                       GetSQLValueString($_POST['a_quoi_sert3'], "text" ),
                       GetSQLValueString($_POST['a_quoi_sert4'], "text" ),
                       GetSQLValueString($_POST['a_quoi_sert5'], "text" ),
                       GetSQLValueString($_POST['suggestion'], "text" ),
                       GetSQLValueString($_POST['Nom'], "text" ),
                       GetSQLValueString($_POST['Prenom'], "text" ),
                       GetSQLValueString($_POST['Organisme'], "text" ));

Reply

Marsh Posté le 27-02-2006 à 11:32:55    

Et as tu essayé le code que je t'ai donnée, à placer avant l'utilisation des vraiable $_POST.

Reply

Marsh Posté le 27-02-2006 à 13:14:28    

pour info, un champ "checkbox",s'il n'est pas coché, n'est pas envoyé au serveur. Donc un appel $_POST["MaCaseACocher"] risque de planter. Sous Windows (Easyphp), ça me le fait pas, mais sur un serveur Linux, si. 9a vient sûrement de ça.

Reply

Marsh Posté le 27-02-2006 à 13:17:44    

c 'est compliqué!!! je test l'initialisation des variables (donné par dwogsi) j'espère que ça marchera

Reply

Marsh Posté le 27-02-2006 à 13:40:06    

jedebute75 a écrit :

c 'est compliqué!!! je test l'initialisation des variables (donné par dwogsi) j'espère que ça marchera


 
Moi, ça m'avait résolu mon pb en utilisant le isset() :)

Reply

Marsh Posté le 27-02-2006 à 14:05:24    

ssuuuuuuuuuuuuuuuuupeeeeeeeeeeeeeerrrr ça marche avec le isset!!
merci vous me sauvez mon scripte!!!! merci 10000000 fois

Reply

Marsh Posté le 27-02-2006 à 14:05:24   

Reply

Marsh Posté le 27-02-2006 à 14:20:27    

Ouai enfin bon... Une petite recherche t'aurais aussi simplement sauvé!
Et t'aurais pu essayer mon code tout de suite!

Reply

Marsh Posté le 27-02-2006 à 21:40:17    

tu as raison!!! mais je suis super debutante et j'ai pas encore la bonne methode, fallait dejà que je comprenne ton message!!! et puis c'était mega urgent alors j ai fais comme ça, n'empêche  tu m as carrément aidé sur ce coup là, j'étais bien perdu!!! c super ce forum, je vais surfer dessus et apprendre pleins de choses!!!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed