2013-08-15 3 views
0
$message=$this->filter($_POST['suggestion']); 

protected function filter($mail) 
{ 
    if(strpos($mail,"<") !== false) 
    { 
     $mail = "message entered is invalid"; 
    } 
    else 
    { 
     $mail = $mail; 
    } 

    return $mail; 
} 

여기에 잘못된 것이 있습니다. 그러나 $_POST["suggestion"]에 "<"이 포함되어 있으면 미리 정의 된 메시지가 반환됩니다. 작동하지 않습니다. "<"이 포함되어 있는지 여부에 관계없이 항상 동일한 메시지를 반환합니다.문자 제거를 시도 중

<? 
function filter($mail) 
{ 
    if(strpos($mail,"<")!==false) 
    { 
     $mail="message entered is invalid"; 
    } 

    return $mail; 
} 

echo filter("something"); 
echo filter("some < thing"); 
?> 

DEMO

당신은 else 부분이 필요하지 않습니다 :

+0

이 모든 코드인가? 그것이 그대로 있기 때문에 몇 가지 오류가 있습니다. 당신은 OOP에 익숙합니까? –

+0

첫 번째 줄 위에 var_dump ($ _ POST [ 'suggession'])를 수행하고 값이 무엇인지 확인하십시오. 고집은 정확하게 쓰여진 것이 아니지만 어쩌면 코드가 – bumperbox

+0

예일뿐입니다. 내 철자법에 끔찍한 말이지요. 정말로 당신이하고있는 걸 볼 수 있도록 모든 코드를 그 코드에 게시하려고합니다. –

답변

0

당신이 사용할 수는 preg_match

function filter($mail) 
{ 
    if(preg_match("/</", $mail)) 
    { 
     $mail="message entered is invalid"; 
    } 

    return $mail; 
} 

http://php.net/manual/en/function.preg-match.php

+0

사실 더 빠른 방법을 사용하고 싶었지만 이것이 내 자신과 다른 유일한 대답이기 때문에 진드기가 붙습니다 –

+0

preg_match는 주로 정규식을 사용해야 할 때입니다 – James

+0

@alex_zander :이 기능을 사용하는 것이 더 빠릅니다! –