728x90


자바스크립트와 마찬가지로 클라이언트뿐 아니라 서버측에서 쿠키 설정이 가능합니다. php에서 쿠키를 설정 및 사용하는 방법에 대하여 알아볼려합니다.



# PHP에서 쿠키(cookie) 사용하는 방법먼저 아래는 쿠키를 설정하기 위해 필요한 설정 및 사용방법입니다. 참고로 클라이언트측과 서버측 모두 쿠키를 설정할 수 있지만 설정값 모두 저장되는 곳은 클라이언트의 브라우저입니다. 서로 다른 값들이 저장되는 것이 아니라는 점 알아두세요.)

setcookie (쿠키명, 쿠키값, 만료시간, 경로, 도메인, 보안, httponly);


이때 설정 가능한 옵션값들을 자세히 알아보면 아래와 같습니다.

-----

  • 쿠키명(필수) : 설정 될 쿠키 이름을 결정함
  • 쿠키값(선택) : 쿠키 이름에 입력될 값
  • 만료시간(선택) : Default 값은 0이며 쿠키가 유지될 시간을 설정
  • 경로(선택) : 경로를 지정할 경우 특정 위치와 하위 경로에서만 사용가능하도록 설정됨
  • 슬러쉬(/) : 슬러쉬 기호를 값으로 입력할 경우 전체 경로에서 사용됨을 의미
  • 도메인(선택) : 사용될 도메인을 지정가능함. 서브도메인 입력시 해당 서브도메인만 사용가능
  • 보안(선택) : 보안 프로토콜인 https에서만 사용가능하도록 설정함
  • httponly : HTTP에서만 사용가능하도록 하여(서버단 언어로만...) 스크립트에 의한 쿠키 접근을 허용안하게 함.

-----

위 값에서 만료시간은 초단위로 추가해주면됩니다. 예를 들어 현재시간에서 한시간 또는 하루 뒤에 쿠키값을 만료할 경우 만료시간에 아래와 같이 사용합니다. 아래에서 알아보세요.


! PHP 쿠키 설정시 시간에 대하여 처리하는 방법i. 한시간 : 60 * 60 = 3,600 이므로 아래와 같이 설정 가능합니다.

time() + 3600  //  한시간을 쿠키값으로 설정


ii. 하루 (24시간) : 60 * 60 * 24 = 86,400이므로 아래와 같이 설정 가능합니다.

time() + 86400 // 24시간, 하루를 쿠키값으로 설정





! 쿠키함수 setCookie() 예제보기

아래 예제는 쿠키함수에 실제 원하는 쿠키 시간을 설정한 예제입니다. 예제에서는 한 시간 그리고 한달 예제 코드입니다.

<?php
  setcookie('쿠키명', '쿠키값', time() + 3600);
  // 1시간 뒤에 만료될 쿠키값 설정하기

  setcookie('쿠키명', '쿠키값', time() + 86400 * 30);
  // 한달 뒤에 만료될 쿠키값 설정하기, 하루 86400 * 30(한달 30일 기준)
?>


그렇다면 쿠키값을 새롭게 업데이트하거나 읽어올 경우 어떻게 할까요? 이 경우 $_COOKIE['쿠키명']을 사용합니다. 그럼 아래 예제를 확인해보세요.

만약 testCookie라는 쿠키값이 설정된 경우 설정된 값을 확인하는 방법입니다.

<?php
  echo $_COOKIE['testCookie'];
  // 쿠키명 testCookie의 설정 값 출력하기
?>


이처럼 쿠키가 설정된 경우 이 값을 가져와 간단히 확인할 수 있습니다.



# 쿠키값 삭제 또는 만료하기

사용되는 쿠기값을 중단시키기 위해 삭제 및 만료하는 방법입니다. 똑같은 setcookie() 함수를 사용하되 해당 쿠키명의 시간에 마이너스값을 입력하거나 unset() 함수를 사용하여 쿠키를 삭제 및 중단 되도록 바꿉니다.

! 쿠키값 삭제 예제보기
아래는 testCookie라는 값을 삭제하는 예제코드입니다. 아래의 두 가지 방법 모두 동일하게 동작하여 쿠키값을 제거합니다.

<?php
  unset($_COOKIE["yourcookie"]);setcookie('testCookie', '', time() - 1);
  // 쿠키명 testCookie 사용불가, 만료됨
?>


참고로, 뒤에 설정한 -1보다 마이너스 값이 더 크면 삭제됩니다. -1000 역시 값을 삭제하는 건 동일합니다.



# 쿠키 설정 에러 setcookie() 정상동작 안하는 경우만약 setcookie()로 설정하였으나 정상적으로 동작하지 않을 경우 확인할 사항은 아래 두 가지를 확인해보세요. 대체적으로 아래 이슈를 해결시 쿠키 사용이 가능합니다.

첫째, setcookie() 설정 이전에 HTTP 방식이 아닌 browser 상에서 출력이 있어는지 확인
다시 말해, echo문이나 다른 것을 통해 어떤식으로는 setcookie() 함수 이전에 화면에 출력이 있으면 안됩니다!출력이 있는 경우 쿠키 사용이 불가능합니다.

두번째, setcookie()의 경로설정이 되어 있는지 확인
예를 들어 쿠키를 설정하는 위치가 '/a/b/'인 경우 '/a/' 경로에서는 쿠키 사용이 가능하지 않을 수 있습니다. 즉, 쿠키를 설정한 현재 페이지의 reference를 참고한다는 것입니다. 제 경우 setcookie() 뒤의 매게변수의 경로값에 '/'를 설정한 이후 정상동작하였습니다.

여기까지 php에서 쿠키를 사용하는 다양한 방법을 알아보았습니다.

728x90

2014/08/11 - [DB/MSSQL] - MS-SQL 시퀀스 identity 생성 및 초기화하기


2014/08/11 - [DB/Oracle] - 오라클(Oracle) sequence 생성, 등록, 최종 시퀀스값 조회하기


1. MySQL 시퀀스 생성하기

CREATE TABLE test_board(
  seq INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  title VARCHAR(20) NOT NULL
);

INSERT INTO test_board(title)
VALUES('hello');

INSERT INTO test_board(title)
VALUES('hello2');

INSERT INTO test_board(title)
VALUES('hello3');


위와같이 실행후 SELECT문 실행





확인결과 title 컬럼에만 데이터를 insert 하였는데 seq 컬럼은 자동적으로 값이 증가 하여 

insert 되는것을 확인 할 수 있었다.

위와같이 자동으로 컬럼의 숫자값을 일정하게 증가하고 싶다면 auto_increment 를 시퀀스로 사용할 컬럼에 지정을 해주면 된다.

그럼 이제 모든 데이터를 지우고 다시 같은 insert 쿼리를 동작 후 똑같이 조회를 해보도록 하자 


delete from test_board;

INSERT INTO test_board(title)
VALUES('hello');

INSERT INTO test_board(title)
VALUES('hello2');

INSERT INTO test_board(title)
VALUES('hello3');

데이터를 지우고 다시 같은 내용의 insert 구문을 넣어주었다

다시한번 데이터 조회를 해보도록 하자




위와 같이 seq가 지워진 시퀀스 값에 이어서 자동 증가하는 현상이 발생하였다.


물론 중복이 되지 않으므로 상관은 없으나 모든 데이터를 삭제 후 시퀀스값을 초기화 하길 원할때가 

있으므로 시퀀스를 초기화 해주기로 해보자


2. MySQL 시퀀스 초기화


시퀀스 초기화 하고자 할 경우는 하단의 명령어를 주면 간단하게 시퀀스값이 초기화가 된다.

alter table test_board auto_increment=1;

위와같이 alter table 후 test_board(시퀀스컬럼을 초기화 하고자 하는 테이블명) 을 지정 후 auto_increment=1(자동증가값 update를 해준다)

그럼 초기화가 정상적으로 되는지 임의의 시나리오를 작성하도록 하자


1) test_board의 데이터 모두 delete

2) 시퀀스 초기화 작업(alter table xxx auto_increment=x)

3) 다시한번 insert 쿼리 

4) select 구문을 통화 데이터 확인


위와같이 시나리오를 실행한 결과 다음과 같이 시퀀스 컬럼이 초기화 된 후, 

자동증가하여 컬럼에 추가되는것을 확인 할 수 있었다.






슈퍼맨슈퍼맨슈퍼맨



도움이 되셨다면 공감클릭! 궁금하신점은 댓글!!



출처: http://roqkffhwk.tistory.com/136 [야근싫어하는 개발자]

출처: http://roqkffhwk.tistory.com/136 [야근싫어하는 개발자]

출처: http://roqkffhwk.tistory.com/136 [야근싫어하는 개발자]

출처: http://roqkffhwk.tistory.com/136 [야근싫어하는 개발자]

출처: http://roqkffhwk.tistory.com/136 [야근싫어하는 개발자]

출처: http://roqkffhwk.tistory.com/136 [야근싫어하는 개발자]

출처: http://roqkffhwk.tistory.com/136 [야근싫어하는 개발자]

출처: http://roqkffhwk.tistory.com/136 [야근싫어하는 개발자]

출처: http://roqkffhwk.tistory.com/136 [야근싫어하는 개발자]

728x90
<script> 
function submit(login){ 
  form.submit();  

</script> 

폼부분은 이렇습니다. 
<form name=login method=post action=login_process.php>  -------------> method는 get으로도 해봤습니다. 

<input name="login_button" type="image" src="login_button.gif" border="0" onclick='javascript:submit(this.form);window.close();opener.document.location.reload();'  > 

opener.document.location.reload(); --------------------> 아래는 요부분에 넣어본것들 
//opener.parent.location.reload(); 
//opener.document.location.reload('main.php'); 
//opener.parent.location.reload('main.php'); 
//opener.location.replace('main.php'); 
//opener.location.reload('main.php'); 
//opener.location.reload(); 
//opener.window.location.reload(); 

스크립트 게시판에서 이렇다할 답변이 없어서요. 이런식으로 세션값 표시하는 분들이 여기에 더 많이 계실것 같아서 질문 올리네요.부디 php소스 없어서 게시판 잘못찾아왔다고 탓하지 마시고 답변 기다릴께요. 

자식창에서 로그인버튼 누르면 window.open으로 창이 열리고 
 1...로그인처리를 하고 
 2...자식창을 닫고 
 3...부모창을 새로고침해서 
 4...부모창의 상단에 세션값을 표시한다 

1,2는 되고요, 3은 reload는 하는것 같은데(화면이 창뜰때 처럼 잠깐 한번 깜빡임) 세션값이 표시가 안돼고요 4는 수동으로 브라우져의 새로고침을 눌러야 표시되네요. 

제가 많이 초보인지라 쉬운 설명과 가르침 부탁드릴꼐요.
  • 답변채택율 100%
  • 추천 0
  • 비추천 0

전체댓글수 4

  • 기술레벨커뮤니티레벨공대여자 06-06-30 13:25 

    소스보기

  • <input name="login_button" type="image" src="login_button.gif" border="0" onclick='javascript:submit(this.form);window.close();opener.document.location.reload();'  > 
    -> 
    처리 순서 때문입니다. 
    1.submit(this.form); 
    ----------=---------- 
    1을 처리합니다. page가 login_process.php 로 바뀝니다. 
    페이지가 나뀌니 JS함수는 더이상 진행되지 않습니다. 
    솔찍히 진행 된다면, 아마 딜레이 타임 때문이겠죠. 
    ---------=---------- 
    원하는데로 하실려면, 
    2.window.close(); 
    3.opener.document.location.reload();를 
    login_process.php에서 실행하시면 됩니다.
  • 기술레벨커뮤니티레벨이크 작성자 06-06-30 14:14 

    소스보기

  • 아...............됩니다 되요!!!! 
    공대여자님 너므너므 감사드립니다~~~ 
    echo("<body onLoad=javascript:window.close();opener.document.location.reload();> "); 
    이렇게 했는데요. 더 좋은 방법이 있으면 알려주세요~
  • 기술레벨커뮤니티레벨공대여자 06-06-30 14:40 

    소스보기

  • echo("<body onLoad=javascript:window.close();opener.document.location.reload();> "); 
    -> 
    echo("<body onLoad='opener.document.location.reload();window.close();'> "); 

    이벤트에는 javascript:를 붙일 필요가 없습니다. 
    1.window.close(); 
    2.opener.document.location.reload(); 
    2번이 먼저 실행되야합니다. 
    이유는 1번이 실행되면 창이 닫히는데, 그러면 다음게 실행안되죠. 
    (라고하지만... 엄격하지 않아서..)
  • 기술레벨커뮤니티레벨이크 작성자 06-07-01 13:13 

    소스보기

  • 자세하고 친절한 설명에 너무 감사드려요~~ 열심히 해서 척척 해나가는것이 답변에 대한 보답이겠죠..그럼 건강하세요~


'WEB' 카테고리의 다른 글

[PHP] setcookie, unset  (0) 2018.02.18
MySQL 시퀀스 생성하기  (0) 2018.02.14
[tradingview] Dividing candlesticks. #2072  (0) 2018.02.07
[PHP] Parsing  (0) 2018.02.05
[PHP] number with comma  (0) 2018.02.05
728x90

cheekyxy commented on 5 Oct 2017  

  • Version: "1.10"
  • Device: Windows 10
  • Browser: Google chrome

Scenario : Suppose I selected 1 month timeframe and then I want candlesticks accoding to 5min or 15min or any other time I select .
Lets say I have selected 1 day timeframe and then I select 4H candlestick option.So the chart should display 24/4 = 6 candle sticks .
So I want to know that how it can be done ?
I have attached a screenshot for example.
chart

@timocov

timocov commented on 5 Oct 2017

Hi,

  1. You can use setVisbibleRange method https://github.com/tradingview/charting_library/wiki/Chart-Methods#setvisiblerangerange-callback
  2. You can wait until we implements #2060
@cheekyxy

cheekyxy commented on 5 Oct 2017  

@timocov I to want implement the things as below:

  • First select the timeframe
    -Then the candle sticks should be shown according to Candlesticks option as shown in screenshots below:
    1 .
    chart1

chart2

@timocov

timocov commented on 5 Oct 2017

Yeah, I get it and my answer is exactly about it.

@timocov

timocov commented on 10 Oct 2017

  1. Where you call setVisibleRange? I saw it only for timeframe=='12m' in your code.
  2. Your datafeed does not support 3min resolution.
@cheekyxy

cheekyxy commented on 10 Oct 2017  

@timocov
Leave setVisibleRange for now but what should I do to support my datafeed of 1min,3min,5min ?
Please help me with that !

@cheekyxy

cheekyxy commented on 10 Oct 2017

@timocov @ezhukovskiy
After updating supported resolutions in my datafeed the resolutions are still disabled as shown in screenshot :
min_chart1

@timocov

timocov commented on 10 Oct 2017

Because your symbol does not support this resolutions. See https://github.com/tradingview/charting_library/wiki/Symbology#supported_resolutions

@cheekyxy

cheekyxy commented on 10 Oct 2017

@timocov
What should I do make it support ? Because I have commented the code for symbols search in datafeed . I just want to make it supportable.

@timocov

timocov commented on 10 Oct 2017

In symbol info you should specify which resolutions symbol supports. Please read article https://github.com/tradingview/charting_library/wiki/Symbology

@cheekyxy

cheekyxy commented on 11 Oct 2017

@timocov
Thanks a lot . Your symbolinfo suggestion worked.

@cheekyxy

cheekyxy commented on 11 Oct 2017

@timocov
I don't want to show highlighted part in my chart as shown in screenshot below . Would you help me with this ?

Screenshot : https://www.screencast.com/t/ZMp6wlEp

@cheekyxy

cheekyxy commented on 13 Oct 2017

@timocov @ezhukovskiy

Is it possible to change the data for chart when time interval is changed ?

@timocov

timocov commented on 13 Oct 2017

When interval changed the library will rerequest the data. What do you mean?

@cheekyxy

cheekyxy commented on 13 Oct 2017  

@timocov

I mean I have to change the data totally. I have to request data from another URL.

@timocov

timocov commented on 13 Oct 2017

Sorry, but it is not issue anymore.

@timocov timocov closed this on 13 Oct 2017


'WEB' 카테고리의 다른 글

MySQL 시퀀스 생성하기  (0) 2018.02.14
[PHP]자식창에서 부모창 새로고침해서 부모창에 세션결과 표시하기  (0) 2018.02.09
[PHP] Parsing  (0) 2018.02.05
[PHP] number with comma  (0) 2018.02.05
[Google Chart] Candle Stick  (0) 2018.01.30

+ Recent posts