엔터쳐서 다음 입력칸으로 이동시키기

엔터를 치면 다음 칸으로 이동합니다.
폼을 전송 하려면 마우스로 클릭을 해야한다는 단점이 있지만..
유용하게 사용하시길~



다중메일발송

동작은 확실히 됩니다.
벗 기능을 넣다가 말았습니다. 필요가 없어서리….^-^ 다른사람이 완성쫌 해주세요
2일 걸렸습니다. ㅠ.ㅠ php 접한지 한 7일 된거 같군요 -.-;;;;;

고로 허접합니다. but 강력합니다.

html 로 스펨메일 날리는것 가능합니다. 받는이에 이름을 적으면(여러명 받아야 할경우 세미콜론으로 붙여서 보내두 되고 컴마루 붙여도 됩니다. ) 받는이 한명에게만 가고
받는이에 이름이 없으면 서버의 해당폴더의 fli.txt 파일의 내용을 한줄씩 읽어 편지를 부칩니다.

아무것도 없이 이메일만 있어야 합니다.
1@1.com
2@2.com
이런식으로

그럼 유용하게 쓰시구요 소스 수정해서 좀 이쁘게 만들어 주세요

제작자 석이
연락처 01195850915
minsouk@hotmail.com
webmaster@netmask.co.kr

{
?>

으니와 석이의 mailer

}

function mailer_footer()
{
?>


}

function error_message($msg)
{
mailer_header();
echo”“;
mailer_footer();
exit;
}

function user_message($msg)
{
mailer_header();
echo ““;
mailer_footer();
exit;
}

function mail_form()
{
global $PHP_SELP;
?>

이번에는 php 로 첨부파일을 포함한 메일 보내기 입니다.

2003년 6월 11일 석이가 만들었음

  받는사람

  보내는사람

  답장받는이
  메시지유형
TEXT

HTML
  제목
  본문


}

function my_mail($mail_parts){
$mail_to = $mail_parts[“mail_to”];
$mail_from = $mail_parts[“mail_from”];
$mail_reply_to = $mail_parts[“mail_reply_to”];
$mail_subject = $mail_parts [“mail_subject”];
$mail_body = stripslashes($mail_parts [“mail_body”]);
// $mail_body = htmlspecialchars($mail_body);
$mail_to = str_replace(“;”, “,”, $mail_to);

$headers =”;
$headers = “From: $mail_from
“;
if(!empty($mail_from)) $mail_headers .=”From: $mail_from
“;
if($mail_type == ‘html’)
{
$headers .= “MIME-Version: 1.0
“;
// $headers .= “Content-type: text/html; charset=iso-8859-1
“;
$headers .= “Content-type: text/html; charset=euc-kr
“;
$headers .= “X-Priority: 1
“;
$headers .= “X-MSMail-Priority: High
“;
$headers .= “X-Mailer: fli@yu.ac.kr”;
}
else
{
$headers .=”Content-type: text/html; charset=euc_kr
“;
$headers .=”Content-transfer-encoding:$mail_encoding

“;
}
return mail($mail_to, $mail_subject, $mail_body, $headers);
}

function send_mail()
{
global $mail_to, $mail_from, $mail_reply_to;
global $mail_subject, $mail_body, $mail_type;

if(empty($mail_to)){
$team_mates = “./fli.txt”;
$emails = file($team_mates);
for($i=0; $i< count($emails); $i++) $emails[$i] = trim($emails[$i]);
$mail_team = implode(“,”, $emails);
$mail_parts[“mail_to”] = $mail_team;
$mail_parts[“mail_from”] = $mail_from;
$mail_parts[“mail_reply_to”] = $mail_reply_to;
$mail_parts[“mail_type”] = html;
$mail_parts[“mail_subject”] = trim($mail_subject);
$mail_parts[“mail_body”] = trim($mail_body);
}
else{
$mail_parts[“mail_to”] = $mail_to;
$mail_parts[“mail_from”] = $mail_from;
$mail_parts[“mail_reply_to”] = $mail_reply_to;
$mail_parts[“mail_type”] = $mail_type;
$mail_parts[“mail_subject”] = trim($mail_subject);
$mail_parts[“mail_body”] = $mail_body;
}
if(my_mail($mail_parts))
user_message(“‘$mail_subject’란 메일을 보냈습니다.”);
else error_message(“‘$mail_subject’란 제목의 메일 전송 중 에러.”);
}

switch ($action)
{
case “send_mail”:
mailer_header();
send_mail();
mailer_footer();
break;
case “mail_from”:
mailer_header();
mail_form();
mailer_footer();
break;
default:
mailer_header();
mail_form();
mailer_footer();
break;
}

select .. into outfile

나중에 명령어 다시 치기 귀찮아서… ^^;

SELECT subject,content into outfile ‘/home/aa/aa.csv’ fields terminated by ‘,’ enclosed by ‘”‘ escaped by ‘\’ lines terminated by ‘
‘ FROM `ch_d_1` WHERE content like ‘%급여%’ or content like ‘%수당%’;

mysql_fetch_object 객체 활용하기

글쓴이:우수한

mysql_fetch_object로 쿼리를 던지면, 그 결과 오브젝트(객체)를 받아오게 됩니다.
이것이 어떻게 프로그래밍을 간편하게 만들어주는지 살펴보도록 하겠습니다.

—– [1단계: 기초] —–

자, 다음과 같은 테이블이 있다고 합시다.
CREATE TABLE users (
id varchar(10) not null,
name varchar(10) not null,
addr varchar(30) not null,
phone varchar(14) not null,
PRIMARY KEY (id)
);
INSERT INTO users VALUES (“test”, “아무개”, “서울”, “02-123-4567”);

여기서는 편의상 DB 클래스를 사용하겠습니다. (하지만 DB클래스가 중요한 것은 아닙니다.)
DB->fetch()라는 함수는 mysql_fetch_object()를 뜻한다는 것만 아시면 됩니다.

$DB->query(“SELECT id, name, addr, phone FROM users WHERE id=’test’ “);
$user = $DB->fetch();
위와 같은 코드를 실행하면, 그 결과 $user->id 에는 “test”, $user->name 에는 “아무개” 등의 값이 들어있는 것을 확인하실 수 있습니다.

자, 그럼 위의 기능을 함수로 만들어보겠습니다.
function load_user($id) {
$SQL = ” SELECT * FROM users WHERE id=’$id’ “;
$DB =& DB::getInstance();
$DB->query($SQL);
return $DB->fetch();
}
이제 회원정보를 읽어올때 $user = load_user(“test”); 라고 하면 끝입니다.
회원정보를 변경할 수 있는 폼을 출력할때

디비로 세션관리 및 중복로그인 방지

sugar01
http://prospect.new21.net

회원테이블에 테스트용으로 아이디 ‘test’ 비밀번호 ‘test’ 인 데이터를 하나 넣었습니다.
###########회원 테이블###########
CREATE TABLE sugar_member (
num int(4) unsigned NOT NULL auto_increment,
id char(20) NOT NULL default ”,
passwd char(20) NOT NULL default ”,
PRIMARY KEY (num)
) TYPE=MyISAM;

INSERT INTO sugar_member VALUES(”,’test’,password(‘test’));

##########세션 관리 테이블###################
CREATE TABLE sugar_session4 (
uid varchar(32) NOT NULL default ‘0’,
sess_key varchar(32) NOT NULL default ”, //세션키
last_log int(11) unsigned NOT NULL default ‘0’,
last_ip varchar(15) NOT NULL default ”,
sess_value text NOT NULL, //세션값, 로그인 하게되면 저장되는 정보
attack int(2) NOT NULL default ‘0’, //로그인후 다른 아이피에서 로그인 하려 하면 증가
KEY sess_key (sess_key)
) TYPE=MyISAM;

#######config.php#########
$localhost=localhost;
$user_name=””; //디비 사용이름
$db_passwd=””; //디비 패스워드
$db_name=””; //디비 이름

$connect=mysql_connect(“$localhost”,”$user_name”,”$db_passwd”) or die(“SQL server에 연결할수 없습니다.”);
mysql_select_db(“$db_name”,$connect);
?>
#########sess_test.php#################

include “config.php”;

session_cache_limiter(”);
session_set_save_handler(“sess_open”, “sess_close”, “sess_read”, “sess_write”, “sess_destroy”, “sess_gc”);
session_start();
//echo”_SESSION[sess_id] = $_SESSION[sess_id]
“;
$time=time();
//echo”time= $time
“;

function sess_open($save_path, $session_name) {
//echo”sess_open save_path = $save_path session_name= $session_name

“;
return 1;
}

function sess_read($key) {
//echo”sess_read key = $key

“;
$query=mysql_query(“SELECT sess_value FROM sugar_session4 WHERE sess_key = ‘$key’ AND last_log > ‘”.(time()-get_cfg_var(“session.gc_maxlifetime”)).”‘ “) or die(mysql_error());
$row=mysql_fetch_array($query);
return $row[0];
}

function sess_write($key, $value) {
//echo”sess_write key = $key value=$value

“;
$query=mysql_query(“SELECT * FROM sugar_session4 WHERE sess_key=’$key’AND sess_value IS NOT NULL”) or die(mysql_error());
$time=time();
$check=mysql_num_rows($query);
//echo”check = $check
“;
if(mysql_num_rows($query)==0) //새로 로그인 하려는 경우
{
if($value!=””)
{
$uid=$GLOBALS[‘sess_id’];
//로그아웃 하지 않고 창을 닫아서 사이트를 나가고 다시 로그인 하려는 경우
$query=mysql_query(“SELECT sess_value from sugar_session4 WHERE uid=’$uid’ AND last_ip='”.$_SERVER[“REMOTE_ADDR”].”‘”) or die(mysql_error());

if(mysql_num_rows($query))
{
mysql_query(“UPDATE sugar_session4 SET sess_key=’$key’,last_log='”.time().”‘, last_ip='”.$_SERVER[“REMOTE_ADDR”].”‘, sess_value=’$value’ WHERE uid=’$uid'”) or die(mysql_error());
echo”“;
}

else //로그아웃 하고 나가서 다시 로그인 하려는 경우
{
//다른 아이피로 접근 하려는 경우
$query=mysql_query(“SELECT sess_value FROM sugar_session4 WHERE uid=’$uid’ AND last_ip!='”.$_SERVER[“REMOTE_ADDR”].”‘”) or die (mysql_error());
if(mysql_num_rows($query))
{
$query=mysql_query(“UPDATE sugar_session4 SET attack=attack+1 WHERE uid=’$uid’ AND last_ip!='”.$_SERVER[“REMOTE_ADDR”].”‘”) or die (mysql_error());

echo(“
“);

}
else //순수히 새로 로그인 하려는 경우
{
$query=”INSERT INTO sugar_session4 VALUES(‘$uid’,’$key’,’$time’,'”.$_SERVER[“REMOTE_ADDR”].”‘,’$value’,”)”;

mysql_query($query) or die(mysql_error());
echo”“;
}
}
}

}

else// 계속 로그인 해져있는상태
{
$query=mysql_query(“SELECT attack FROM sugar_session4 WHERE sess_key=’$key'”);
$row=mysql_fetch_array($query);
if($row[attack]!=0) echo” $row[attack] 번 다른곳에서 접속 시도가 있었습니다
“;
mysql_query(“UPDATE sugar_session4 SET last_log='”.time().”‘, last_ip='”.$_SERVER[“REMOTE_ADDR”].”‘, sess_value=’$value’ WHERE sess_key=’$key’ “) or die(mysql_error());

}

return true;
}

function sess_close() {
return 1;
}

function sess_destroy($key) {
//echo”sess_destroy key=$key

“;
$query=mysql_query(“DELETE FROM sugar_session4 WHERE sess_key=’$key'”) or die(mysql_error());
}

function sess_gc($lifetime) {
//echo”sess_gc lifetim=$lifetime
“;
mysql_query(“DELETE FROM sugar_session4 WHERE last_log<".time()) or die(mysql_error());
return true;
}

?>

###################login.php###############
include”sess_test.php”;
echo(“



“);

if($_SESSION[sess_id]!=””)
{
echo(“

$_SESSION[sess_id] 님 로그인
로그아웃

“);
}
else
{
echo(“


Id 

Password 

“);
}//else end

if($mode==ok)
{

$sql=mysql_query(“select password(‘$passwd’)”);
$conv_passwd=mysql_result($sql,0,0);

$sql=mysql_query(“select * from sugar_member where id=’$id’&&passwd=’$conv_passwd'”) or die(mysql_error());
$e_check=mysql_num_rows($sql);
$row=mysql_fetch_array($sql);
if($e_check==”)
{
echo(“



“);
}
else
{
$sess_id=”$row[id]”;
session_register(sess_id);
//echo”로그인 에서 의 HTTP_SESSION_VARS[sess_id] = $HTTP_SESSION_VARS[sess_id]
“;
}

}
########logout.php#########
include”sess_test.php”;
session_destroy();

echo”“;
?>