2016-04-07 15 views
0

Burada kullanıcı giriş verileri için formun kodudur. Burada otomatik olarak atama null ve php'ye gönder

<?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> 

ve

başka bir sayfaya veri receriver php kodudur

<?php 

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

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

?> 

kullanıcı herhangi bir değer ve gönder düğmesine basın girmediyseniz ne yapmam wan olduğunu ... o olacak Verilerinde NULL otomatik olarak doldurun ... bunu yapabilir miyim ?? örneğin .... Önad: James .. Soyadı: Boş ...

cevap

1

Eğer boş olduğu gibi, NULL olmasını istiyorsanız Ull", daha sonra string(4) olduğu gibidir:

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

GÜNCELLEME:

<?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

yanıt için teşekkürler ... kullanıcı sadece kendi adlarını doldurup biterse bilmek istiyorum gönderildikten sonra soyadı boş, php otomatik olarak Kullanıcının soyadını test2.php sayfasında oturum açın ... Kullanıcı soyadını girmişse, test2.php soyadlarını gösterecek ... örnek ... Ad: Soyadı: James, Soyadı: Boş kullanıcı soyadı metin alanına bir şey girmedi) .... değiştirmek veya eklemek için gereken kod nedir ?? –

+1

Yup Anladım, bu işe yarayacak. Kullanmayı denediniz mi? Bunun ne anlama geldiğini bilmiyorsanız, bu üçlü olarak adlandırılır, işte nasıl çalıştığına dair bir örnek: http://www.abeautifulsite.net/how-to-use-the-php-ternary-operator/ – emotality

+1

Ne yani yapar: eğer '$ _POST ["forename"] 'boşsa, o zaman' $ forename' '' NULL' 'a atayın, aksi halde '$ _POST [' forename ']' yapın. – emotality

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

PHP kod parçacığı (kullanıcı soyadı textfield bir şey girmediyseniz)

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

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

"Yok olmak gerçek değerini isterseniz:

+0

o does't işler .... soyadı ve kullanıcı doldurmak için gereken soyadı var ne olur .. Kullanıcı kendi adlarını doldurup soyadı yoksa ... kullanıcı formunu gönderebilir ... –

İlgili konular