55,000원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결PHP 7+ 프로그래밍
삼항연산자 모양이 똑같이 되지않습니다.
강의를 보니 부등호들이 바뀌는거같은데 플러그인을 쓰시는게 맞나요? 무슨 플러그인인가요??
- 미해결PHP 7+ 프로그래밍
문의드립니다.
안녕하세요. 강의 잘 듣고 있습니다. 게시판만들기 파트에서 2.부트스트랩 강의 중간에 'show databases';를 하시고 데이터베이스 목록이 보여지고 'use phpblog '; 하셨는데 언제 phpblog를 만드셨나요..? 아님 제가 못 본건가요? 저는 show databases;를 하면 phpblog 목록이 없다고 나오는데 어떻게 만드는건가요? 초보적인 질문이지만ㅠ 문의드립니다. 저는 데이터베이스 조회하면 myapp_test랑 phpblog 목록이 없어서 6개만 조회됩니다. 강사님과 똑같이 phpblog 만드는 방법을 자세히 알려주셨으면 합니다.
- 미해결PHP 7+ 프로그래밍
안녕하세요 HelloWorld 출력 질문입니다
안녕하세요 강사님 bitnari wamp를 통해 php를 다운받고 나서 gitbash 도 다운받아서 등록했는데요 제가 c드라이브에 workspace_php 폴더를 만들어서 사용중인데요 사진과 같이 helloworld가 출력되지 않습니다 그리고 vscode 사용할때 폴더나 패키지는 외부에서 만들어서 사용해야하는건가요? 그리고 index.php 파일 밑에있는 workspace.code-workspace 이 부분은 따로뭐 수정해주거나 해줄필요가 있나요?
- 미해결PHP 7+ 프로그래밍
똑같이 따라 했는데 왜 에러가 나는지 모르겠어요
<?php switch($_SERVER['REQUEST_METHOD']){ case 'GET': echo <<< 'HTML' <form action="/" method = 'POST' enctype="multipart/form-data"> <input type="file" name="uploads"> <input type="submit"> </form> HTML; break; case 'POST': $file = $_FILES['uploads']; // $pathinfo = pathinfo($file['name']); // $accepts = [ // 'png', 'jpg' // ]; if(is_uploaded_file($file['tmp_name'])){ move_uploaded_file($file['tmp_name'],dirname(__FILE__).'/uploades/'.$file['name'] ); } break; default: http_response_code(404); }
- 미해결PHP 7+ 프로그래밍
foo2 관련 질문 드립니다.
foo2 에서 static $count = 0 부분이 함수가 실행 될 때마다 실행 되어서 초기화 될 것 같은데 왜 초기화가 안되는 것 인가욤?
- 미해결PHP 7+ 프로그래밍
PHPBLOG 폴더에서 mysql 실행 방법
안녕하세요. 열심히 강의 듣고 있는 학생입니다. 강의 #52 bootstrap을 보고 있는데 mysql이 실행이 안 됩니다. PHPBLOG 폴더를 바탕화면에 만들고 거기에서 index.php 그리고 app.php 까지 만들었는데 mysql -uroot -p 실행 시 command not found 라고 하네요 혹시 꼭 MAMP 폴더에 있는 mysql 폴더에서 실행해야하나요?
- 해결됨PHP 7+ 프로그래밍
(include_path='.;C:\php\pear') 경로 설정 오류 같은데...
Fatal error: require_once(): Failed opening required 'D:\myeongsim\newphp\LaravelBoard/app/controllers/index.php' (include_path='.;C:\php\pear') in D:\myeongsim\newphp\LaravelBoard\app\lib\functions.php on line 125 게시판 따라서 만들고 있는데 오류가 발생해서 질문드려요 막혀서 진도를 못나가고 있네요 에러로그입니다 [2] session_get_cookie_params() expects exactly 0 parameters, 1 given in D:\myeongsim\newphp\LaravelBoard\app\lib\functions.php on line 151 [2] Invalid argument supplied for foreach() in D:\myeongsim\newphp\LaravelBoard\app\lib\functions.php on line 222 [2] require_once(D:\myeongsim\newphp\LaravelBoard/app/controllers/index.php): failed to open stream: No such file or directory in D:\myeongsim\newphp\LaravelBoard\app\lib\functions.php on line 125 php.ini에서 아래 부분을 수정해야 하나요? ; UNIX: "/path1:/path2" ;include_path = ".:/php/includes" ; ; Windows: "\path1;\path2" ;include_path = ".;c:\php\includes" ; ; PHP's default setting for include_path is ".;/path/to/php/pear" ; http://php.net/include-path D:\myeongsim\newphp\LaravelBoard 파일경로는 이렇게 만들어서 작업 중인데... 어떻게 수정해야 할까요? 몇 일째 막혀 있습니다... 도움 부탁드려요 functions.php 125 라인입니다. 아래 부분에서 에러가 발생하는 것 같아요 function routes($routes) { foreach ($routes as [ $path, $method, $callbackString ]) { if (match($path, $method)) { [ $file, $callback ] = explode('.', $callbackString); require_once dirname(__DIR__, 2) . "/app/controllers/{$file}.php"; call_user_func($callback, ...array_values($_GET)); return true; } } return false; }
- 미해결PHP 7+ 프로그래밍
${post}
위 사진은 참조 용입니다.. $posts = array_map(function ($post) { ... 저기에서 function ($post) 에서 $post 값이 어디서 어떻게 들어오는 값인가요?? 디비 컬럼 user_id 를 아래에서 집어? 넣기도 하던데... 그것도 궁금 해여
- 미해결PHP 7+ 프로그래밍
함수 지향적 php? 에 대해서 하나도 모르겠습니다. 코드 설명해주실 수 있으신가요?
콜백함수 개념이 없어서 그런지 이해할 수가 없습니다ㅠㅠ 더 상세하게 설명해주실 수 있으실까요? 아래 코드를 이해하기 위해 어떻게 공부하면 될까요? function first($query, $params) { return raw($query, $params, function ($result) { if ($row = mysqli_fetch_assoc($result)) { if (is_array($row) && count($row) > 0) { return $row; } } return []; }); } function rows($query, ...$params) { return raw($query, $params, function ($result) { $rows = []; while ($row = mysqli_fetch_assoc($result) { array_push($rows, $row); } return $rows; }); } function execute($query, ...$params) { return raw($query, $params); } function raw($query, $params=[], $callback=null) { $stmt = mysqli_prepare($GLOBALS['DB_CONNECTION'], $query); if (count($params) > 0) { $mappings = [ 'integer' => 'i', 'string' => 's', 'double' => 'd' ]; $bindstring = array_reduce($params, function ($bindstring, $arg) use ($mappings) { return $bindstring .= $mappings[gettype($arg)]; }); mysqli_stmt_bind_param($stmt, $bindstring, ...array_values($params)); } if (mysqli_stmt_execute($stmt)) { if (is_callable($callback)) { $res = call_user_func($callback, mysqli_stmt_get_result($stmt)); } $is = $res ?? true; } mysqli_stmt_close($stmt); return $is ?? []; } 이 함수는 어떻게 실행되는 건가요? $posts와 $post가 어떻게 되는 건지 모르겠습니다 $posts = array_map(function ($post) { $stmt = mysqli_prepare($GLOBALS['DB_CONNECTION'], 'SELECT * FROM users WHERE id = ? LIMIT 1'); mysqli_stmt_bind_param($stmt, 'i', $post['user_id']); if (mysqli_stmt_execute($stmt)) { $result = mysqli_stmt_get_result($stmt); [ 'username' => $username ] = mysqli_fetch_assoc($result); } mysqli_stmt_close($stmt); $content = filter_var(mb_substr(strip_tags($post['content']), 0, 200), FILTER_SANITIZE_FULL_SPECIAL_CHARS); $mappings = array_merge( compact('username', 'content'), [ 'created_at' => date('h:i A, M j', strtotime($post['created_at'])), 'url' => "/Board/post/read.php?id=" . $post['id'] ] ); return array_merge($post, $mappings); }, $posts);
- 미해결PHP 7+ 프로그래밍
폴더명이나 파일명 짓는 규칙은 어떻게 되는 건가요?
php 네이밍 컨벤션을 검색해보다가 https://www.php-fig.org/psr/psr-1/ https://www.php-fig.org/psr/psr-2/ 위의 방식을 발견했습니다. 클래스명과 네임스페이스는 파스칼방식 ClassName 메서드는 카멜방식 (강의 중에도 언급해주심) getList 상수는 대문자_언더스코어 방식 DATE_APPROVED 라고 나와있는데요 프로젝트폴더명, 폴더명, 파일명은 어떻게 지어야 하나요? 강의에서도 다양하게 나오는 것 같아서요... 답변 부탁드리겠습니다!
- 해결됨PHP 7+ 프로그래밍
uikit를 사용하시는 이유가 궁금합니다!
안녕하세요! 강의를 수강하면서 게시판을 따라 만들고 있습니다! 부트스트랩 보다 uikit라는 프레임워크를 사용하시는 이유가 궁금한데 설명해주실 수 있을까요? uikit를 검색해보니 iOS 애플리케이션의 사용자 인터페이스를 구현하고 이벤트를 관리하는 프레임워크 라고 나오더라구요. uikit는 프레임워크가 아니라 라이브러리라고 불러야 맞지 않나요? 부트스트랩을 사용하게 되면 jquery를 주로 사용하게 되어서 그런건가요? (주로 바닐라 자바스크립트를 사용하시는 것 같아서요, 요즘 추세가 바닐라 자바스크립트로 넘어가고 있는 것으로 알고 있습니다.) 이것저것 개념이 정립되지 않은 상태에서 질문드려서 죄송합니다. 물어볼 곳이 마땅치 않아서요ㅠㅠ 저번 디버깅 질문에 대한 답변 감사드립니다!
- 해결됨PHP 7+ 프로그래밍
디버깅 하는 방법 알려주세요
php debug를 설치했고 디버깅 시작이라는 부분을 발견하긴 했고 빨간색 중단점을 찍을 수 있다. 여기까진 알겠는데... 실행시키는 창이 안뜨네요 어떻게 실행시키는지 모르겠습니다ㅠㅠ 알려주세요
- 해결됨PHP 7+ 프로그래밍
PHP MySQLi 트랜잭션 처리에 대한 질문입니다.
안녕하세요. PHP 7 버전 문법 학습도 이제 거의 끝을 달리고 있습니다. 현재 JAVA 관련 또는 PHP 5 버전을 사용한 레거시 프로젝트의 유지보수 업무를 담당하고 있었기에 PHP 7 강의를 통해 최신 문법을 학습하고 기존 프로젝트를 리팩토링 할 수 있게 된 점에 대해 매우 보람찬 하루를 보내고 있습니다. 하지만 몇가지 궁금한 사항이 생겨 질문드립니다. 해당 강의 트랜잭션 처리 내용에서 두 가지 함수, mysqli_autocommit($connection, false); // Auto commit 설정 해제 mysqli_commit($connection); // 수동으로 commit 를 배울 수 있었는데요. 예를 들어, 쇼핑몰 웹 사이트에 약 50명 정도의 클라이언트가 접속해 있고, 한명의 클라이언트가 상품을 주문할 때 주문정보 입력에 대하여모든 로직이 처리되기 전까지 Auto commit 설정을 비활성화 하고, 문제없이 모든 작업이 수행됬을 때 마지막에 수동으로 commit을 해주는 방식으로 트랜잭션 처리를 진행한다면, 여기서 동시성 문제가 있을 것 같다는 생각이 들었습니다. mysqli_autocommit() 함수가 웹 사이트에 연결되어 있는 DB 전반적인 Auto commit 설정을 비활성화 한다면 (실제 DB 전체 Auto commit 설정을 변경하는 것인지, 아니면 기능 단위로 동작하는 것인지도 궁금합니다.) A 클라이언트는 주문정보를 입력(별도의 Table에 주문 정보 저장 -> 주문 이력 저장 두 개의 작업이 수행)하고, B 클라이언트는 게시글을 작성할 때 B 클라이언트의 작업이 먼저 끝나게 되어 A 클라이언트의 작업이 의도한 것처럼 동작하지 않는 상황이 올수도 있을까요? 만약, 그렇다면 어떻게 처리를 할 수 있는지 궁금합니다. (예시 1) A 클라이언트는 주문 정보 입력과 주문 이력이 모두 수행 된 후 commit이 되어야 하는데, B 클라이언트 작업이 종료되는 시점에서 mysqli_commit()이 실행되어 A 클라이언트의 주문 정보 입력이 중간에 commit 되어 버리는 상황 (예시 1) A 클라이언트는 주문 정보 입력과 주문 이력이 모두 수행 된 후 commit이 되어야 하는데, B 클라이언트 작업이 종료되는 시점에서 에러가 발생하여 rollback이 실행되어 A 클라이언트의 주문 정보 도 rollback이 되는 상황... 또한, SQL Query를 다루는 PHP 구문이 한 소스파일에 있는 것이 아니라 여러 함수의 결합으로 동작을 할 때 트랜잭션 처리하는 방법도 궁금합니다. 긴 글 읽어주셔서 감사합니다.
- 미해결PHP 7+ 프로그래밍
강의 내용과 일치하는 개발 설정 관련 페이지 링크좀 부탁드립니다.
초보자 입장에서 필요한 추천 개발 환경 설정 방법에 대한 링크나 안내 내용을 제공해 주시면 감사하겠습니다. 혹시 이미 있는 내용이면 어디에 있는지 알려주셔도 좋을 것 같습니다. 인터넷에 관련 내용들이 있긴한데 강사님 강의 내용의 설정과 일치하는 설정을 찾는게 쉽지 않은 것 같네요. ^^ 1. PHP 설치를 포함한 Visual Studio Code의 PHP 관련 설정 방법에 대한 링크나 안내 내용을 제공해 주시면 감사하겠습니다. 2. 기본적으로 Visual Studio Code를 설치하면 Powershell이 설정되어 있는 것 같은데 강의 내용에서는 Bash 셀을 활용해서 진행하는 것 같은데 쉘 설정 관련 내용도 링크나 안내 내용을 제공해 주시면 감사하겠습니다.
- 미해결PHP 7+ 프로그래밍
array_reduce 의 use
array_reduce의 인자중 use라는 키워드가 어떤 의미로 사용되는 키워드인지 알수 있을까요?
- 미해결PHP 7+ 프로그래밍
현재 작성한 게시판의 문제점 강의 영상에서 문제점만 설명해주시고 보완법은 설명을 안해주시네요 실무에 사용하거나 공부해서 사용할 사람이 많을건데/ 1. 유지보수가 어렵다/ 2. 도큐먼트 루트에 여러문서가 섞여잇다 /3.해킹의 위험이 있다 / 이정도면 치명적인거 아닌가요? 이걸로 공부해서 실무에 적용 할 사람도 있는데 뭔가 무책임 한거같아요
현재 작성한 게시판의 문제점 강의 영상에서 문제점만 설명해주시고 보완법은 설명을 안해주시네요 실무에 사용할 사람이 많을건데/ 1. 유지보수가 어렵다/ 2. 도큐먼트 루트에 여러문서가 섞여잇다 /3.해킹의 위험이 있다 / 이정도면 치명적인 결함 아닌가요? 이걸로 공부해서 실무에 적용 할 사람도 있는데 이건 공부용이니 상관없다 이런건 너무 무책임 하신거같습니다
- 미해결PHP 7+ 프로그래밍
mysqli_stmt_get_result() function undefined
카페24에서 호스팅 받아 php 버전 7.0에 mysqlnd 까지 설치되어 있는데 mysqli_stmt_get_result() function undefined 오류가 뜨네요. 이유를 알수 있을까요?
- 해결됨PHP 7+ 프로그래밍
proc_open() 함수 에러에 대한 질문입니다.
안녕하세요. Program execution 강의 내용 중 proc_open() 함수를 다루는 과정에서 실행시 오류가 출력되어 질문드립니다. 먼저, 몇가지 이미지를 먼저 첨부해드리겠습니다. (학습 디렉토리: ~/Workspace/PHP/vscode/php-study/lang) 1) lang/programExecution/process.php 2) lang/readline/readline.php 3) process.php 실행 결과 4) lang 하위 디렉토리 퍼미션(쓰기, 읽기, 실행 권한) process.php 실행시 첫 번째 줄의 에러 메시지는 Stream을 생성할 수 없어서 에러가 출력된 것 같으며 이후 에러 메시지들은 $readStream, $writeStream에 해당하는 값들이 NULL이기 때문에 핸들러 리소스를 생성하지 못하는 이슈로 인한 에러로 보입니다. proc_open() 함수의 사용법에 대해 검색을 해보아도 해결을 할 수 없었기에 혹시 작업 경로에 해당하는 디렉토리들의 퍼미션 문제인지도 확인해 보았으나, 아니었습니다. 첫 번째 에러 메시지가 출력되는 원인을 정확히 알고 싶습니다. + 추가적인 질문입니다. 에러 보고(Error reporting) 강의 내용에서 웹 서버를 띄우고, 강제로 Error을 생성하였을 때 강사님과는 다르게 화면과 Console Log에 Stack trace 부분이 제외된 Error log가 출력됩니다. php.ini 설정을 변경을 해줘야하는지, 아니면 Xdebug와 같은 디버깅 툴을 추가로 설치해야 하는지 궁금합니다. 1) 강의 화면 2) 작성자 화면 [학습 환경] O/S : Mac OSX Catalina PHP version : 7.4.10 (cli) (built: Sep 3 2020 18:21:42) ( NTS )
- 미해결PHP 7+ 프로그래밍
input 값을 넣으면 CSRF_TOKEN 값이 달라지는 이유가 뭔가요?
몇가지 궁금한 점 이 있습니다. 1. 회원가입 폼에서 input에 값을 넣고 submit을 하면 $token 값과 $_SESSION["CSRF_TOKEN"]값이 달라지는 이유가 뭔가요? 참고로 input에 값을 넣지 않으면 $token 과 $_SESSION["CSRF_TOKEN"]값이 같아집니다. 2. $_SESSION["CSRF_TOKEN"] 에 랜던한 32비트 값을 2진수에서 16진수로 바꿔준 값이 저장하고 그리고 $_SESSION["CSRF_TOKEN"]값을 "token"이라는 이름에 저장하는건가요? 3. output_add_rewrite_var()라는 함수는 www.aaaaa.com/aaaa.php?token=8cb6c897035b3a0e98f221f6a34d41f50a0d322172965c001d4d0526d88b9344 요렇게 해주는 역할을 하는건가요?
- 해결됨PHP 7+ 프로그래밍
cURL 학습중 테스트 방식에 대한 질문입니다.
안녕하세요. cURL 강의 중 테스트 코드를 작성하여 ' php -S localhost:8000 -t [DocumentRoot 경로 설정] ' 명령어를 통해 내장 웹서버를 띄운 뒤 cURL GET, POST 요청에 대한 테스트를 진행하고자 하는데 몇가지 문제 점이 발견되에 해결방법을 얻고자 글을 남깁니다. [내장 웹서버 띄우는 명령어] 1. curl_setopt() 함수를 통해 CURLOPT_URL를 설정할 때 'http://localhost:8000'로 하면 연결이 되지 않고, 'http://127.0.01:8000'로 설정했을 때만 연결이 되는 이유가 궁금합니다.(GET, POST 동일한 현상) [Chrome Console Network tab] [httpClient.php 소스 - 127.0.0.1로 설정한 경우] [httpClient.php 소스 - localhost로 설정한 경우] 2. 강의 내용중 vscode 'DEBUG CONSOLE'에 cURL 실행에 대한 결과 값이 출력되는 것을 확인할 수 있었습니다. XDebug와 같은 확장 모듈이 설치되지 않은 상황에서 DEBUG CONSOLE이 아닌, WEB 상에서의 결과 값을 출력해 볼 수 있는 방법이 있는지 궁금합니다. [index.php 소스코드(Server 용도로 사용)] * 개발환경 O/S : MacOS Catailna IDE : vscode PHP: PHP 7.4