2017-10-21 25 views
-2

Ceci est ma forme de base:comment vérifier est ma forme soumise ou non et comment les stocker en php

<form class="table" action="signup.php" method="POST"> 
     <input type="text" name="Name" value="" placeholder="Enter Ur name"><br>`` 
     <input type="text" name="username" value="" placeholder="Enter Username" minlength="10" required><br> 
     <input type="password" name="pwd" value="" placeholder="Enter password" minlength="8" required><br> 
     <input type="date" name="dob" value="" placeholder="Enter DOB" required><br> 
     <input type="hidden" name="form_submitted" value="1"/> 
     <input type="submit" value="signup" name="submit" /> 

Puis je me connecte à la base de données avec connect.php alors mon code signup.php ressemble ceci:

include ('connect.php'); 
$submit=filter_input(INPUT_POST, submit); 
if(isset($submit)) 
{ 
    $name=filter_input(INPUT_POST, Name); 
    echo "Your name is". $name; 
    $uname=filter_input(INPUT_POST, username); 
    $pwd=filter_input(INPUT_POST, pwd); 
    $dob=filter_input(INPUT_POST, dob); 
    $query="insert INTO form1(Name,uname,Password,DOB) values('$name','$uname','$pwd','$dob')"; 
    if(mysql_query($query)) 
    { 
    echo "Information saved successfully"; 
    } 

maintenant, si je veux l'utiliser montre que vous ne pouvez pas accéder directement superglobale donc j'utiliser l'entrée de filtre $ name = $ _POST [ « nom »]. Après l'utilisation de filter_input, il affiche une erreur constante non définie pour Name, pwd, uname et dob. Donc je pense et aller pour est mon formulaire soumis parce qu'il ne sait pas ce qui est Nom, pwd, dob, uname.So alors s'il vous plaît répondre avec vos réponses et m'aider. Enfin, j'ai besoin de stocker les valeurs dans la base de données est mon motif.

+0

soumettre et nom devrait être chaîne je suppose. Filter_input a le second paramètre en tant que chaîne. Mettez tout à des guillemets doubles. – daremachine

+1

S'il vous plaît faire des recherches appropriées avant de demander. Taper une partie du titre de votre question dans Google vous aurait déjà permis de trouver de nombreuses réponses, comme https://stackoverflow.com/questions/7711466/checking-if-form-has-been-submitted-php – CBroe

+0

'if (isset ($ submit))' – Nick

Répondre

0

Vous devez indiquer votre second paramètre pour filter_input. Sinon, Php tapera jongler et émettra un avis.

$name = filter_input(INPUT_POST, Name); 

Avis:

PHP Notice: Use of undefined constant Name - assumed 'Name'. 

Votre code peut cependant encore du travail comme prévu.

Les œuvres suivantes pour moi:

<?php 
if($_SERVER['REQUEST_METHOD'] == 'POST') 
{ 
    $name = filter_input(INPUT_POST, 'Name'); 
    $uname = filter_input(INPUT_POST, 'username'); 
    $pwd = filter_input(INPUT_POST, 'pwd'); 
    $dob = filter_input(INPUT_POST, 'dob'); 

    var_dump($name, $uname, $pwd, $dob); 
    //store_form_values($name, $uname, $pwd, $dob); 
} 
?> 
<form method="post"> 
    <input type="text" name="Name" value="" placeholder="Enter Ur name"><br> 
    <input type="text" name="username" value="" placeholder="Enter Username" minlength="10" required><br> 
    <input type="password" name="pwd" value="" placeholder="Enter password" minlength="8" required><br> 
    <input type="date" name="dob" value="" placeholder="Enter DOB" required><br> 
    <input type="submit" value="signup" name="submit" /> 
</form> 

Remarque aucun filtrage d'entrée réelle se produit par défaut avec filter_input. Vous devez donc prendre soin des données soumises par l'utilisateur. S'échapper de manière appropriée lors de la sortie des valeurs dans vos scripts ou lors du stockage dans votre base de données. En outre, les fonctions de base de données mysql_ * sont obsolètes. Sinon, regardez mysqli ou pdo.