2011-11-03 3 views
-1

내 사이트의 등록 페이지에서 작업 중이며 사용자가 사용자 이름을 입력 할 수 없도록 사용자 이름 필드의 서식을 지정하고 싶습니다. 예를 들어 사용자가 "space man"과 같은 사용자 이름을 제출하면이를 "space_man"으로 변경하려고합니다. PHP로 작업하고 있습니다. 어떻게해야합니까?문자열의 공백 확인

+1

들이 시도 "공간 사람" –

+0

로그인 할 수 없을 것이다 그러나 항상 오류가 발생 URL의 URL과 공간에서 사용자 이름을 사용하여 갈거야으로 좋은 생각이 아니다 – MrFoh

+1

공간에 문제가없는 URL을 알고 있으면 어떻게 처리해야하는지 알 수 있습니다. 어쨌든, 당신은 공간을 "확인"하는 법을 묻고 있습니다, 그리고 그것은 옳은 의도였습니다. 불법 문자를 사용자에게 경고하는 것은 침묵을 대체하는 것보다 낫습니다. –

답변

0

음의 가장 좋은 방법 중 하나는 클라이언트와 서버 모두에서 유효성을 검사하는 것입니다.

클라이언트에서 자바 스크립트를 사용하여 유효성을 검사해야합니다.

obj.value.replace(" ", "_"); 
alert("Invalid username. Changing space to underscore."); 

PHP는 너무 서버 측에서 같은 일을 할.

strstr($_POST['username'],' ','_'); 

"공간"이 중요한 경우에만 수행 할 수 있습니다. 그렇지 않으면 모든 규칙을 작성해야합니다. 변경

-3

http://www.php.net/str_replace을 (를) 보시기 바랍니다. 거기에서 알아낼 수있을 것입니다. 물론 유효성 검사를 원하는 것보다 더 많은 것들이 있으므로 정규식과 같이 화이트리스트 필터링 (허용하지 않는 것이 아니라 허용하는 것)을하는 것이 좋습니다.

if (! preg_match('/^[a-z0-9]{3,32}$/', $_POST['username'])) { 
    die('Invalid username'); // of course, dying is not good either, just for the example 
} 
+3

downvoted 사람은 이유를 줄 수 있습니까? 나는 정말로 내 대답에 어떤 문제가 있는지 배우고 싶다. – deviousdodo

0

str_replace(' ','_',$input);

+0

정말 관심이 무엇입니까이 함수 – k102

0

그것은 간단한 문자열 교체의 :

$username = str_replace(" ", "_", $username); 
0

나는 확실히 strtr 감사 :

strtr($_GET['username'],' ','_'); 

그것은 분명, 작품도 너무

strtr($_GET['username'],array(' '=>'_',"\t"=>'_')); 

, 않는 str_replace 꽤 강력합니다.

0
str_replace(' ', '_', $txtUserName); 
+0

누가 downvote 줄래? 답이 무엇이 잘못 되었습니까? –

관련 문제