2016-04-07 12 views
0

ここにユーザー入力データのフォーム用のコードを示します。自動割り当て方法はnullです。

<?php 
// Start the session 
session_start(); 

?> 

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<title>Page Title Goes Here</title> 
<meta charset="utf-8"> 
<link rel="stylesheet" type="text/css" href="form1.css"/> 
</head> 
<body> 

<?php 


//define variable and set to empty value 

$forenameErr = ""; 
$forename = ""; 

if($_SERVER["REQUEST_METHOD"] =="POST"){ 
    $valid = true; 

    if(empty($_POST["forename"])){ 
     $forenameErr = "Forename is required"; 
     $valid = false; //false 
    } else { 
     $forename = test_input($_POST["forename"]); 

     // check if name only contains letters and whitespace 
    if (!preg_match("/^[a-zA-Z ]*$/",$forename)) { 
     $forenameErr = "Only letters and white space allowed"; 
    } 
    } 

    //if valid then redirect 

    if($valid){ 
    $_SESSION['forename'] = $forename; 
    header('Location: testing2.php'); 
    exit(); 
} 
} 

//check 

function test_input($data) { 
    $data = trim($data); 
    $data = stripslashes($data); 
    $data = htmlspecialchars($data); 
    return $data; 
} 

?> 
<div id="wrapper"> 

<h1>Welcome to Chollerton Tearoom! </h1> 

<form id = "userdetail" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="POST"> 

    <fieldset id="aboutyou"> 
    <legend id="legendauto">user information</legend> 

     <p> 
     <label for="forename">Forename: </label> 
     <input type="text" name="forename" id="forename" value="<?php echo $forename;?>"> 
     <span class="error">* <?php echo $forenameErr;?></span> 
     </p> 

     <p> 
     <input type="submit" name="submit" value="submit" /> 
     </p> 

     </fieldset> 
    </form> 
    </div>  
</body> 
</html> 

、ここでデータreceriverのPHPコードは、私がやってワン何

<?php 

session_start(); 
$forename = $_SESSION['forename']; 

echo "<h1>Successfull submission :</h1>"; 
echo "<p>Forename : $forename; <p/>"; 

?> 

別のページにある、ユーザーが任意の値を入力し、Enterキーを押し提出しなかった場合である... ことでしょう自動的にNULLをデータに埋め込みます... 私はそれを行うことができますか?例えば .... Forename:ジェームズ.. 姓:ナル...

答えて

1

あなたはそれが空のように、NULLになりたい場合は、次の

$forename = empty($_POST["forename"]) ? NULL : $_POST["forename"]; 

あなたは実際の値が「Nになりたい場合は

$forename = empty($_POST["forename"]) ? "NULL" : $_POST["forename"]; 

UPDATE:その後、string(4)のようULL」、

<?php 
// Start the session 
session_start(); 
?> 

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
     <title>Page Title Goes Here</title> 
     <meta charset="utf-8"> 
     <link rel="stylesheet" type="text/css" href="form1.css"/> 
    </head> 
    <body> 
     <?php 

      // define variables and set to empty value 
      $firstNameError = ""; 
      $lastNameError = ""; 
      $error = false; 

      // if firstName is empty, make it NULL, else, test_input() the data. 
      $firstName = empty($_POST["firstName"]) ? NULL : test_input($_POST["firstName"]); 

      // if lastName is empty, make it NULL, else, test_input() the data. 
      $lastName = empty($_POST["lastName"]) ? NULL : test_input($_POST["lastName"]); 

      if (isset($_POST["submittingForm"])) { 

       /// CHECK FIRST NAME ERRORS 
       if ($firstName === NULL) { 
        // firstName is empty 
        $firstNameError = "First name is required!"; 
        $error = true; 

       } else { 
        // check characters 
        if (!preg_match("/^[a-zA-Z ]*$/", $firstName)) { 
         $firstNameError = "Only letters and white spaces allowed!"; 
         $error = true; 
        } 
       } 

       /// CHECK LAST NAME ERRORS 
       if (!preg_match("/^[a-zA-Z ]*$/", $lastName)) { 
        // check characters 
        $lastNameError = "Only letters and white spaces allowed!"; 
        $error = true; 
       } 

       // if no error then redirect 
       if (!$error) { 
        $_SESSION['fistName'] = $firstName; 
        $_SESSION['lastName'] = $lastName; 
        header('Location: testing2.php'); 
        exit(); 
       } 

      } else { 
       // user did not submit form! 
      } 

      // clean input 
      function test_input($data) { 
       $data = trim($data); 
       $data = stripslashes($data); 
       $data = htmlspecialchars($data); 
       return $data; 
      } 

     ?> 
     <div id="wrapper"> 
      <h1>Welcome to Chollerton Tearoom! </h1> 
      <form id="userdetail" method="POST"> 
       <fieldset id="aboutyou"> 
        <legend id="legendauto">user information</legend> 
        <p> 
         <label for="firstName">First Name: </label> 
         <input type="text" name="firstName" id="firstName" value="<?php echo $firstName; ?>"> 
         <span class="error">* <?php echo $firstNameErr;?></span> 

         <label for="lastName">Last Name: </label> 
         <input type="text" name="lastName" id="lastName" value="<?php echo $lastName; ?>"> 
         <span class="error">* <?php echo $lastNameErr;?></span> 
        </p> 
        <p> 
         <input type="submit" name="submittingForm" value="submit"> 
        </p> 
       </fieldset> 
      </form> 
     </div> 
    </body> 
</html> 
+0

返信ありがとう... 私が知りたいのは、彼らが投稿した後の姓の空白、PHPは自動的にユーザーの姓がtest2.phpページでnullであることを示す.... ユーザーが姓を入力した場合、test2.phpには姓が表示されます。 例... Forename:James、Surname:Null(asユーザーが姓のテキストフィールドに何も入力していない).... 私が修正または追加する必要があるコードは何ですか? –

+1

うん、わかった、これは動作します。あなたはそれを使ってみましたか?これが何であるかを知らなければ、これは三項と呼ばれ、ここではどのように動作するかの例があります:http://www.abeautifulsite.net/how-to-use-the-php-ternary-operator/ – emotality

+1

それで'$ _POST [" forename "]'が空であれば '$ forename'を' NULL'に、それ以外の場合は '$ _POST [" forename "]'にします。 – emotality

0
if ($forename == ""){ 
    $forename = "NULL"; 
} 
0

PHPコードスニペット(ユーザーは、姓のテキストフィールドには何も入力しなかった場合)

function test_input($data) { 
    $data = trim($data); 
    $data = stripslashes($data); 
    $data = htmlspecialchars($data); 
    if ($data == '') { 
     $data = 'NULL'; 
    } 
    return $data; 
} 
+0

それが作品をdoes't .... forenameと姓がある場合、ユーザーが記入する必要があることを何 .. ユーザーが自分のforenameに記入しても姓は記入しないと... ユーザーがフォームを送信できる... –

関連する問題