2013. 2. 2. 08:22

$password_hash = md5( $salt . md5( $password . $salt ));



'php' 카테고리의 다른 글

mongodb + rockmongo with php in ubuntu  (0) 2013.01.08
php file upload 와 mysql blob  (0) 2013.01.02
PHP와 MySQL을 이용한 웹 프로그래밍  (0) 2013.01.01
xml to json 변환  (0) 2012.12.20
sms 인증보내기 php 소스  (0) 2012.12.19
Posted by Нуеоп

1. mongodb 설치

# apt-key adv --keyserver server.ubuntu.com --recv 7F0CEB10


# vim /etc/apt/sources.list.d/10gen.list

deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen


# apt-get update


# apt-get install mongodb-10gen


# service mongodb start


# mongo


2. php mongodb driver 설치

# vim /etc/php5/apache2/php.ini

extension=mongo.so

혹은

extension=/usr/lib/php5/20090626/mongo.so # find / -name mongo.so


# service httpd restart


# apt-get install php5-dev php5-cli

# apt-get install php-pear


# sudo pecl install phpmongo


3. RockMongo 설치

http://rockmongo.com/ 에서 다운로드 및 압축 풀기


http://localhost/rockmongo/index.php 로 접속


username : admin

password : admin




Rockmongo 실행 모습




'php' 카테고리의 다른 글

php password md5 hash  (0) 2013.02.02
php file upload 와 mysql blob  (0) 2013.01.02
PHP와 MySQL을 이용한 웹 프로그래밍  (0) 2013.01.01
xml to json 변환  (0) 2012.12.20
sms 인증보내기 php 소스  (0) 2012.12.19
Posted by Нуеоп

blob_main.html

<html>

<head>

<title>

</title>

</head>

<body>

<h1>Upload new files</h1>

<form action="blob_db.php" method="post" enctype="multipart/form-data">

<div>

<input type="hidden" name="MAX_FILE_SIZE" value="1000000" />

<label for="userfile">Upload a file:</label>

<input type="file" name="userfile" id="userfile" />

<input type="submit" value="Send File" />

</div>

</form>

</body>

</html>





blob_db.php

<?

$clear = array();

$clear['tmp_name'] = $_FILES['userfile']['tmp_name'];

$clear['name'] = $_FILES['userfile']['name'];

$clear['size'] = $_FILES['userfile']['size'];

$clear['type'] = $_FILES['userfile']['type'];

$clear['error'] = $_FILES['userfile']['error'];


if( basename($clear['name']) != $clear['name'] ){

echo "fatal error. forbidden file name <br />";

exit;

}


echo $clear['tmp_name'].'<br />';

echo $clear['name'].'<br />';

echo $clear['size'].'<br />';

echo $clear['type'].'<br />';


if( $clear['error'] > 0 ){

echo "error code = [".$clear['error']."]<br />";

}


$db = mysqli_connect('localhost', user, passwd, dbname);

if (!$db) {

echo "Connect failed: " . mysqli_connect_error();

exit();

}



$name = $clear['name'];

$upload_dir = $_SERVER['DOCUMENT_ROOT'].'/upload';

//echo $upload_dir.'/'.$name.'<br />';

//echo nl2br(`ls /tmp -al`);


if( is_uploaded_file($clear['tmp_name'])){

if( move_uploaded_file($clear['tmp_name'], "$upload_dir/$name") ){

echo 'move_uploaded_file succeed <br />';

}

else{

echo 'move_uploaded_file fail <br />';

}

}


//$fp = fopen("$upload_dir/$name", "rb");

//$content = addslashes(fread($fp, filesize("$upload_dir/$name")));

$fname = $upload_dir.'/'.$name;

//fclose($fp);


$query = "INSERT INTO blob_test(name, content) VALUES('$name', '". mysql_escape_string(file_get_contents($fname)) ."');";

$result = mysqli_query($db, $query) or die('fail to query');


mysqli_free_result($result);

mysqli_close($db);


?>



mysql schema

CREATE TABLE IF NOT EXISTS `blob_test` (
  `name` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
  `content` blob,
  `key` tinyint(4) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`key`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=5 ;

'php' 카테고리의 다른 글

php password md5 hash  (0) 2013.02.02
mongodb + rockmongo with php in ubuntu  (0) 2013.01.08
PHP와 MySQL을 이용한 웹 프로그래밍  (0) 2013.01.01
xml to json 변환  (0) 2012.12.20
sms 인증보내기 php 소스  (0) 2012.12.19
Posted by Нуеоп

1. PHP 파일 경로 지정자 제거

입력값에 경로 지정자가 있는지 검사한다.
만약 있을 경우를 대비하여, 제거해준다.

../../etc/passwd -> etc/passwd 이런식으로 제거해주는 코드를 작성한다.

basename()를 이용하여, 파일명만 뽑아내자
if( basename($_GET['filename']) == $_GET['filename'] ){

}
else{

}
위 코드는 filename에 다른 파일 경로 지정자가 입력되었는지 검사할 수 있다.



2. PHP 정규 표현식으로 이메일 유효 검사


if( !eregi('^[a-zA-Z0-9_\-\.]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$', $email) ){


}

else{


}



3. 줄바꿈 문자열 \n을 HTML <br />로 변경하기


nl2br()



4. 문자열 필터링

addslashes() : 이스케이프가 안되어 있다면, addslashes()를 이용하여 \를 \\로 바꿔주는 함수

stripslashes() : \\를 \로 바꿔주는 함수

get_magic_quotes_gpc() : 자동으로 이스케이프를 해주었는지 검사

htmlspecialchars() 

htmlentities() : 모든 특수문자를 HTML 엔티티로 변환



5. MySQL


데이터베이스 접속

(1) 객체지향 방식

@ $db = new mysqli('localhost', 'users', 'passwd', 'dbname');

(2) 절차지향 방식

@ $db = mysqli_connect('localhost', 'users', 'passwd', 'dbname');


@는 에러를 무시한다는 뜻


데이터베이스 선택

mysql> use dbname;

(1) 객체지향 방식

$db->select_db('dbname');

(2) 절차지향 방식

mysqli_select_db( $db, 'dbname');


질의

(1) 객체지향 방식

$result = $db->query($query);

(2) 절차지향 방식

$result = mysqli_query($db, $query);


질의 결과 행의 수

(1) 객체지향 방식

$num_results = $result->num_rows;

(2) 절차지향 방식

$num_results = mysqli_num_rows($result);


질의 결과 접근

(1) 객체지향 방식

$row = $result->fetch_assoc();

(2) 절차지향 방식

$row = mysqli_fetch_array($result);


접근 방식에 대해서는

$result->fetch_row($result);

mysql_fetch_row($result);

$result->fetch_object();

mysqli_fetch_object();

등을 찾아볼것


데이터베이스 접속 끊기

(1) 객체지향 방식

$result->free();

$db->close();

(2) 절차지향 방식

mysqli_free_result($result);

mysqli_close($db);



서버 루트 경로

echo $_SERVER['DOCUMENT_ROOT'].'<br />';




'php' 카테고리의 다른 글

mongodb + rockmongo with php in ubuntu  (0) 2013.01.08
php file upload 와 mysql blob  (0) 2013.01.02
xml to json 변환  (0) 2012.12.20
sms 인증보내기 php 소스  (0) 2012.12.19
[php] 변수명 앞에는 $를 꼭 붙이자  (0) 2012.11.11
Posted by Нуеоп
2012. 12. 20. 05:07

http://outlandishideas.co.uk/blog/2012/08/xml-to-json/

'php' 카테고리의 다른 글

php file upload 와 mysql blob  (0) 2013.01.02
PHP와 MySQL을 이용한 웹 프로그래밍  (0) 2013.01.01
sms 인증보내기 php 소스  (0) 2012.12.19
[php] 변수명 앞에는 $를 꼭 붙이자  (0) 2012.11.11
[php] imagelibrary  (0) 2012.11.09
Posted by Нуеоп
2012. 12. 19. 12:58

<?php

// http:/localhost/sendSMS.php?phone=01022314854

$phone = $_REQUEST['phone'];

$auth = mt_rand(100000,999999);


// 발송 URL

$sms_url = "http://sslsms.cafe24.com/sms_sender.php";


// 계정 정보

$sms['user_id'] = base64_encode("카페24계정");

$sms['secure'] = base64_encode("SMS발송키");


// 메시지 내용

$sms['msg'] = base64_encode("인증번호 : ".$auth);

// 받는 번호

$rphone1 = substr($phone, 0, 3);

$rphone2 = substr($phone, 3, 4);

$rphone3 = substr($phone, 7, 4);

$sms['rphone'] = base64_encode($rphone1."-".$rphone2."-".$rphone3);


// 보내는 번호

$sms['sphone1'] = base64_encode($rphone1);

$sms['sphone2'] = base64_encode($rphone2);

$sms['sphone3'] = base64_encode($rphone3);


// base64_encode 사용시 반드시 1로 세팅할 것

$sms['mode'] = base64_encode("1");


// 경로 설정

$host_info = explode("/", $sms_url);

$host = $host_info[2];

$path = $host_info[3]."/".$host_info[4];


$boundary = "---------------------".substr(md5(rand(0,32000)),0,10);


// 헤더 생성

$header = "POST /".$path ." HTTP/1.0\r\n";

$header .= "Host: ".$host."\r\n";

$header .= "Content-type: multipart/form-data, boundary=".$boundary."\r\n";



// 본문 생성

foreach($sms AS $index => $value){

//echo "sms[$index] : ". base64_decode($value). "<br>";

$data .="--$boundary\r\n";

$data .= "Content-Disposition: form-data; name=\"".$index."\"\r\n";

$data .= "\r\n".$value."\r\n";

$data .="--$boundary\r\n";

}

$header .= "Content-length: " . strlen($data) . "\r\n\r\n";


// 보내기

$fp = fsockopen($host, 80);

    if ($fp) { 

        fputs($fp, $header.$data);

        $rsp = '';

        while(!feof($fp)) { 

            $rsp .= fgets($fp,8192); 

        }

        fclose($fp);

$msg = explode("\r\n\r\n",trim($rsp));

$rMsg = explode(",", $msg[1]);

$Result= $rMsg[0]; //발송결과

$Count= $rMsg[1]; //잔여건수


//발송결과 알림

        if($Result=="success") {

            $alert = "성공";

            $alert .= " 잔여건수는 ".$Count."건 입니다.";

        }

        else if($Result=="reserved") {

            $alert = "성공적으로 예약되었습니다.";

            $alert .= " 잔여건수는 ".$Count."건 입니다.";

        }

        else if($Result=="3205") {

            $alert = "잘못된 번호형식입니다.";

        }


else if($Result=="0044") {

            $alert = "스팸문자는발송되지 않습니다.";

        }

        else {

            $alert = "[Error]".$Result;

        }

}

    else {

        $alert = "Connection Failed";

    }

//echo "<script>alert('".$alert ."')</script>";

echo "201";

?>

'php' 카테고리의 다른 글

php file upload 와 mysql blob  (0) 2013.01.02
PHP와 MySQL을 이용한 웹 프로그래밍  (0) 2013.01.01
xml to json 변환  (0) 2012.12.20
[php] 변수명 앞에는 $를 꼭 붙이자  (0) 2012.11.11
[php] imagelibrary  (0) 2012.11.09
Posted by Нуеоп


for( $i = 0; i<list.count(); i++){

....

}


이렇게 되면 안된다


for( $i = 0; $i<$list.count(); $i++){

....

}


$에 유의하자



'php' 카테고리의 다른 글

php file upload 와 mysql blob  (0) 2013.01.02
PHP와 MySQL을 이용한 웹 프로그래밍  (0) 2013.01.01
xml to json 변환  (0) 2012.12.20
sms 인증보내기 php 소스  (0) 2012.12.19
[php] imagelibrary  (0) 2012.11.09
Posted by Нуеоп
2012. 11. 9. 12:26

파일로 부터 png 이미지 객체를 생성

imagecreatefrompng( image_name );


빈 이미지 객체 생성

imagecreatetruecolor( w, h );


src 이미지 객체의 일부를 dst 이미지 객체로 덮어씌움

imagecopyresampled( dst, src, dst_x, dst_y, src_x, src_y, dst_w, dst_h, src_w, src_h );


dst 크기 만큼의 색 객체 생성

imagecolorallocate( dst, r, g, b );


??

imagefill( dst, x, y, color);


imagecopy( dst, src, dst_x, dst_y, src_x, src_y, w, h );


ImageTTFText( dst, fontsize, angle, x, y, color, fontname, text );


imagepng( dst, image_name );


imagedestroy( image );



width, height, type, attr 값 한번에 리턴, type는 숫자

getimagesize( filename );


getimagesize 함수만 봐도 php가 제정신으로 만든게 아니라는걸 알 수 있다.

'php' 카테고리의 다른 글

php file upload 와 mysql blob  (0) 2013.01.02
PHP와 MySQL을 이용한 웹 프로그래밍  (0) 2013.01.01
xml to json 변환  (0) 2012.12.20
sms 인증보내기 php 소스  (0) 2012.12.19
[php] 변수명 앞에는 $를 꼭 붙이자  (0) 2012.11.11
Posted by Нуеоп
이전버튼 1 이전버튼