소스 분석 좀 부탁 드려요~

소스 분석 좀 부탁 드려요~

QA

소스 분석 좀 부탁 드려요~

본문

<?php

if(!$is_parent){
 header('Content-type: text/html; charset=utf-8');
 echo "정상적인 접근이 아닙니다.";
 exit();
}

 

(위 if문에 들어간 $is_parent 값이 참이면 정상적인접근이아닙니다를 출력하고

나가는 것이죠? 근데 $is_parent 값이 뭐하는 것인가요?

그리고 이런 코드는 왜 쓰는 것일까요?)

 

그리고 아래 POST로 가져오는 쿼리값 중에서

$mb_sex         = isset($_POST['mb_sex'])           ? trim($_POST['mb_sex'])          : "";

이렇게 작성되는 소스는 도저히 이해가 안가는데요.

이게 무슨 기능을 하는 것일까요?

그리고 $mb_sex 이 변수에 입력되는 값을 도저히 알 수가없어서

여성 회원 가입시 액션을 취할 소스를 작성도 못하고있네요.

좀 도와 주시면 감사하겠습니다 ^^

 

$mb_id          = trim($_POST['mb_id']);
$mb_password    = trim($_POST['mb_password']);
$mb_name        = trim($_POST['mb_name']);
$mb_nick        = trim($_POST['mb_nick']);
$mb_hp       = isset($_POST['mb_hp'])          ? trim($_POST['mb_hp'])         : "";
$mb_sex         = isset($_POST['mb_sex'])           ? trim($_POST['mb_sex'])          : "";
$mb_age         = isset($_POST['mb_age'])           ? trim($_POST['mb_age'])          : "";
$mb_addr1       = isset($_POST['mb_addr1'])        ? trim($_POST['mb_addr1'])          : "";
$mb_addr2       = isset($_POST['mb_addr2'])         ? trim($_POST['mb_addr2'])        : "";
$mb_addr3       = isset($_POST['mb_addr3'])         ? trim($_POST['mb_addr3'])        : "";
$mb_jobs        = isset($_POST['mb_jobs'])          ? trim($_POST['mb_jobs'])        : "";
$mb_edu_level   = isset($_POST['mb_edu_level'])     ? trim($_POST['mb_edu_level'])      : "";
$mb_tall        = isset($_POST['mb_tall'])          ? trim($_POST['mb_tall'])        : "";
$mb_kg        = isset($_POST['mb_kg'])          ? trim($_POST['mb_kg'])         : "";
$mb_character       = isset($_POST['mb_character'])            ? trim($_POST['mb_character'])     : "";
$mb_religion        = isset($_POST['mb_religion'])              ? trim($_POST['mb_religion'])      : "";
$mb_drink        = isset($_POST['mb_drink'])            ? trim($_POST['mb_drink'])        : "";
$mb_cigarette       = isset($_POST['mb_cigarette'])           ? trim($_POST['mb_cigarette'])     : "";
$mb_marry        = isset($_POST['mb_marry'])            ? trim($_POST['mb_marry'])        : "";
$mb_hobby        = isset($_POST['mb_hobby'])            ? trim($_POST['mb_hobby'])        : "";
$mb_profile        = isset($_POST['mb_profile'])            ? trim($_POST['mb_profile'])       : "";
$mb_body_type       = isset($_POST['mb_body_type'])           ? trim($_POST['mb_body_type'])     : "";
$mb_account        = isset($_POST['mb_account'])            ? trim($_POST['mb_account'])       : "";
$mb_account_name    = isset($_POST['mb_account_name'])           ? trim($_POST['mb_account_name'])  : "";
$mb_account_bank    = isset($_POST['mb_account_bank'])           ? trim($_POST['mb_account_bank'])  : "";

$mb_hope_age          = isset($_POST['mb_hope_age'])           ? trim($_POST['mb_hope_age'])     : "";
$mb_hope_addr1        = isset($_POST['mb_hope_addr1'])         ? trim($_POST['mb_hope_addr1'])   : "";
$mb_hope_addr2        = isset($_POST['mb_hope_addr2'])         ? trim($_POST['mb_hope_addr2'])       : "";
$mb_hope_addr3        = isset($_POST['mb_hope_addr3'])         ? trim($_POST['mb_hope_addr3'])       : "";
$mb_hope_jobs         = isset($_POST['mb_hope_jobs'])          ? trim($_POST['mb_hope_jobs'])        : "";
$mb_hope_edu_level       = isset($_POST['mb_hope_edu_level'])     ? trim($_POST['mb_hope_edu_level'])   : "";
$mb_hope_tall         = isset($_POST['mb_hope_tall'])          ? trim($_POST['mb_hope_tall'])        : "";
$mb_hope_kg        = isset($_POST['mb_hope_kg'])            ? trim($_POST['mb_hope_kg'])        : "";
$mb_hope_body_type       = isset($_POST['mb_hope_body_type'])     ? trim($_POST['mb_hope_body_type'])   : "";
$mb_hope_character       = isset($_POST['mb_hope_character'])     ? trim($_POST['mb_hope_character'])   : "";
$mb_hope_religion        = isset($_POST['mb_hope_religion'])      ? trim($_POST['mb_hope_religion'])    : "";
$mb_hope_drink         = isset($_POST['mb_hope_drink'])         ? trim($_POST['mb_hope_drink'])       : "";
$mb_hope_cigarette       = isset($_POST['mb_hope_cigarette'])     ? trim($_POST['mb_hope_cigarette'])   : "";
$mb_hope_marry         = isset($_POST['mb_hope_marry'])         ? trim($_POST['mb_hope_marry'])       : "";
$mb_hope_hobby         = isset($_POST['mb_hope_hobby'])         ? trim($_POST['mb_hope_hobby'])       : "";

$sql_mb_password = "mb_password = password('".$mb_password."'),";
//if ($mb_password == "") $sql_mb_password = "";

이 질문에 댓글 쓰기 :

답변 3

필드명 보니까 무슨 미팅?관련 홈페이지 회원가입단의 update 단 같은데요..

 

1. 헤더부분은 설계한 가입경로가 아닌 페이지에서 가입하는 경우를 막을려고 하는거 같구요

 

2. 그누보드에서 $mb_sex 는 보통 M이나 F값으로 되어있긴합니다만..

근데 필드가 이미 그누보드 기본 필드들은 아니라서...

저 post받기전 페이지를 한번 확인 해 보셔야 할것 같습니다. 

 

$mb_sex         = isset($_POST['mb_sex'])           ? trim($_POST['mb_sex'])          : "";

※ isset 변수값의 유뮤를 판단하는겁니다.

※ trim 변수값의 앞뒤 공백을 없애는겁니다.

※ 삼항연산자로 형식 = 조건문 ? 조건이 true일때 : 조건이 false일때 식으로 표현합니다.

 

$mb_sex변수는  

$_POST['mb_sex']가 있으면 $_POST['mb_sex']의 앞뒤공백을 없앤 값이고

$_POST['mb_sex']가 없으면 빈값이다.. 라고 읽으시면 될것 같습니다

 

 

감사합니다.
if 문의 단축문 같은 것이군요.
mb_sex 값이 존재하면 양쪽 공백을 잘라내고 순수 문자값만 대입하고,
값이 없으면 널값을 넣는 문장이군요.
그런데 위 표현 소스처럼 굳이 저렇게 많은 공백을 넣고 코딩을해야되는 것은 아니죠?
.
그리고 디비에는 "F" or "M" 으로 저장되기는 하는데요.
앱에서 from 문으로 전송하는 값은 분명 "F","M" 아니더군요.
제가 코드 수정을 해볼려고 "F"와 "M"값을 조건문에 넣어서
시도해보았지만 둘다 조건문에서 적용이 안돼더라구요.
아마도 다른 문자값이 들어온 후에 디비에 저장할 때 "F" 또는 "M"으로
변환해서 저장하는 것같습니다.

제가 수정하려는 것은요.
여성으로 가입 요청이 들어오면 가입을 보류하고 앱에 특정 메세지를 띄우고자
그러는 것인데요. mb_sex 값을 몰라서 계속 실패를하고있네요. ㅎ
제가 PHP 배운지 몇일 안돼서요. ㅜㅜ

@꿈을끼우는나무 공백을 넣어기 때문에 저걸 쓰는게 아니라 혹시나 공백이 있을 데이터의 오차를 없애기 위해서 정도라고?? 좋은 코딩습관으로 저는 인지하고 있습니다.;저도 비전공자라 딥한 부분까진 설명은 못드리지만 암튼 나쁘지 않는것이라 저같은경우는 될수 있으면 따라할려고 합니다 
 
1. 정확한건 소스를 보고 이야기 해야 겠지만 일반적 오류로 mb_sex 필드값을 가지고 있지 않는 경우도 많습니다. if($member['mb_sex'] == "F"){  } 식으로 할때 $member에 mb_sex값자체가 없는경우도 있기에 조건식 만들 페이지에 먼저 echo로 mb_sex가 제대로 들어오는지를  먼저 찍어보시는게
....

2. 차라리 여성일때 띄울려는 메시지 관련 소스를 질문하시면 보다 고수분들이 좀 더 명확하게 도와주시기 않을까 싶습니다..

답변을 잘 달아주셨네요

$is_parent는 메인-서브페이지관계에서 메인에서 서브로 들어오지 않고 바로 서브로 다이렉트로 

들어오는걸 방지할목적으로 부모창에서 플래그값을 받아들여 체크하는것입니다.

 

isset 의경우는 값이 없는경우를 null인경우도 처리를 해주어 에러를 제거하주는것입니다.저게없으면

값이 없다고 에러가 날것입니다. null은 체크를 못하거든요

 

도움이 되셧기를 

아 그렇군요. 알려 주셔서 감사합니다.
그렇다면 $is_parent 에 들어있는 값은
이 페이지의 이 전 페이지에서 값을 설정한 상태겠군요.
그런데 페이지에서 페이지로 변수값을 전달 안했는데도 적용되는 것은
PHP에서도 페이지간 공유하는 광역변수가 존재하기 때문인가요?

아시는것처럼 skin타입으로 하부가 include형태로 바뀌고있어서 실제로는 하나의 부모에 같이잇는 개념이라 global은 아니지만 실제로 하나의 페이지에 메모리상에 fetch가 같이 되어있는 개념입니다

 

메모리에 입력된 변수를 가져다 쓰는 개념입니다. 

답변을 작성하시기 전에 로그인 해주세요.
전체 7
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT