2013-04-28 7 views
1

저는 여전히 PHP의 초보자이며 논리적 연산자 인 & &에 약간의 문제가 있습니다. 두 텍스트 상자 인 토큰 및 비밀 응답 스크립트가 있습니다. 사용자가 토큰을 제출하고 대답하면 스크립트가 데이터베이스로 이동하고 모든 검사가 취소되면 (오류 메시지 등) 다음 단계 (새 암호 입력)로 이동합니다. 실제 스크립트는 내 라이브 사이트에서 잘 작동하지만 어떤 이유로 내 컴퓨터에서 로컬로 작동하지 않습니다. (약간의 편집증 환자가 정직하게 처리되었지만 100 % 안전하지 않은 경우를 대비하여).논리 연산자 (&&)가 로컬에서 로컬로 작동하지 않습니다.

if(isset($uid) && isset($uidTwo)) { 
      header('Location: reset.php'); 
      exit(); 
     } 

는 $ UID 저장 사용자 데이터베이스에서 users_id하고 $ uidTwo 상점도의 하나로서 USER_ID 한 응답 데이터베이스에서 tables_id (: 코드의이 비트에 스크립트 포인트를 테스트의 많은 그것의 주요 란). 두 항목이 일치하면 (True) 스크립트는 재설정 페이지로 이동합니다.

나는 많은 테스트를 수행하여 & &을 || 작동하는 것처럼 보이고 다음 페이지로 처리하지만 그 방법은 토큰 상자에서만 작동하며 예를 들어 (ftgyhh)와 같은 응답 상자에 아무 것도 입력 할 수 있으므로 좋지 않습니다.

오류 메시지가 있기 때문에 이미 보낸 편지함을 확인했지만 아무 것도 스크립트에 대해 로컬로 작동하지 않는 것 같습니다.

아무도 내가 놓칠 수있는 아이디어가 있습니까?

EDIT : var_dump가 $ uidTwo에 있었고 NULL이라는 것을 알았다면 데이터베이스 쪽일 수 있다는 것을 알았습니다. 그래서 이전 버전의 데이터베이스를 가져 와서 발견했습니다. 이 스크립트는 이제 로컬에서 작동하지만 데이터베이스 sql 파일을 전후로 읽는다면 내가 잘못한 것을 볼 수 없습니다. 오, 이런 것들이 우리를 시험해 볼 수있는 곳입니다. 귀하의 모든 도움을 환호하는 사람들

+2

'$ uid'와'$ uidTwo'를 설정하는 코드를 보여줄 수 있습니까? – Ryan

+0

예, $ uid에 대한 코드는 다음과 같습니다 : list ($ uid) = mysql_fetch_array ($ result); $ uidTwo에 대해서도 동일합니다. – bluefiredragon

+0

힌트 : isset은 여러 변수를 검사 할 수 있으므로 논리 연산자가 필요하지 않습니다. PHP Manual [isset()] (http://php.net/manual/de/function.isset.php) – SirDerpington

답변

3

. 참고로, 당신은 할 수 있습니다 :

if (isset($uid, $uidTwo)) { 
    header('Location: reset.php'); 
    exit(); 
} 

을 대신 & &를 사용.

나는 헤더 전에

echo $uid ? "Uid is set" : "Uid is not set"; 
echo $uidTwo ? "Uid2 is set" : "Uid2 is not set"; 

그런 짓을하고 나는 그들이해야한다고 생각하지 어떤 때까지 다시 내 방식으로 작업을 시작합니다.

+0

이것은 &&보다 효과적입니다. 포스트 메이트의 환호 – bluefiredragon

0

isset() 변수가 존재하는지 확인합니다. 당신은 아마 변수에 값이 포함 된 경우 다음과 같이 볼 수 empty()를 사용하려면 : 충분한 정보 대답을 여기에 없다

if(empty($uid) && empty($uidTwo)) { 
     header('Location: reset.php'); 
     exit(); 
}