10/10/2018, 09:46

Giá trị submit từ form !?

Giả sử em có 1 form như sau:

PHP Code:
<html>
<
head></head>
<
body>
    <
form action="login.php" method="post">
        <
input name="content" type="text" />
        <
input name="submit" type="submit" />
    </
form>
</
body>
</
html
Nếu như em để trống textbox và bấm submit thì $_POST['content'] có tồn tại hay không ? Và nếu tồn tại thì giá trị của nó là gì ?
mitdacqn viết 11:47 ngày 10/10/2018
Nếu bạn để textbox trống thì giá trị nó là rỗng(empty) chứ còn gì nữa
tuanit85 viết 11:59 ngày 10/10/2018
Được gửi bởi geany
Giả sử em có 1 form như sau:

PHP Code:
<html>
<
head></head>
<
body>
    <
form action="login.php" method="post">
        <
input name="content" type="text" />
        <
input name="submit" type="submit" />
    </
form>
</
body>
</
html
Nếu như em để trống textbox và bấm submit thì $_POST['content'] có tồn tại hay không ? Và nếu tồn tại thì giá trị của nó là gì ?
Bạn không cần submit mà chỉ cần F5 thì dữ liệu null cũng sẽ đực gửi đi, để khắc phục điều này có thể bạn làm như sau

if(!$_POST['submit_name'])
{
printf <<<EOF
<form action="login.php" method="post">
<input name="content" type="text" />
<input name="submit" type="submit" />
<input type="submit" name="submit_name" value="Gửi" />
</form>
EOF;
}
else
{
action;
}
geany viết 11:57 ngày 10/10/2018
Vậy giá trị empty và null có khác gì nhau không ?
mitdacqn viết 11:57 ngày 10/10/2018
empty và null khác nhau:
- empty chỉ một biến chuỗi có giá trị '', một mảng chưa có phần tử,...
- null chỉ một biến chưa được thiết lập giá trị hoặc được gán cho null, NULL

Ví dụ:

PHP Code:
$var '';
$x is_null($var) ; // x=false
$y = empty($var); // y=true

$var = array();
$x is_null($var); // x=false
$y = empty($var); // y=true

$var null// null, NULL,.. đều như sau
$x is_null($var); // x=true

$var null;
$x = isset($var); // x=false;

$var '';
$x = isset($var); // x=true 
geany viết 11:47 ngày 10/10/2018
PHP Code:
<html>
<
head></head>
<
body>
    <
form action="login.php" method="post">
        <
input name="content" type="text" />
        <
input name="submit" type="submit" />
    </
form>
</
body>
</
html
PHP Code:
<?php
// login.php

if (isset($_POST***91;'submit'***93;)) {
    if (
$_POST***91;'content'***93; == '')
        echo 
'gia tri rong';
    
    if (
$_POST***91;'content'***93; == NULL)
        echo 
'gia tri null';
}
?>
Hix em thử cái này thì $_POST['content'] nó vừa null vừa rỗng ???
Vậy là sao hả mấy anh ???
tuanit85 viết 12:01 ngày 10/10/2018
Kiểu NULL là 1 giá trị đặc biệt, báo cho php biết rằng một biến nào đó ("chưa mang giá trị" HOẶC "không mang giá trị" nào cả) chứ không phải nó không tồn tại. Vậy nên việc kiểm tra biến của bạn trả về kết quả là hoàn toàn đúng.
mitdacqn viết 11:56 ngày 10/10/2018
Nếu bạn muốn kiểm tra đã nhập dữ liệu hay chưa thì chỉ cần thế này thôi:

PHP Code:
if($_POST***91;'content'***93;)
{
  
// Xử lý
}
else
{
  
// Báo lỗi

Bạn cũng không cần quan tâm lắm tới empty và null làm gì cho mệt
Mr.Chu viết 11:54 ngày 10/10/2018
PHP không định kiểu mạnh cho nên giá trị có thể là bất kì

PHP Code:
<?php
// login.php

if (isset($_POST***91;'submit'***93;)) {
    if (
$_POST***91;'content'***93; == '')
        echo 
'string';
    
    if (
$_POST***91;'content'***93; == NULL)
        echo 
'null';

    if (
$_POST***91;'content'***93; == 0)
        echo 
'integer';
        
    if (
$_POST***91;'content'***93; == 0.0)
        echo 
'double';

    if (
$_POST***91;'content'***93; == FALSE)
        echo 
'boolean';
}
?>
thuankkk viết 11:50 ngày 10/10/2018
Được gửi bởi geany
PHP Code:
<?php
// login.php

if (isset($_POST***91;'submit'***93;)) {
    if (
$_POST***91;'content'***93; == '')
        echo 
'gia tri rong';
    
    if (
$_POST***91;'content'***93; == NULL)
        echo 
'gia tri null';
}
?>
Hix em thử cái này thì $_POST['content'] nó vừa null vừa rỗng ???
Vậy là sao hả mấy anh ???
PHP Code:
<?php
// login.php

if (isset($_POST***91;'submit'***93;)) {
    if (
$_POST***91;'content'***93; === '')
        echo 
'gia tri rong';
    
    if (
$_POST***91;'content'***93; === NULL)
        echo 
'gia tri null';
}
?>
Thêm một dấu = vào để check luôn cả kiểu.

PHP Code:
<?php
  
function _val(&$var) {
    return isset(
$var)?$var:'';
  }
  
  if(
_val($_POST***91;'content'***93;))
    echo 
$_POST***91;'content'***93;;
Bài liên quan
0