2010-08-06 4 views
2

사용자가 틀린 암호를 입력 했으므로 필드에 사용자 이름을 보관하고 싶다면 어떻게해야 사용자가 사용자 이름을 다시 입력 할 필요가 없습니까? 이 세션을 사용해야합니까?PHP : 필드에 사용자 이름 유지하기

+0

경우? –

+0

@Srinivas Reddy Thatiparthy : 필드에서 사용자 이름을 유지하는 것은 널리 사용되는 것으로 생각합니다. 사용자 이름이 틀리면 사용자가 편집합니다. –

+0

@felix kling : 지금 Gmail에서 보았습니다. 감사합니다! –

답변

2

는 그냥 필드에 값을 전달합니다

<input name="uid" value="<?php echo (isset($_POST['uid'])) ? $_POST['uid'] : ''?>" /> 

먼저 사용자 입력을 소독하는 것을 잊지 마십시오! (내 예제가 좋지 않지만 올바른 아이디어를 줄 수 있어야합니다.).

하지만 오류 메시지에주의하십시오. 암호가 잘못되었다고 말하지 마십시오. 암호 또는 사용자 이름이 잘못 되었음입니다. 특정 사용자 이름이 시스템에 등록되었다는 것을 다른 사람에게 알리고 싶지는 않습니다 (최소한 로그인하지 않아도 됨).

+0

좋은 아이디어 감사합니다. "사용자 입력 먼저 소독"이란 무엇을 의미합니까? – Karem

+0

왜 if 문을 쓰는 것이 더 짧을 때 삼항 연산자를 사용합니까? 이 유형의로드에서는로드를 사용했지만 언젠가는 클릭하면 실제로 더 많은 코드를 작성했습니다. – Luke

+2

@ 루크 :이 경우 차이는 6 자입니다. 나는 그걸로 살 수 있습니다.) HTML과 PHP를 혼합 할 때 이런 식으로 제어 구조를 사용하는 것을 좋아하지 않습니다. 삼항 연산자를 사용하면 하나의 문장처럼 느껴집니다. @Karem : 예 : 스크립트 코드 또는 깨진 HTML (또는 적어도 브라우저에서 해석되지 않도록이 항목을 이스케이프 처리). 사용자 이름은 다시 인쇄해도 안전해야합니다. –

0

예를 같은 페이지에하지만 PHP는 handeling 스크립트에 게시하지 않은 경우 당신은 확인 다음

<input type="text" value="<?php if isset($_SESSION['sticky']['username']) echo $_SESSION['sticky']['username'] ?>" name="username" /> 
+0

-1 아니요 유효성 검사 –

+0

유효성 검사를하지 않는다는 의미는 무엇입니까? 데이터를 저장하지 않고 원래의 포스터가 사용자 이름을 다시 얻는 방법에 대해서만 유효성 검사를 요청하지 않았습니다. 수행해야 할 유효성 검사가 있습니까? – Luke

+0

아, 죄송합니다. t notice $ _SESSION. 내 투표를 철회 할 수 있도록 편집 할 수 있습니까? –

0

로 돌아가 페이지에서 $_SESSION['sticky']['username'] = $_POST['username'] 같은 세션 변수를 사용할 필요가 있는지 $ _POST [ 'username'] 데이터가 먼저 유해하지 않습니다.

<input name="username" type="text" value="<?php echo $_POST['username'] ?>" /> 
+0

유형이 텍스트 일 ​​때, 텍스트 상자는 Luke

0

는 그냥 인쇄이 하나

세션 변수를

$_SESSION['username'] = $_POST['username']; 


<input type="text" name="username" value="<?php echo $_SESSION['username']; ?>" /> 
+0

이 wo 사이트/세션 시간 초과에 처음 방문한 경우 $ _SESSION [ 'username']이 설정되지 않은 경우 uld가 오류를 생성합니다. – Luke

0

를 사용하려고 :

사용자 이름 자체가 잘못된 것입니다
<input name="username" type="text" value="<?php echo htmlspecialchars($_POST['username']) ?>"> 
관련 문제