Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at write.php:1) in session.inc on line 2

오랜만에 PHP 코딩을 하다가 위의 에러를 보았다.
세션을 다른 곳엥서는 잘 쓰다가 왜 이럴까하고 찾아보았다.

문제1.  File Encoding 문제- (http://cybercafe.tistory.com/tag/Cannot%20send%20session%20cache%20limiter%20-%20headers%20already%20sent%20(output%20started )

문제 2. 공백 문제. 대부분 이 문제라 생각하며, 나도 여기에 해당하고, 알면서도 또 헤맸다.
( http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_function&wr_id=73427 ) 

문제2는 바로 <?가 시작할 때 그 앞에 공백이 한 칸 들어간 것이다. 눈으로 볼 때는 공백 한칸은 잘 구분이 안 가서 없는지 알고 했던 것이다. 참고로 PHP에서 session_start()를 할 때는 앞에 어떠한 공백도 없이 제일 먼저 실행되어야 한다.

 
신고

Leave a Comment

개발할 때

request.getRemoteAddr();를 쓸 경우 보통은 ip가 제대로 나오지만

서버에 접속할 때 localhost로 접속한 후에 request.getRemoteAddr();를 하면  0:0:0:0:0:0:0:1가 나온다.

localhost 대신에 ip를 제대로 적어주어야 올바른 ip가 출력된다. 
신고

Leave a Comment

iPhone은 기본적으로 Web App에 대해 설계되어있고, 사파리 모바일을 통해 인터넷을 하다가 Web App을 추가할 수 있다.

이 때, 기본 이름은 html의 <title>이 되고,
아래 소스를 쓰면, 아이콘 이미지 및 Web App를 시작할 때 이미지를 보여줄 수 있다.

<link rel="apple-touch-icon" href="han_icon.png" />
<link rel="apple-touch-startup-image" href="han_start.png" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-status-bar-style" content="black-translucent" />


이것에 대해 찾아보다가 이미 너무 자세하게 설명해준 블로그를 발견했다.
배드걸s님[1]의 블로그를 참조하자. 매우 설명이 잘 되어있다.


Reference
[1] 배드걸s 블로그,  http://blog.naver.com/bad0242?Redirect=Log&logNo=130100718142
신고

Leave a Comment

MobileOptimized Meta Tag 
Microsoft에서 모바일을 위해 Layout의 가로 크기를 조정하기 위해 고안한 태그
ex) <meta name="MobileOptimized" content="width">
Smartphone : content = "176"
pocket pc : content="240" or content="480"

HandheldFriendly Meta Tag
Palm의 AvantGo mobile browser를 위한 태그
모바일 화면 크기 조정관련 설정
ex) <meta name="HandheldFriendly" content="true" />
* true : 모바일용(화면 크기 조정 기능)
* false : Desktop에 최적화된 html 사용

Viewport Meta Tag
대부분의 스마트폰 브라우저에서 화면의 크기를 조정하기 위해 사용
기존 width값은 980px
ex) 
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=medium-dpi" />

 Viewport META Example Value Description 
 width  width = 320
 width = device-width 
 가로 크기 (기본 980px)
 height  height = 480
 height = device-height 
 세로 크기 (안해도 됌)
 user-scalable  user-scalable=no  사용자의 배율 확대 축소 여부 설정
 모바일 사파리 기본 : 사용함 
 inital-scale  inital-scale=2.0  페이지 배율 ( 0 ~ 10) 안정적 1
 크면 확대, 작으면 축소
 maximum-scale  maximum-scale=2.5  사용자 확대 최대 비율
 minimum-scale  minimum-scale=0.5  사용자 축소 최소 비율


Media Query
다양한 화면 크기를 갖는 디바이스 화면 스타일을 지원하기 위해 CSS에서 제공
기존 HTML4와 CSS2에서 각 미디어별로 스타일 지정을 위해 사용한 media type을 확장
스마트폰의 가로/세로 전환에서도 적용 가능

@media screen and(min-width:321px) and (max-width:480){
/* 적용할 스타일 */
}

@media screen and(orientation:portrait){ /* 적용할 스타일 */ } @media screen and(oratation:landscape){ /* 적용할 스타일 */ }
/* iPhone일 경우 가로 */ @media screen and(max-width:320px){ /* 적용할 스타일 */ }


/* iPhone일 경우 세로 */ @media screen and(min-width:321px) and (max-width:480px){ /* 적용할 스타일 */ }



Example)
같은 url이지만, 브라우저 가로 크기에 따라 변하죠?








<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Atin</title>
<link rel="stylesheet" type="text/css" href="test.css" />
</head>
<body>
<div id="container">
<h1>N-Screent Test</h1>
<div id="nav">
<ul>
<li><a href="#">한승연</a></li>
<li><a href="#">구하라</a></li>
<li><a href="#">니콜</a></li>
</ul>
</div>
<div id="content">
<h2>여기는 카라 팬카페입니다. 특히 한승연</h2>
<p>
<img class="feature-image" src="han_start.png" />
한승연.. 카라.. 어쩌구 저쩌구!!! 한승연.. 카라.. 어쩌구 저쩌구!!! 한승연.. 카라.. 어쩌구 저쩌구!!!
한승연.. 카라.. 어쩌구 저쩌구!!! 한승연.. 카라.. 어쩌구 저쩌구!!! 한승연.. 카라.. 어쩌구 저쩌구!!!
한승연.. 카라.. 어쩌구 저쩌구!!! 한승연.. 카라.. 어쩌구 저쩌구!!! 한승연.. 카라.. 어쩌구 저쩌구!!!
한승연.. 카라.. 어쩌구 저쩌구!!! 한승연.. 카라.. 어쩌구 저쩌구!!! 한승연.. 카라.. 어쩌구 저쩌구!!!
한승연.. 카라.. 어쩌구 저쩌구!!! 한승연.. 카라.. 어쩌구 저쩌구!!! 한승연.. 카라.. 어쩌구 저쩌구!!!
한승연.. 카라.. 어쩌구 저쩌구!!! 한승연.. 카라.. 어쩌구 저쩌구!!! 한승연.. 카라.. 어쩌구 저쩌구!!!
한승연.. 카라.. 어쩌구 저쩌구!!! 한승연.. 카라.. 어쩌구 저쩌구!!! 한승연.. 카라.. 어쩌구 저쩌구!!!
</p>
</div>
<div id="extras">
<h3>다른 애들은...</h3>
<p>
소녀시대, 원더걸스, 에프터스쿨..??
</p>
</div>
</div>
</body>
</html>

[Source 1] n-screen.html


#container
{
float : left;
width : 1000px;
background : #bbb;
}

#nav
{
float : left;
width : 200px;
background : green;
}

#content
{
float : left;
width : 550px;
margin : 0 0 0 25px;
background : blue;
}

#extras
{
float : right;
width : 200px;
background : red;
}

.feature-image
{
float : right;
margin : 0 0 10px 10px;
}

@media screen and (max-width:990px)
{
#container 
{
width: 800px;
}
#extras
{
clear : left;
float : none;
margin : 0 0 0 225px;
width : 550px;
}
}

@media screen and (max-width:480px)
{
#container
{
width:400px;
}
#nav
{
float : none;
width : auto;
}
#content
{
float : none;
width : auto;
margin : 0;
}
#extras
{
float : none;
width : auto;
margin : 0;
}
.feature-image
{
display : none;
}
}

 [Source 2] test.css
신고

Comments

  1. 2011.06.28 19:17 Permalink Modify/Delete Reply

    비밀댓글입니다

  2. 2012.11.07 11:32 Permalink Modify/Delete Reply

    비밀댓글입니다

Leave a Comment

서버 사이드쪽을 자바스크립트로 구현하는 기술
정말 놀랍다. 시간이 날 때 조금 더 자세한 블로깅을 하겠다.

http://nodejs.org/



신고

Leave a Comment

오랜만에 컴퓨터에 톰캣 환경을 구축하려고 보니 많은게 변해있었다.
톰캣은 어느새 7까지 나와있었다. 톰캣 7을 깔았다가 이클립스에서 톰캣 연동 플러그인이 6까지만 나와있길래 그냥 편한대로 6으로 다시 깔았다.

자바는 당연히 필수로 받아야 하며, 이클립스는 "Eclipse IDE for Java EE Developers"을 받으면 톰캣 플러그인이 합쳐져 있다. 합쳐져 있는 것이 싫으면 "Eclipse IDE for Java Developers"을 다운 받아서 플로그인을 깔면 되고, 이미 기존에 쓰던 이클립스에 이어서 쓰고 싶다면 플로그인만 받아서 설치하면 되겠다.

1. 자바 다운.
http://www.oracle.com/technetwork/java/javase/downloads/index.html

2. 이클립스 다운
http://www.eclipse.org/downloads/

3. 플러그인 다운
http://www.eclipsetotale.com/tomcatPlugin.html

플러그인의 설치는 단순하다. 이클립스 폴더 내부에 있는 "plugins"에 압축을 풀어주기만 하면 된다.

톰캣의 설치 역시 매우 간단한데, 압축을 풀어준 후에 시스템 환경변수를 잡아주면 됀다.
잡아주어야 할 환경변수
CATALINA_HOME : 톰캣 설치 경로 ex) C:\apache-tomcat-6.0.29
JAVA_HOME : 자바 설치 경로 ex)C:\Program Files\Java\jdk1.6.0_02

그리고 이클립스를 실행하면 톰캣 관련 메뉴가 추가되어있을텐데, 톰캣 설정을 몇 부분 잡아주면 편하게 사용할 수 있다.

참고 블로그 : http://tenny.egloos.com/1108269


아, 마지막으로 HtmlEditor 플러그인까지 추가해주니 매우 좋네요.

4. HtmlFileEditor
http://sourceforge.jp/projects/amateras/downloads/48175/tk.eclipse.plugin.htmleditor_2.0.7.jar/



신고

Leave a Comment

텔넷에 접속해서 명령어를 입력하는 VB 스크립트

[test.vbs]


#$language = "VBScript"
#$interface = "1.0"

Sub main
  Dim telnetpt
  Dim loginpt
  Dim passpt
  Dim prompt
  Dim exitpt
  loginpt = "ogin: "
  passpt = "assword:"
  prompt = "$ "
  exitpt = "exit" & VbCr
  telnet1 = "telnet IP_Address " & VbCr

 ' turn on synchronous mode so we don't miss any data
  crt.Screen.Synchronous = True
  
  crt.Screen.WaitForString prompt
  crt.Screen.Send telnet1

  ' Wait for a string that looks like "login: " or "Login: "
  crt.Screen.WaitForString loginpt

  ' Send your username followed by a carriage return
  crt.Screen.Send "userid" & VbCr

  ' Wait for a tring that looks like "password: " or "Password: "
  crt.Screen.WaitForString passpt

  ' Send your password followed by a carriage return
  crt.Screen.Send "userpw" & VbCr

  ' Send your password followed by a carriage return
  crt.Screen.WaitForString prompt
  crt.Screen.Send "pwd " & VbCr

  crt.Screen.WaitForString prompt
  crt.Screen.Send exitpt

  ' turn off synchronous mode to restore normal input processing
  crt.Screen.Synchronous = False
End Sub

신고

'Devlopment > Web' 카테고리의 다른 글

request.getRemoteAddr()가 0:0:0:0:0:0:0:1이 나오는 이유  (0) 2011.08.31
iPhone Web App 만들기  (0) 2011.06.15
Mobile용 Meta Tag  (2) 2011.06.15
서버사이드 자바스크립트 기술  (0) 2011.06.14
이클립스, 톰캣 개발 환경 구축  (0) 2010.12.22
텔넷 접속 Script  (0) 2010.07.01
try문 안에서 변수 값  (0) 2010.06.04
원래 창 페이지 이동  (0) 2009.03.05
substring  (1) 2008.09.17
PHP 문자셋 바꾸기  (0) 2008.08.25
시간 체크  (0) 2008.07.21

Leave a Comment

오늘 오랜만에 일이 있어서 jsp를 잠깐 만지게 되었는데 황당한 일을 겪었다.
내가 모르는 건지 모르겠지만.


  string str;

  try
  {
    str = "test";
  }
  catch(){
    ...
  }
  out.println(str); 




라는 형태의 소스가 있다고 하면 맨 마지막에 출력을 할 때 계속 에러가 나는 것이었다.
자꾸 보다보니 NullPoint에러가 나는 거 같은데 try문 안에서 넣은 변수의 처리가 계속 안되는 것 같았다.
자바를 오랜만에 해서 다 까먹은건가? 계속 헤매다가 알 수 없는 이유를 알게 되었다.

처음 변수 선언시 str값에 null이나 ""를 넣어줘서 초기화를 해주면 제대로 "test"값을 출력한다.

자바는 1.4버전이다.
신고

'Devlopment > Web' 카테고리의 다른 글

iPhone Web App 만들기  (0) 2011.06.15
Mobile용 Meta Tag  (2) 2011.06.15
서버사이드 자바스크립트 기술  (0) 2011.06.14
이클립스, 톰캣 개발 환경 구축  (0) 2010.12.22
텔넷 접속 Script  (0) 2010.07.01
try문 안에서 변수 값  (0) 2010.06.04
원래 창 페이지 이동  (0) 2009.03.05
substring  (1) 2008.09.17
PHP 문자셋 바꾸기  (0) 2008.08.25
시간 체크  (0) 2008.07.21
함수 정의  (0) 2008.07.08

Leave a Comment

사이트맵을 새창으로 출력한 후에 새창은 포커스를 유지하면서 본래 창의 url을 변경시키는 함수
파라미터 i와 j는

function MenuDirect(i, j)
 {
  var menus = new Array;
  menus[1] = new Array;
  menus[2] = new Array;
  ...
  
  menus[1][1] = '...';
  menus[1][2] = '...';
  ...

  opener.location.href = menus[i][j];
  document.focus();
 }

신고

'Devlopment > Web' 카테고리의 다른 글

Mobile용 Meta Tag  (2) 2011.06.15
서버사이드 자바스크립트 기술  (0) 2011.06.14
이클립스, 톰캣 개발 환경 구축  (0) 2010.12.22
텔넷 접속 Script  (0) 2010.07.01
try문 안에서 변수 값  (0) 2010.06.04
원래 창 페이지 이동  (0) 2009.03.05
substring  (1) 2008.09.17
PHP 문자셋 바꾸기  (0) 2008.08.25
시간 체크  (0) 2008.07.21
함수 정의  (0) 2008.07.08
Math 객체  (0) 2008.07.08

Leave a Comment

substring

PHP에서 substring

substr(문자열, 크기)
크기는 양수는 처음부터, 음수는 끝부터

substr(문자열, 시작, 끝)
시작부터 끝까지 자른다

Example)
echo substr('abcdef', 1);     // bcdef
echo substr('abcdef', 1, 3);  // bcd
echo substr('abcdef', 0, 4);  // abcd
echo substr('abcdef', 0, 8);  // abcdef
echo substr('abcdef', -1, 1); // f

신고

'Devlopment > Web' 카테고리의 다른 글

서버사이드 자바스크립트 기술  (0) 2011.06.14
이클립스, 톰캣 개발 환경 구축  (0) 2010.12.22
텔넷 접속 Script  (0) 2010.07.01
try문 안에서 변수 값  (0) 2010.06.04
원래 창 페이지 이동  (0) 2009.03.05
substring  (1) 2008.09.17
PHP 문자셋 바꾸기  (0) 2008.08.25
시간 체크  (0) 2008.07.21
함수 정의  (0) 2008.07.08
Math 객체  (0) 2008.07.08
Date 객체  (0) 2008.07.08

Comments

  1. 론네 2008.10.05 15:36 신고 Permalink Modify/Delete Reply

    공부용이야, 아님 메모용이야?

Leave a Comment


to Top