Media Log

<input type="file" name="img" size=25 >
<input type="button" value="등록" onclick="_check()">
<script type="text/javascript">
function _check()
{
   if(document.getElementById("img"))
   {
     var str = document.getElementById("img").value;
     dot = str.lastIndexOf(".");
     ext = str.substring(dot).toLowerCase();
     if (ext != ".jpg" && ext != ".JPEG" && ext != ".gif")
     {
        alert("이미지는 업로드 할 수 없는 확장자입니다.");
        document.getElementById("img").select();
        document.selection.clear();
        return false;
      }
   }
</script>

위에 대로 만 하면 업로드 할려는 파일의 확장 자를 체크할 수 있다.

일반적으로 체크 박스 사용시에

<input type='checkbox' name='abc' id='abc'>체크

이런 식으로 사용한다.

위의 경우로 사용하면 선택시 체크 박스를 클릭해야 체크가 된다.

체크1 이라는 부분을 클릭해서도 체크가 가능 하도록 하려면

<label></label>을 이용한다.

<input type='checkbox' name='abc' id='abc'><label for='abc1'>체크1</label>

table-layout 속성을 이용하여 테이블 고정하기

table-layout 속성값을 fixed로 지정하면 셀안의 데이터가 길어서 지정한 너비 이상으로 셀을 밀어버리는 것을 방지합니다.

보통 셀안의 내용이 한글인 경우 공백이 중간 중간에 들어가므로 자동으로 지정한 너비에서 줄바꿈이 일어납니다.

<table width="200" cellpadding="5" cellspacing="2" border="1" align="center">
<tr>
    <td>셀안의 데이터가 한글인 경우 지정한 셀의 크기에 따라서 자연스럽게 줄바꿈이 일어납니다.</td>
</tr>
</table>

테이블의 너비가 200픽셀로 셀안의 내용에 비해서 좁더라도 아래와 같이 자연스럽게 줄바꿈이 일어납니다.

셀안의 데이터가 한글인 경우 지정한 셀의 크기에 따라서 자연스럽게 줄바꿈이 일어납니다.

반면 홈페이지 주소와 같이 영문으로 공백이 없는 경우는 셀을 밀어버리는 현상이 발생합니다.

<table width="200" cellpadding="5" cellspacing="2" border="1" align="center">
<tr>
    <td>http://www.homejjang.com/09/border_collapse.php</td>
</tr>
</table>

위의 테이블과 똑같이 200픽셀로 너비를 지정했음에도 테이블이 밀려나는 걸 확인할 수 있습니다.

http://www.homejjang.com/09/border_collapse.php

table-layout 속성값을 fixed로 지정하면 테이블의 너비가 200픽셀로 고정됩니다.

<table width="200" cellpadding="5" cellspacing="2" border="1" align="center" style="table-layout:fixed;">
<tr>
    <td>http://www.homejjang.com/09/border_collapse.php</td>
</tr>
</table>

그러나 아래와 같이 200 픽셀까지만 보이고 그 이상은 화면에 출력되지 않는 현상이 발생합니다.

http://www.homejjang.com/09/border_collapse.php

줄바꿈이 일어나게 할려면 word-break:break-all; 속성을 추가적으로 지정해 주면 됩니다.

<table width="200" cellpadding="5" cellspacing="2" border="1" align="center" style="table-layout:fixed; word-break:break-all;">
<tr>
    <td>http://www.homejjang.com/09/border_collapse.php</td>
</tr>
</table>

그러면 아래와 같이 테이블은 고정되고 자연스럽게 줄바꿈이 일어납니다.

http://www.homejjang.com/09/border_collapse.php

저는 현재 smtp로 메일을 보내고 있는 사람입니다.

위의 내용은 잘 모르겠지만, 저는 지금 amp2를 쓰고 있으며,

메일은 smtp로 메일를 보내고 있습니다.

http://203.246.107.73 으로 들어오면 볼 수 있습니다.

먼저 php.ini에서
[mail function] => SMTP="127.0.0.1"로 하고, Sendmail_form= "자기메일"로 입력하고, 저장
그리구 2000서버에서 MSTP서버를 가동하구나서,
등록정보로 가서 액세스 -> 연결제어에서 아래목록만(0)를 선택하고나서 127.0.0.1를 추가하고 확인
릴레이 제한에서 똑같이 아래목록만을 선택하구, 127.0.0.1를 추가하고 확인

모든 과정이 끝나면 다시 SMTP를 재 가동하구 PHP로 메일을 보내보세요 그러면 잘 될 것이라고 봅니다. 현재 저는 잘 쓰고 있습니다.

이 내용은 전에 이곳에서 얻은 자료인데, 다시 이렇게 씁니다.

암튼 많이많이 이용하세요....

Example#1 mysql_real_escape_string() 예제

<?php
// Connect
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
    OR die(
mysql_error());

// Query
$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
           
mysql_real_escape_string($user),
           
mysql_real_escape_string($password));
?>

Example#2 SQL 인젝션 공격(Injection Attack)의 예

<?php
// Query database to check if there are any matching users
$query = "SELECT * FROM users WHERE user='{$_POST['username']}' AND password='{$_POST['password']}'";
mysql_query($query);

// We didn't check $_POST['password'], it could be anything the user wanted! For example:
$_POST['username'] = 'aidan';
$_POST['password'] = "' OR ''='";

// This means the query sent to MySQL would be:
echo $query;
?>

MySQL로 전송되는 질의:

SELECT * FROM users WHERE name='aidan' AND password='' OR ''=''

유효한 비밀번호 없이 누구나 접속하여 접근이 가능하다.

Example#3 "Best Practice" 질의

mysql_real_escape_string()은 각 변수에 대해 SQL 인젝션을 방지한다. 이 예제는 Magic Quotes 설정과는 별개로 데이터베이스를 질의하는 "best practice" 방법을 시연한다.

<?php
// Quote variable to make safe
function quote_smart($value)
{
   
// Stripslashes
   
if (get_magic_quotes_gpc()) {
       
$value = stripslashes($value);
    }
   
// Quote if not integer
   
if (!is_numeric($value)) {
       
$value = "'" . mysql_real_escape_string($value) . "'";
    }
    return
$value;
}

// Connect
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
    OR die(
mysql_error());

// Make a safe query
$query = sprintf("SELECT * FROM users WHERE user=%s AND password=%s",
           
quote_smart($_POST['username']),
           
quote_smart($_POST['password']));

mysql_query($query);
?>

SQL 인젝션 공격이 동작하지 않으며 질의가 정확하게 실행될 것이다.