이거 좀 해결 해주실분 > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

이거 좀 해결 해주실분 정보

이거 좀 해결 해주실분

본문

___mysql 테이블-----------------------
 
CREATE TABLE `mome` (
`no` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`name` VARCHAR( 20 ) NOT NULL ,
`email` VARCHAR( 30 ) NOT NULL ,
`memo` VARCHAR( 200 ) NOT NULL ,
`regdate` DATETIME NOT NULL ,
) TYPE = MYISAM ;

 
-----a.html-------------------------------------
<form action=b.html>
    <li> 이름 : <input type=text name=name size=10>
    <li> 이메일 : <input type=text name=email size=30>
    <li> 메모 :  <input type=text name=memo size=50><br>
    <input type=submit value='삽입'>
</form>
 
 
----b.html--------------------------------
<?
    $song = mysql_connect("localhost","beerup64","******") or die("데이타베이스에 연결할 수 없습니다.");
    mysql_select_db("beerup64");
    $query = "insert into memo(name, email, memo, regdate)
            values('$name','$email','$memo',now()) ";
    mysql_query($query, $song);
  
   mysql_close($song);
?>
 
 
------------------------------------------------------------
 
 
위와 같이 a.html 파일에서 변수값을 입력받아 b.html파일과 같이 데이타값을 저장하고 싶은데
values('$name','$email','$memo',now()) "; 의
now()값과 auto_increment값인 no값만  필드에 저정되고
위의 $name,$email,$memo 의 값은 필드에 저장이 되지를 않네요.
어디가 어떻게 잘못되었는지 도데체 찾지를 못하겠네요.
고수님들 해결방법좀 부탁드립니다.
 
  • 복사

댓글 전체

비어럽님이맞는 듯.......
mysql 테이블에서    [CREATE TABLE `mome` (/...]라고 해 놓고
b.html에서    [$query = "insert into memo(/..]라고 하면 오류나죠...
그게 아니라 제가 질문해놓고 지앤미님이 답변을주셔서 수정이 불가능하여
쓴 내용입니다. mysql의 테이블이름과 b.html의 테이블 이름이 동일하게 (memo로 정상적으로) 입력되었다는 이야기입니다.

아직해결 안되었습니다.
답변기다리겠습니다.

위의 질문 원문  오타부분 수정합니다..
CREATE TABLE `mome` (  ------------->CREATE TABLE `memo` (
a.html파일에서 text박스에 값을 입력시키고 "삽입"버튼을 눌러 전송시키면

b.html파일로 넘어오는 것은 잘 넘어옵니다.

물론 데이타베이스에 저장이 되기 때문에 내용은 아무것도 없는 빈내용 이지만요

그런데 phpmydmin으로 데이터 값을 확인하면 no, regdate 두 필드 데이터 값은

저장이 되는데 name, email, memo의 필드에 a.html에서 입력한 데이타 값이

저장이 안되고 공란으로 나옵니다.
b.html 상단에 이걸 넣어 보세요..

<?php

/*******************************************************************************
** 공통 변수, 상수, 코드
*******************************************************************************/
error_reporting(E_ALL ^ E_NOTICE);

// 보안설정이나 프레임이 달라도 쿠키가 통하도록 설정
header('P3P: CP="ALL CURa ADMa DEVa TAIa OUR BUS IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE LOC OTC"');

if (!isset($set_time_limit)) $set_time_limit = 0;
@set_time_limit($set_time_limit);

// 짧은 환경변수를 지원하지 않는다면
if (isset($HTTP_POST_VARS) && !isset($_POST)) {
$_POST  = &$HTTP_POST_VARS;
$_GET    = &$HTTP_GET_VARS;
$_SERVER = &$HTTP_SERVER_VARS;
$_COOKIE = &$HTTP_COOKIE_VARS;
$_ENV    = &$HTTP_ENV_VARS;
$_FILES  = &$HTTP_POST_FILES;

    if (!isset($_SESSION))
$_SESSION = &$HTTP_SESSION_VARS;
}

//
// phpBB2 참고
// php.ini 의 magic_quotes_gpc 값이 FALSE 인 경우 addslashes() 적용
// SQL Injection 등으로 부터 보호
//
if( !get_magic_quotes_gpc() )
{
if( is_array($_GET) )
{
while( list($k, $v) = each($_GET) )
{
if( is_array($_GET[$k]) )
{
while( list($k2, $v2) = each($_GET[$k]) )
{
$_GET[$k][$k2] = addslashes($v2);
}
@reset($_GET[$k]);
}
else
{
$_GET[$k] = addslashes($v);
}
}
@reset($_GET);
}

if( is_array($_POST) )
{
while( list($k, $v) = each($_POST) )
{
if( is_array($_POST[$k]) )
{
while( list($k2, $v2) = each($_POST[$k]) )
{
$_POST[$k][$k2] = addslashes($v2);
}
@reset($_POST[$k]);
}
else
{
$_POST[$k] = addslashes($v);
}
}
@reset($_POST);
}

if( is_array($_COOKIE) )
{
while( list($k, $v) = each($_COOKIE) )
{
if( is_array($_COOKIE[$k]) )
{
while( list($k2, $v2) = each($_COOKIE[$k]) )
{
$_COOKIE[$k][$k2] = addslashes($v2);
}
@reset($_COOKIE[$k]);
}
else
{
$_COOKIE[$k] = addslashes($v);
}
}
@reset($_COOKIE);
}
}


// PHP 4.1.0 부터 지원됨
// php.ini 의 register_globals=off 일 경우
@extract($_GET);
@extract($_POST);
@extract($_SERVER);
?>
지앤미님 답변 감사합니다. 해결이 되었습니다.
위의 내용이 보안관련 내용인것같은데 대충 어떤내용인가요.
위 내용을 해당페이지마다 이런 장문에 내용을 입력해줘야 하나요.

즉 다시 말하자면 b.html과 유사한 파일을 만든다면
위 내용을 또 해당 페이지마다 삽입을 해줘야하나요.

더 간단한 방법은 없나요.

하여튼 답변 감사합니다.
// PHP 4.1.0 부터 지원됨
// php.ini 의 register_globals=off 일 경우 <-- 이넘이 원일일듯....^^
@extract($_GET);
@extract($_POST);
@extract($_SERVER);

만 넣어 보세요....그럼...^^
© SIRSOFT
현재 페이지 제일 처음으로