Server-Side/PHP2010. 7. 2. 00:48
<iframe name="uploadFrame" width="60" height="50" scrolling="no" style="display:none;"></iframe>
<form action="upload.php" method="post" enctype="multipart/form-data" target="uploadFrame"/>
    <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" />
</form>

---------------------------------------------------------------------

<?php
file_exists($filepath);
 - 파일경로를 파라미터로 넘겨주고 존재 여부를 Boolean으로 받음

 move_uploaded_file($_FILES['userfile']['tmp_name'], $path);
 - 파일을 해당 경로에 업로드함
?>



'Server-Side > PHP' 카테고리의 다른 글

FirePHP 사용법  (0) 2010.07.20
post raw data  (0) 2010.07.20
PHP 이미지 crop  (0) 2010.07.02
[Code Igniter] layout 적용하기  (0) 2010.04.23
PHP 시간함수( strtotime, time(), date() )  (0) 2010.03.25
Posted by 준피
즐길거리/책2010. 5. 8. 20:57


PHP로 프로그래밍을 하면서 거의 레퍼런스에만 의존해서 프로젝트를 진행했었다. 이 책을 읽음으로써 미쳐 짚고 넘어가지 못했던 부분을 알게 되었고, 다시금 초심으로 돌아갈 수 있었다.

그동안 몇권의 책을 접해봤고 대부분 소스코드가 몇페이지나 연속으로 난무하는 보기 싫은 경우가 많았는데 다행히도 이 책은 그렇지 않았다. 물론 후반부에 어느정도 나오긴 하지만 그 정도는 괜찮다.

레퍼런스에만 의존해서 프로그래밍을 했던 사람들에게는 초심으로 돌아갈 수 있는 이 책이 괜찮다고 생각한다.

'즐길거리 > ' 카테고리의 다른 글

웹표준교과서  (0) 2010.06.30
자바스크립트 완벽가이드  (0) 2010.06.30
Head First Design Patterns  (0) 2010.05.07
소셜노믹스  (0) 2010.03.29
실전 UX 디자인  (0) 2010.03.21
Posted by 준피
Server-Side/PHP2010. 4. 23. 10:04
http://codeigniter.com/wiki/layout_library/ 에서 Layout Library를 구하고 사용법을 확인할 수 있다.

1. /application/libraries/Layout.php 에 다음 소스를 저장한다.
<?php  
if (!defined('BASEPATH')) exit('No direct script access allowed');
 
class Layout
{
 
var $obj;
var $layout;
 
function Layout($layout = "layout_main")
{
$this->obj =& get_instance();
$this->layout = $layout;
}
 
function setLayout($layout)
{
$this->layout = $layout;
}
 
function view($view, $data=null, $return=false)
{
$loadedData = array();
$loadedData['content_for_layout'] = $this->obj->load->view($view,$data,true);
 
if($return)
{
$output = $this->obj->load->view($this->layout, $loadedData, true);
return $output;
}
else
{
$this->obj->load->view($this->layout, $loadedData, false);
}
}
}
?
2. /application/controllers/intro.php (임의로 만든 파일) 의 생성자에 다음 코드를 넣는다.
<?php

class
Intro extends Controller {

function __construct()
{
parent::Controller();

$this->load->library('layout', 'layouts/default');
$this->layout->setLayout('layouts/default');
}
function index()
{
$this->layout->view('layouts/default');
}
}

3. /application/views/layouts/default.php 에 다음 코드를 넣는다.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ko" lang="ko" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>CI 레이아웃</title>
<style type="text/css">
.header {
width: 760px;
height: 50px;
border: 1px solid #CCCCCC;
}
.navigation {
float: left;
}
.navigation li {
float: left;
margin-right: 10px;
list-style: none;
cursor: pointer;
}
</style>
</head>
<body>
<div class="header">
<ul class="navigation">
<li id="home">Home</li>
<li id="send">Send</li>
</ul>
</div>
</body>
</html>

'Server-Side > PHP' 카테고리의 다른 글

FirePHP 사용법  (0) 2010.07.20
post raw data  (0) 2010.07.20
PHP 이미지 crop  (0) 2010.07.02
PHP 파일업로드  (1) 2010.07.02
PHP 시간함수( strtotime, time(), date() )  (0) 2010.03.25
Posted by 준피
Client-Side/OpenSocial2010. 3. 10. 17:59
http://wiki.opensocial.org/index.php?title=Validating_Signed_Requests
여기보면 OAuth 사용법이 상세히 나와있고,
내가 자주쓰는 PHP와 요즘 관심이 가는 JAVA 코드를 상세히 봤다.

잠시 PHP 코드를 소개하면 이렇게 되어있다.
--------------------- Source Code ------------------------

<?php

require_once("OAuth.php");
 
class OrkutSignatureMethod extends OAuthSignatureMethod_RSA_SHA1 {
protected function fetch_public_cert(&$request) {
return <<<EOD
-----BEGIN CERTIFICATE-----
MIIDHDCCAoWgAwIBAgIJAMbTCksqLiWeMA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNV
BAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIG
A1UEChMLR29vZ2xlIEluYy4xDjAMBgNVBAsTBU9ya3V0MQ4wDAYDVQQDEwVscnlh
bjAeFw0wODAxMDgxOTE1MjdaFw0wOTAxMDcxOTE1MjdaMGgxCzAJBgNVBAYTAlVT
MQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChML
R29vZ2xlIEluYy4xDjAMBgNVBAsTBU9ya3V0MQ4wDAYDVQQDEwVscnlhbjCBnzAN
BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAseBXZ4NDhm24nX3sJRiZJhvy9eDZX12G
j4HWAMmhAcnm2iBgYpAigwhVHtOs+ZIUIdzQHvHeNd0ydc1Jg8e+C+Mlzo38OvaG
D3qwvzJ0LNn7L80c0XVrvEALdD9zrO+0XSZpTK9PJrl2W59lZlJFUk3pV+jFR8NY
eB/fto7AVtECAwEAAaOBzTCByjAdBgNVHQ4EFgQUv7TZGZaI+FifzjpTVjtPHSvb
XqUwgZoGA1UdIwSBkjCBj4AUv7TZGZaI+FifzjpTVjtPHSvbXqWhbKRqMGgxCzAJ
BgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEU
MBIGA1UEChMLR29vZ2xlIEluYy4xDjAMBgNVBAsTBU9ya3V0MQ4wDAYDVQQDEwVs
cnlhboIJAMbTCksqLiWeMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEA
CETnhlEnCJVDXoEtSSwUBLP/147sqiu9a4TNqchTHJObwTwDPUMaU6XIs2OTMmFu
GeIYpkHXzTa9Q6IKlc7Bt2xkSeY3siRWCxvZekMxPvv7YTcnaVlZzHrVfAzqNsTG
P3J//C0j+8JWg6G+zuo5k7pNRKDY76GxxHPYamdLfwk=
-----END CERTIFICATE-----
EOD;
}
}
 
//Build a request object from the current request
$request = OAuthRequest::from_request(null, null, array_merge($_GET, $_POST));
 
//Initialize the new signature method
$signature_method = new OrkutSignatureMethod();
 
//Check the request signature
@$signature_valid = $signature_method->check_signature($request, null, null, $_GET["oauth_signature"]);
 
//Build the output object
$payload = array();
if ($signature_valid == true) {
$payload["validated"] = "Success! The data was validated";
} else {
$payload["validated"] = "This request was spoofed";
}
 
//Add extra parameters to help debugging
$payload["query"] = array_merge($_GET, $_POST);
$payload["rawpost"] = file_get_contents("php://input");
 
//Return the response as JSON
print(json_encode($payload));

--------------------- Source Code ------------------------

너무도 당연한 이야기지만 $signature_vaild == true 인 경우
DB단과 작업을 진행하거나, 서버쪽 작업을 진행하면 된다.

이렇게 대놓고 소스코드에 써있는데 한참을 보고 알아버리다니....
역시 제 프로그래밍 기초에 대한 회의감마저 드네요;;
Posted by 준피
Server-Side/MySQL2009. 12. 10. 16:47

보통 php에서 쿼리문을 작성할때는 이렇게 한다.

 

$query = "SELECT * FROM users WHERE id = $id";

 

 

이번에는 sprintf로 쿼리문을 작성해보면

 

$query = sprintf("SELECT * FROM users WHERE id = %d", $id);

 

이렇게 할 수 있다.

 

 

php에서 sprintf를 이용해서 쿼리문을 작성하는 경우,

 

쿼리와 변수를 분리시킬 수 있고, 더 깔끔한 코드가 작성된다.

 

 

$query = sprintf("SELECT * FROM users

                  WHERE  user='%s'

                  AND    password='%s'",
                 
mysql_real_escape_string($user
),
                 
mysql_real_escape_string($password
));

 

위와 같은 쿼리문은  왜 sprintf를 이용해야 하는지에 대한 좋은 예이다.


'Server-Side > MySQL' 카테고리의 다른 글

[MySQL] Master-Slave Replication  (1) 2010.08.29
[MySQL] index 추가, 삭제, 확인하기  (0) 2010.08.16
mysql password 변경  (0) 2010.03.12
MySQL에서 인덱스 체크하기 : EXPLAIN  (0) 2009.12.11
세로를 가로로  (0) 2009.11.04
Posted by 준피