로또645 관련 번호 갱신 주기 설정에 대해.. 정보
그누보드 로또645 관련 번호 갱신 주기 설정에 대해..본문
안녕하세요.... rang2ya입니다..
아래는 자작프로그램에 짱이님이 올려주신 로또645 번호 생성 소스입니다..
-------------------------------------------------------
<?
//Lotto645
$count = 6;
$min = 1;
$max = 45;
$numbers = array();
while(sizeof($numbers) < $count) {
$i = rand($min, $max);
if (in_array($i, $numbers)) continue;
$numbers[] = $i;
}
sort($numbers);
for($i=0; $i < $count; $i++) {
$win = "<FONT COLOR=";
if($numbers[$i] < 11) $win .= "#FF0000>";
else if($numbers[$i] < 21) $win .= "#FF8040>";
else if($numbers[$i] < 31) $win .= "#F0F000>";
else if($numbers[$i] < 41) $win .= "#0000FF>";
else $win .= "#008000>";
if($i > 0) $win .= " ";
echo $win . $numbers[$i] . "</FONT>";
}
?>
----------------------------------------------------
이것을 달면 페이지가 갱신될 때마다 번호가 바뀌잖아요...
그걸 매주 토요일 저녁에 한번만 바뀌고 고정되게 하고 싶은데 잘 모르겠습니다..
힌트 좀 가르쳐 주시겠어요?...^^;
아래는 자작프로그램에 짱이님이 올려주신 로또645 번호 생성 소스입니다..
-------------------------------------------------------
<?
//Lotto645
$count = 6;
$min = 1;
$max = 45;
$numbers = array();
while(sizeof($numbers) < $count) {
$i = rand($min, $max);
if (in_array($i, $numbers)) continue;
$numbers[] = $i;
}
sort($numbers);
for($i=0; $i < $count; $i++) {
$win = "<FONT COLOR=";
if($numbers[$i] < 11) $win .= "#FF0000>";
else if($numbers[$i] < 21) $win .= "#FF8040>";
else if($numbers[$i] < 31) $win .= "#F0F000>";
else if($numbers[$i] < 41) $win .= "#0000FF>";
else $win .= "#008000>";
if($i > 0) $win .= " ";
echo $win . $numbers[$i] . "</FONT>";
}
?>
----------------------------------------------------
이것을 달면 페이지가 갱신될 때마다 번호가 바뀌잖아요...
그걸 매주 토요일 저녁에 한번만 바뀌고 고정되게 하고 싶은데 잘 모르겠습니다..
힌트 좀 가르쳐 주시겠어요?...^^;
댓글 전체
끝까지 감사합니다.. 그러나 제 능력이 미흡하여 소화해 내질 못하는군요... 너무 아쉽습니다...T.T..

위 소스에서 $today 를 $dayweek 로 변경해 보심이...
또는 위 소스에서 하단의 echo lotto645(); 부분을 삭제 하신 후 소스를 별도의 파일(예. lotto645.php)로 저장후 로또번호를 표시할 부분에
<? include "lotto645.php"; ?><?=lotto645();?> 이렇게 하여 불러와 보심이...
그래도 마찬가지라면 위 소스를 제거후 실행 해 보시고...
위 소스만 별도로 실행해 보시고...
그래도 안된다면 저도 할 방법이 없지요~~
그럼.
또는 위 소스에서 하단의 echo lotto645(); 부분을 삭제 하신 후 소스를 별도의 파일(예. lotto645.php)로 저장후 로또번호를 표시할 부분에
<? include "lotto645.php"; ?><?=lotto645();?> 이렇게 하여 불러와 보심이...
그래도 마찬가지라면 위 소스를 제거후 실행 해 보시고...
위 소스만 별도로 실행해 보시고...
그래도 안된다면 저도 할 방법이 없지요~~
그럼.
짱이님 답변에 정말 감사드립니다.....
그런데 이런 오류가 나오네요..
-----------------------
Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/gnu3/head.sub.php:32) in /var/www/html/gnu3/head.php on line 210
------------------------
head.sub.php의 32라인은 <title><?=$html_title?></title> 이고
head.php의 210라인은 setcookie("Lotto645", "Sat." . $win, time()+$daytime); 입니다..
무엇이 문제인지요..
그런데 이런 오류가 나오네요..
-----------------------
Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/gnu3/head.sub.php:32) in /var/www/html/gnu3/head.php on line 210
------------------------
head.sub.php의 32라인은 <title><?=$html_title?></title> 이고
head.php의 210라인은 setcookie("Lotto645", "Sat." . $win, time()+$daytime); 입니다..
무엇이 문제인지요..

소스를 아래와 같이 쿠키를 이용하여 약간 수정을 했습니다.
- 아 래 -
<?
// Lotto645 by http://qbike.co.kr
// 쿠키값이 경과 했거나 오늘이 일요일 이면 재 셋팅
function lotto645($count = 6, $min = 1, $max = 45) {
$today = date("D");
if($_COOKIE["Lotto645"]) {
$lotto = explode(".",$_COOKIE["Lotto645"]);
return($lotto[1]);
exit;
}
else if(!$_COOKIE["Lotto645"] && $today = "Sun") {
$numbers = array();
while(count($numbers) < $count) {
$i = rand($min, $max);
if (in_array($i, $numbers)) continue;
$numbers[] = $i;
}
sort($numbers);
for($i=0; $i < $count; $i++) {
$win .= "<FONT COLOR=";
if($numbers[$i] < 11) $win .= "#FF0000>";
else if($numbers[$i] < 21) $win .= "#FF8040>";
else if($numbers[$i] < 31) $win .= "#E7BD18>";
else if($numbers[$i] < 41) $win .= "#0000FF>";
else $win .= "#008000>";
if($i > 0) $win .= " ";
$win .= $numbers[$i] . "</FONT>";
}
switch ($today) {
case "Sun" : $daytime = 86400 * 7; break; // 60*60*24 * 7일
case "Mon" : $daytime = 86400 * 6; break;
case "Tue" : $daytime = 86400 * 5; break;
case "Wed" : $daytime = 86400 * 4; break;
case "Thu" : $daytime = 86400 * 3; break;
case "Fri" : $daytime = 86400 * 2; break;
case "Sat" : $daytime = 86400 * 1; break;
}
setcookie("Lotto645", "Sat." . $win, time()+$daytime);
return($win);
}
}
echo lotto645();
?>
테스트는 많이 하지 못했습니다. 문제점 있으면 연락주시기 바랍니다.
- 아 래 -
<?
// Lotto645 by http://qbike.co.kr
// 쿠키값이 경과 했거나 오늘이 일요일 이면 재 셋팅
function lotto645($count = 6, $min = 1, $max = 45) {
$today = date("D");
if($_COOKIE["Lotto645"]) {
$lotto = explode(".",$_COOKIE["Lotto645"]);
return($lotto[1]);
exit;
}
else if(!$_COOKIE["Lotto645"] && $today = "Sun") {
$numbers = array();
while(count($numbers) < $count) {
$i = rand($min, $max);
if (in_array($i, $numbers)) continue;
$numbers[] = $i;
}
sort($numbers);
for($i=0; $i < $count; $i++) {
$win .= "<FONT COLOR=";
if($numbers[$i] < 11) $win .= "#FF0000>";
else if($numbers[$i] < 21) $win .= "#FF8040>";
else if($numbers[$i] < 31) $win .= "#E7BD18>";
else if($numbers[$i] < 41) $win .= "#0000FF>";
else $win .= "#008000>";
if($i > 0) $win .= " ";
$win .= $numbers[$i] . "</FONT>";
}
switch ($today) {
case "Sun" : $daytime = 86400 * 7; break; // 60*60*24 * 7일
case "Mon" : $daytime = 86400 * 6; break;
case "Tue" : $daytime = 86400 * 5; break;
case "Wed" : $daytime = 86400 * 4; break;
case "Thu" : $daytime = 86400 * 3; break;
case "Fri" : $daytime = 86400 * 2; break;
case "Sat" : $daytime = 86400 * 1; break;
}
setcookie("Lotto645", "Sat." . $win, time()+$daytime);
return($win);
}
}
echo lotto645();
?>
테스트는 많이 하지 못했습니다. 문제점 있으면 연락주시기 바랍니다.