채택완료

ajax 사용시 로그를 서버에 저장하려는데 어떻게 하나요??

2021-10-15 (금) 14:11:32 2,212

답변 1개 / 댓글 11개

채택된 답변
+20 포인트
2021-10-15 (금) 14:25:08

에러 메시지 같은거 로그에 남긴단거에요?

검색한 기록을 로그에 남긴다는건가요?

답변에 대한 댓글 11개

검색한 기록을 로그에 남기려고합니다
조건문이 javascript로 되어있는거라 php 실행이 될까ㅓ요?
ajax를 사용한다고 하셨잖아요? 그럼 검색한 모델 을 php 단에 보내서 로그에 쌓을수밖에 없어요
php 단 코드를 이렇게 했는데 안됩니다

<?php
$model_code = $_GET['model_code'];
// required headers
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");

// include database file
include_once 'mongodb_config.php';

$dbname = 'product';
$collection = 'productAll';


//DB connection
$db = new DbManager();
$conn = $db->getConnection();

// read all records
$filter = ['model_code' => ['$regex' => '^'.$model_code.'$', '$options' => 'i']];
$option = ['limit' => 1];
$read = new MongoDB\Driver\Query($filter, $option);

//fetch records
$records = $conn->executeQuery("$dbname.$collection", $read);

echo json_encode(iterator_to_array($records), JSON_UNESCAPED_UNICODE);

function log_write($str){

//디렉토리 경로
$log_dir = '/var/www/html/estimate/log';
//$log_dir = "/home/root...등의 절대경로 ";


$log_txt = "\r\n";
$log_txt .= '(' . date("Y-m-d H:i:s") . ')' . "\r\n";
$log_txt .= $str;

$log_file = fopen($log_dir . 'search.log', 'a');
fwrite($log_file, $log_txt . "\r\n\r\n");
fclose($log_file);

}

log_write($model_code);
?>
퍼미션 권한도 주셔야되요
mb_dir << 이건 경로 이구요
@mkdir($mb_dir,707);
@chmod($mb_dir, 707);
퍼미션도 줬는데 안되네요ㅠ
그러면 직접 권한을 주세요
리눅스 서버 접속해서 chmod 707 파일명
아니면 파일질라 접속해서 권한을 주면되요
응용 해보세요
파일질라 통해서도 변경했는데 안되네요ㅎㅎ
너무 어렵네요
ajax를 실행 했는지... 차라리 저 로그부분만 index.php에 넣어서 실행해보세요
생성은 됐습니다!!!
이제 if문에 조건을 줘야하는데 몽고디비 조회 값이 없을때만 사용해야합니다

// read all records
$filter = ['model_code' => ['$regex' => '^'.$model_code.'$', '$options' => 'i']];
$option = ['limit' => 1];
$read = new MongoDB\Driver\Query($filter, $option);

//fetch records
$records = $conn->executeQuery("$dbname.$collection", $read);

echo json_encode(iterator_to_array($records), JSON_UNESCAPED_UNICODE);

if(???????) {
$dir = "/var/www/html/estimate/log". date('Y/n/d');

if(!is_dir($dir))
{
mkdir($dir,0777,true);
chmod($dir,0777,true);
}



$log_txt = date('Y_m_d_H:i:s') . ' | '. '검색모델명'. ' : '.$model_code;

$log_dir = $dir."/";

$file_name = date('Y_m_d');

$log_file = fopen($log_dir."/".$file_name.".txt", "a");

fwrite($log_file, $log_txt."\r\n");

fclose($log_file);
}

답변을 작성하려면 로그인이 필요합니다.