2014-04-17 4 views
0

$ 게시가 비어있는 이유는 무엇입니까?빈 게시물 인 경우 왜 작동하지 않습니까?

if (isset($_GET['profil_refresh'])){ 
if($_SERVER['REQUEST_METHOD'] == 'POST') { 
    if (!empty($_POST["fullname"])) 
    {echo "fullname is required";} 
// ------------------------ 
    if (!empty($_POST["email"])) 
    {echo "Email is required";} 
// ------------------------ 
    if (!empty($_POST["fb"])) 
    {echo "varos is required";} 
// ------------------------ 
    if (!empty($_POST["age"])) 
    {echo "kor is required";} 
// ------------------------ 
    if (!empty($_POST["aboutme"])) 
    {echo "rolad is required";} 
} 

$loginid = $_SESSION['loginid']; 
$hash = $_SESSION['hash']; 
$id = $_SESSION['id']; 
$user = $_POST['user']; 
$email = $_POST['email']; 
$fullname = $_POST['fullname']; 
$fb = $_POST['fb']; 
$age = $_POST['age']; 
$aboutme = $_POST['aboutme']; 


mysql_query("UPDATE zl SET email='" .$email. "', fullname='" .$fullname. "', 
fb='" .$fb. "', age='" .$age. "', aboutme='" .$aboutme. "', adatok='OK' WHERE loginid='" .$loginid. "'") 
or die(mysql_error()); 
header("Location: accindex.php"); 

} 

무엇이 문제인지는 알 수 없습니다. 먼저 사용자가 그의 세부 정보를 입력하면이 코드가 mysql에서 검사되고 업데이트됩니다. 그러나 기능은 아닙니다.

답변

3

변경 !empty($_POST['...'])에서 empty($_POST['...'])으로 변경하십시오.

지금 말 하시겠습니까? fullname이 아니고이 아닌 경우 "fullname is required"오류를 반환하십시오.

1

논리가 거꾸로입니다. empty() 앞에 ! 연산자를 입력하면 "이 변수가 비어 있지 않은 경우"라고 표시됩니다. 이것은 당신이 원하는 것과 반대입니다.

변화 :

if (!empty($_POST["fullname"])) 

에 :

if (empty($_POST["fullname"])) 

이 수표의 모든 empty()를 사용하여이 작업을 수행합니다.

Please, don't use mysql_* functions in new code. 그들은 더 이상 유지되지 않습니다 and are officially deprecated. red box을 참조하십시오. prepared statements에 대해 자세히 알아보고 PDO 또는 MySQLi - this article을 사용하면 어떤 결정을 내리는 데 도움이됩니다. PDO를 선택하면 here is a good tutorial.

다시 작동하지 않습니다 또한 SQL injections 내가 변경

+0

에 활짝 열려 있지만 : S – user3546527

관련 문제