2011-10-10 3 views
1

빈 입력 필드 제출 양식에서 빈 입력 값을 중지하는 간단한 PHP 솔루션을 찾고 있습니다. 양식의 코드는 다음과 같습니다. 가능한 경우 간단한 PHP (자바 스크립트가 아닌) 솔루션을 사용하고 싶습니다.빈 입력 값을 사용하여 제출 PHP를 사용하여

Form.php 코드 :

<form name="form" method="post" action="add.php"> 
<input type="text" name="url" id="url"> 
<button type="submit" id="submit">submit</button> 
</form> 

add.php 코드 :

$url=$_POST['url']; 
$sql= "insert into my_table set url='$url'"; 
mysql_query($sql) or die("query failed: $sql".mysql_error()); 
$msg= 'URL Added Thank You'; 
session_register('msg'); 
header("Location: form.php "); 
exit; 

어떤 PHP 솔루션은 빈 입력이되지 않도록하는 경우

제출 또는 후에 그래서 form.php에 날 다시 보낼 수 제출 양식을하기 전에 제출합니다.

감사합니다.

+1

SANITIZE !! http://stackoverflow.com/questions/129677/whats-the-best-method-for-sanitizing-user-input-with-php – Alex

+0

비어있는 경우 게시물 값을 확인하십시오. 오류 메시지가 표시되면 양식을 제출하십시오. – punit

답변

5

개인적으로, 나는 거의 항상이 두 가지 단계를 수행합니다. 먼저 위생 처리 한 다음 유효성을 검사하십시오.

// Step 1: Sanitize fields 
$url = mysql_real_escape_string($_POST['url']); 

// Step 2: Validate fields 
if(empty($url)) 
{ 
    $msg = "Text can't be empty"; 
    session_register('msg'); 
    header("Location: form.php ") 
} 

// Step 3: Whatever 
$sql= "insert into my_table set url='$url'"; 
mysql_query($sql) or die("query failed: $sql".mysql_error()); 
$msg= 'URL Added Thank You'; 
session_register('msg'); 
header("Location: form.php "); 
exit; 
1

당신은 입력 값으로 채워졌다 여부를 확인할 수 있습니다

<?php 
    if(!empty($_POST['url'])){ 
    // Do something 
    } 
?> 
1
$url=$_POST['url']; 

if(empty($url)) { 
    // redirect back to form 
    header("Location: form.php "); 
} else { 
    // add record 
    $sql= "insert into my_table set url='$url'"; 
    mysql_query($sql) or die("query failed: $sql".mysql_error()); 
    $msg= 'URL Added Thank You'; 
    session_register('msg'); 
    header("Location: form.php "); 
    exit; 
} 

리틀 바비 테이블

2

사용 empty 기능 :

if (empty($_POST['query'])) { 

    // Set error and return to form 

} 

고도mysql_real_escape_string을 읽을 것을 제안합니다.

+0

나는 또한 데이터를 위생 처리하는 것에 관해서 @Jesse에 동의한다. +1 –

+0

URL 입력의 문맥에서 이것이 실제적인 문제가 될 위험은 거의 없지만'empty()'는 그 이름에도 불구하고 특별히 좋은 방법은 아니다. 빈 문자열이 있는지 확인하십시오. –

+0

@JohnFlatness - 그건 중요하지 않습니다. 작은 위험은 위생을위한 충분한 이유입니다. 'empty() '와 마찬가지로 빈 문자열을 확인하는 좋은 방법입니다. 왜? 1) 그것은'isset()'에 대한 필요성을 제거하고 2) 그것이 OP의 질문의 맥락에서 잘못 되었기 때문에 틀린 것으로 판단 할 수있는 것들을 제거합니다. –

관련 문제