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

Langage PHP Discussion :

Saisie automatique des données


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 252
    Points : 85
    Points
    85
    Par défaut Saisie automatique des données
    Bonjour a tous,

    Je souhaiterais saisir un numero de question, la question et un commentaire relatif a la question dans un formulaire. je voudrais aussi voir toutes les questions qui ont deja ete enregistrees. alors j'ecris le code suivant:
    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
    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
     
    <?php
    require_once ('../PHP-TESTS/mysqli_connect_test.php');
    echo '<form action="test2.php" method="post">
    		<h3>QUESTIONS</h3>
    		<p> Numero de la question: <input type="text" name="question_number"></p>
    		<p> Question: <input type="text" name="question"></p>
    		<p>  Commentaire: <input type="text" name="comment"></p>
    		<p><input type="submit" name="submit" value="Submit" /> </p>
    		<input type="hidden" name="submitted" value="TRUE" />
    	</form>';
     
    echo '<h1>Registered questions</h1>';	
    require_once ('../PHP-TESTS/mysqli_connect_test.php');
    $q= "SELECT question, comment FROM questions";
    $r=@mysqli_query($dbc, $q);
    $num=mysqli_num_rows($r);
     
    if ($num > 0){
    	echo '<table align="center" cellspacing="3" cellpadding="3" width="75%">
    	<tr>
    		<td align="left"><b>Question</b></td>
    		<td align="left"><b>Comment</b></td>
    	</tr>';
    	while ($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) {
    		echo '<tr>
    		<td align="left">' . $row['question'] . '</td>
    			<td align="left">' . $row['comment'] . '</td>
    			</tr>';
    	}
    		echo '</table>'; 	
    		mysqli_free_result ($r);
    }
    else {
    	echo '<p> There are currently no registered questions. </p>';
    }
     
     
    if ((isset ($_POST['submitted'])) || (isset ($_POST['submit']))){
     
    	$errors=array();
     
    	if (empty ($_POST['question_number'])){
    		$errors[]= 'Your forgot to enter the number of the question.';
    	}
    	else {
    		$n =mysqli_real_escape_string($dbc,trim ($_POST['question_number']));
    	}
     
    	if (empty($_POST['question'])) {
    		$errors[] = 'Your forgot to enter the question.';
    	} 
    	else {
    		$q = mysqli_real_escape_string($dbc,trim($_POST['question']));
    	}
    	if (!empty($_POST['comment'])){
    		$c=mysqli_real_escape_string($dbc,trim($_POST['comment']));
    	}
    	else {
    		$c='';
    	}
     
    	if (empty($errors)){
    		$q = "INSERT INTO questions(question, comment) VALUES ('$q', '$c')";
    		$r = @mysqli_query($dbc, $q);
    		if (mysqli_affected_rows($dbc) == 1) {
    				echo '<h1> Your question has been successfully inserted !</h1>';				
    		}
    		else {
    			echo '<h1> System Error </h1>
    			<p> Your question could not be inserted due to a system error </p>';
    			echo '<p> ' . mysqli_error($dbc) . '<br/> <br /> Query : ' . $q . ' </p>';
    		}
    		exit ();
    	}
    	else {
    	echo '<h1> Error !</h1>
    		<p> The following error(s) occured : <br />';
    		foreach ($errors as $msg) {
    			echo " - $msg <br /> \n";
    		}
    		echo '</p><p> Please try again. </p><p><br /></p>';
    	}
    	mysqli_close($dbc);
    }
    ?>
    Je ne comprends pas pourquoi, quand j'ouvre ma pqge dans l'explorateur le message ci -dessous s'affiche alors que je n'ai encore rien saisi.
    "Your question has been successfully inserted !"
    Ce qui est bizarre c'est que dans ma base de donnees, la ligne
    (16, q9, input from MKT) ou 16 est l'ID, q9 lq question et input from MKT le commentaire s'ajoute alors que je n'ai rien saisi.
    Quand je rafraichis ma page, une autre ligne s'ajoute (17, q9, input from MKT) et ainsi de suite.

    Qu'est ce qui ne va pas dans mon code?

    Merci.

    Billyrose

  2. #2
    FoxLeRenard
    Invité(e)
    Par défaut
    Salut,

    Désolé, mais trop de choses a redire

    On peut commencer par le plus dangeureux ...
    Il faut traiter dés le départ toutes tes saisies
    puis ne plus utiliser du tout $_POST
    !!!
    mais sa valeur de contrôle comme je vais te le montrer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?PHP
    if (isset($_POST["question_number"])) $question_number=trim($_POST["question_number"]);
     else $question_number=""; 
    if (isset($_POST["question"])) $question=trim($_POST["question"]);
     else $question=""; 
    if (isset($_POST["comment"])) $comment=trim($_POST["comment"]);
     else $comment=""; 
    //==================== apres le barage absolut ============
    if ($comment!="" &&  $question!="" && $question_number!="")
     {
     
    //Alors tout va bien !!
      }
    2) Autre point ton imput input type="hidden" name="submitted" value="TRUE"
    est un non sens dangeureux

    3) prends pour régle, de ne pas utiliser empty, il est trop pernitieux !

    Bon courage

Discussions similaires

  1. Récupération automatique des données d'une feuille de saisie
    Par vieri dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 08/01/2009, 17h21
  2. affichage automatique des données ds un formulaire
    Par adenov dans le forum Access
    Réponses: 1
    Dernier message: 07/09/2007, 16h08
  3. [windev11]modification automatique des données
    Par nath-0-0 dans le forum WinDev
    Réponses: 6
    Dernier message: 03/06/2007, 20h02
  4. [MySQL] Suppression automatique des données
    Par Angelik dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 14/12/2006, 22h06
  5. Réponses: 5
    Dernier message: 20/07/2006, 16h01

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