PHP Generator 16.9 new features. Part 2. Customizing Column Filter

PHP Generator 169의 새로운 기능을 설명하는 비디오 시리즈의 두 번째 부분에 오신 것을 환영합니다

이 비디오에서는 필터 드롭 다운 목록 값을 사용자 정의하는 방법을 학습합니다 이 비디오에서는 필터 드롭 다운 목록 값을 사용자 정의하는 방법을 학습합니다 "등급"열에 다음 조건에 따라 데이터를 필터링하는 기능을 제공합시다 등급이 7보다 높은 영화의 경우 '차가움', 등급이 5보다 낮은 영화의 경우 '양호', 등급이 5보다 낮은 영화의 경우 '너무'입니다 등급이 7보다 높은 영화의 경우 '차가움', 등급이 5보다 낮은 영화의 경우 '양호', 등급이 5보다 낮은 영화의 경우 '너무'입니다

이러한 열 필터를 구현하려면, "영화"웹 페이지의 편집기를 엽니 다 이벤트 이름은 "OnPrepareColumnFilter"입니다 이 이벤트를 사용하면이 웹 페이지에서 사용할 열 필터를 사용자 정의 할 수 있습니다 여기에서는 필터 사용자 정의와 관련된 코드를 배치합니다 여기에서는 필터 사용자 정의와 관련된 코드를 배치합니다

ColumnFilter 클래스는 setOptionsFor () 함수를 제공합니다 첫 번째 인수는 열 이름이며, 두 번째 인수는 맞춤 필터 값 집합이며, 두 번째 인수는 맞춤 필터 값 집합이며, 세 번째 매개 변수는 기본 열 필터 값이 사용자 정의 열 필터 값에 추가되는지 여부를 정의합니다 세 번째 매개 변수는 기본 열 필터 값이 사용자 정의 열 필터 값에 추가되는지 여부를 정의합니다 이제 변경 사항을 저장하고 응용 프로그램을 생성하여 결과를 확인하십시오 이제 변경 사항을 저장하고 응용 프로그램을 생성하여 결과를 확인하십시오

'등급'열 머리글에는 이제 필터 버튼이 있습니다 열 필터는 계획대로 모양과 작동합니다 이제 필터 값을 그룹화하는 방법을 보여줍니다 "런타임"열에 대한 필터를 활성화하고 다음 값 집합으로 채 웁니다 '90 분 미만', '90 – 180 분 ','180 분 이상 '을 사용하십시오

따라서 '90 – 180 분 '간격은 '90 – 120 분', '120-150 분'및 '150-180 분'간격의 그룹이됩니다 이러한 필터를 구현하는 방법을 살펴 보겠습니다 "OnPrepareColumnFilter"이벤트 편집기를 다시 열고 다음 코드를 삽입하십시오 강조 표시된 코드는 열 필터에서 값을 그룹화합니다 이제 결과를 봅시다

그것은 우리가 계획 한대로 정확하게 보인다 그것은 우리가 계획 한대로 정확하게 보인다 90 분 120 분 120 분 150 분 180 분까지 동영상을 선택하십시오 결과는 OK입니다 다음 목표는 '출시일'열 필터에 2 개의 값을 더 추가하는 것입니다

출시일이 해당 값보다 크거나 같은 영화의 경우 2010을 사용합니다 2000 년 이후로 출시 된 영화의 경우 '2000 년대'입니다 2000 년 이후로 출시 된 영화의 경우 '2000 년대'입니다 이제 "OnPrepareColumnFilter"이벤트 편집기에 다음 코드를 추가해야합니다 이 행은 사용자 정의 필터 조건을 정의합니다

세 번째 인수를 "true"로 설정하여 사용자 정의와 함께 기본 열 필터 값을 사용합니다 프로젝트를 재생성하는 변경 사항을 저장합시다 빌라! 모든 것이 그 자리에 있습니다

어떻게 작동하는지 보자 이제 우리는 필터가 잘 작동하는 것을 볼 수 있습니다 위의 필터 행에는 전체 필터 조건이 포함됩니다

이 기능을 즐기시기 바랍니다 시청 해 주셔서 감사 드리며이 비디오를 좋아하고 Youtube 채널을 구독하는 것을 잊지 마십시오!

PHP Generator 16.9 new features. Part 3. Record Comparison

여보세요! PHP Generator 169의 새로운 기능을 설명하는 비디오 시리즈의 세 번째 파트에 오신 것을 환영합니다

여러 버전 중에서이 버전을 사용하면 여러 레코드를 비교할 수 있습니다 몇 번의 마우스 클릭만으로 그 값의 차이를 찾을 수 있습니다 이 기능은 레코드에 많은 특성이있는 경우 매우 유용합니다 예를 들어 둘 이상의 전화 모델을 서로 비교할 수 있습니다 우리가 볼 수 있듯이 각 전화에는 많은 수의 속성이 있습니다 또한 이러한 속성의 중요한 부분은 모든 전화기에 대해 동일하거나 가까운 값을가집니다

비교를 위해 두 대의 전화기를 선택합시다 전화를 선택하면 버튼이 눈금 상단에 나타납니다 전화를 하나 더 선택하고이 버튼을 다시 살펴 봅니다 선택 관리 버튼입니다 한 페이지에서 하나 이상의 레코드가 선택된 경우에만 나타납니다

캡션에는 선택한 레코드 수가 표시됩니다 이 버튼을 클릭합시다 드롭 다운 목록에서 '비교'를 선택하십시오 비교 표가 열립니다 기본적으로 다른 값을 가진 레코드 만 표시됩니다

모든 레코드를 표시하려면 "모두 표시"버튼을 클릭하십시오 동일한 값을 가진 레코드가 강조 표시됩니다 비교 테이블의 머리글을 만들 수 있습니다 비교에 사용할 열을 선택할 수도 있습니다 비교를 바꾸어 봅시다

'모델 이름' 비교의 "사진"열을 비교 표 머리글에 "사진"열을 포함 시키십시오 우리 프로젝트에 간다 "전화"페이지 속성을 엽니 다 비교 테이블의 머리글에 표시 할 열을 정의하려면 "레코드 비교의 헤더 열"옵션을 선택하십시오 창의 왼쪽에있는 목록에서 "사진"열을 선택하고 오른쪽 목록으로 이동하십시오

변경 사항을 저장하십시오 이제 "전화"페이지 편집기를 엽니 다 여기서 우리는 비교에 포함될 열을 선택할 수 있습니다 해당 목록에서 "모델 이름"및 "사진"열을 제외하십시오 변경 사항을 저장하고 응용 프로그램을 다시 생성하십시오

결과를 봅시다 알 수 있듯이 '모델 이름'항목은 비교 표에서 사라집니다 이제 "사진"열이 표 머리글에 표시됩니다 이제 제공 한 사용자 지정 알고리즘을 사용하여 레코드 값을 비교하는 자체 함수를 정의하는 방법에 대해 알아 보겠습니다 "Height", "Length"및 "Width"열의 값은 거의 동일합니다

그런 값을 같다고 생각할 비교 함수를 정의합시다 우리의 프로젝트로 돌아 가기 "OnCustomCompareColumn"이벤트 편집기를여십시오 두 줄의 매우 이해하기 쉬운 코드를 삽입하십시오 "높이", "길이"및 "너비"열의 값은 그 차이가 05보다 작거나 같으면 같다고 간주됩니다

Les는 변경 사항을 저장하고 응용 프로그램을 다시 생성 한 다음 브라우저 창으로 돌아갑니다 "높이", "길이"및 "너비"레코드가 차이 목록에서 사라집니다 왜냐하면 이 레코드의 값 중 현재 평등 한 것으로 간주됩니다 비교에 새 레코드를 쉽게 추가 할 수 있습니다 또한 단 한 번의 마우스 클릭만으로 비교 레코드를 제거 할 수 있습니다 그게 오늘이야 보고 주셔서 대단히 감사합니다! YouTube 동영상을 좋아하고 Youtube 채널을 구독하는 것을 잊지 마십시오!

PHP Generator 16.9 new features. Part 4. Custom Form Layouts

PHP Generator 169의 새로운 기능을 설명하는 비디오 시리즈의 네 번째 파트에 오신 것을 환영합니다

이 비디오에서는 편집, 삽입 및보기 양식의 레이아웃을 사용자 정의하는 방법을 배우게됩니다 이것은 우리 제품에서 만든 기본 편집 양식입니다 보시다시피 모든 편집기는 다른 편집기 위에 하나씩 있습니다 새 버전을 사용하면 몇 줄의 PHP 코드 만 사용하여 이러한 양식의 레이아웃을 변경할 수 있습니다 이 양식을 쉽게 얻을 수 있습니다

모든보기 / 편집 / 삽입 모드에서 양식 레이아웃이 지원됩니다 별도의 페이지에 표시되는 양식의 레이아웃을 사용자 정의 할 수 있습니다 모달 대화 상자에서, 인라인 양식뿐 아니라 레이아웃은 두 가지 형태로 표현 될 수 있습니다 입력 컨트롤 레이블이 해당 컨트롤 상단에있는 경우이 페이지의 세로 형식 과 입력 컨트롤 레이블이 컨트롤의 왼쪽에있는 가로 형식입니다 관련 입력 컨트롤을 양식으로 그룹화하고 그룹 내의 컨트롤 위치를 관리 할 수 ​​있습니다 참고 : 양식 레이아웃은 12 개의 가상 열로 나뉩니다 자, 레이아웃을 조사해 봅시다

그것은 4 개의 그룹으로 구성됩니다 첫 번째 그룹은 8 개의 열로 구성된 "개인 정보"입니다 4 개의 열이있는 "사진"그룹 및 "현재 팀"과 "기타"와 각각 12 개의 컬럼이 있습니다 각 그룹에는 하나 이상의 행이 있습니다 마지막으로 하나 이상의 입력 컨트롤이 각 행에 위치 할 수 있습니다

우리가 볼 수 있듯이 "개인 정보"그룹은 4 개의 행으로 구성됩니다 첫 번째와 두 번째 행에는 하나의 입력 컨트롤이 있으며, 세 번째와 네 번째 행에는 각각 두 개의 입력 컨트롤이 있습니다 그런데 "현재 팀"그룹의 유일한 행에는 세 가지 컨트롤이 있습니다 프로젝트로 이동하여 이런 종류의 레이아웃을 담당하는 코드를 확인합니다 페이지 "플레이어"편집기 열기 "이벤트"탭에서 "OnGetCustomFormLayout"이벤트 편집기를 엽니 다

아주 간단한 코드가 여기에 있습니다 편집, 삽입 및보기 양식 각각에 대해 자체 레이아웃을 정의 할 수 있습니다 르브론 제임스의보기 양식을 엽니 다 우리가 볼 수 있듯이이 양식에 대해 다른 레이아웃이 정의되었습니다 지켜봐 줘서 고마워! 이 비디오를 좋아하고 Youtube 채널을 구독하는 것을 잊지 마십시오!

connect PHP with SQLSERVER 2017 EASYPHP

현재 PHP 버전 확인 여기 버전은 54

24입니다 SQLSRV30EXE 다운로드 5424 버전을 가지고 있기 때문에 나는 54 번 드라이버를 가지고있다 설명에 남아있는 드라이버의 이름 파일의 이름을 복사한다

서버 이름 데이터베이스의 이름 잘 확립 된 연결 SQL 쿼리 표시 삭제 요청

PHP Generator: On-the-Fly Adding New Items to Lookup Controls

여보세요! PHP Generator 169의 새로운 기능을 설명하는 비디오 시리즈의 다섯 번째 파트에 오신 것을 환영합니다

직접 추가 기능을 시연하려면 조회 필드를 통해 연결된 두 페이지가 필요합니다 첫 번째 페이지는 고객이 지불 한 '지불'페이지입니다 이 페이지는 '고객'조회 열을 통해 링크됩니다 고객 목록을 나타내는 '고객'페이지가 표시됩니다 Lisa Anderson이 만든 새로운 지불액을 추가합시다

죄송합니다 우리는 기록에 그러한 고객이 없습니다 그래서 우리는 그것을 추가해야합니다 이전 버전에서는 삽입 양식을 닫아야했습니다 고객 웹 페이지를 열면 새로운 고객이 추가됩니다

그런 다음 페이지로 돌아가서 새 지불을 추가해야했습니다 이 버전을 시작하면 삽입 또는 편집 양식을 남기지 않고 조회 편집기에 새 요소를 추가 할 수 있습니다 이 기능을 사용하도록 설정합시다 프로젝트로 이동, 지불 페이지의 편집기 열기 '고객'열의 '새 항목을 즉시 추가'옵션을 선택하십시오 삽입 양식을 사용자 정의하려면 줄임표 단추를 클릭하십시오

변경 사항 저장 응용 프로그램을 생성합니다 이제 새로운 기능을 사용해 볼 준비가되었습니다 한 번 더 지불을 추가합시다 보시다시피, "고객"조회 편집기에는 삽입 버튼이 있습니다 조회 데이터 소스에 새 항목을 추가하려면이 단추를 누르십시오

낸시 토머스 (Nancy Thomas)가 고객 목록에없는 새 지불액을 추가합시다 새로운 고객이 조회 편집기에 즉시 추가되고 기본적으로 선택됩니다 양식을 작성하고 지불금을 저장하십시오 지금 알 수 있듯이 새 결제가 성공적으로 추가되었습니다 이제 "고객"페이지로 이동하여 신규 고객이 성공적으로 추가되었는지 확인하십시오

항목을 '직접 추가'기능을 추가하는 중첩 깊이는 무제한입니다 즉 위에서 언급 한 모달 창에서 조회 편집기에 대한 새 요소를 작성할 수 있습니다 이 기능을 즐기시기 바랍니다! 보고 주셔서 감사합니다! YouTube 동영상을 좋아하고 Youtube 채널을 구독하는 것을 잊지 마십시오!

SCRIPTCASE – Gerador de Sistemas e Relatórios em PHP

웹 시스템을 빠르고 저비용으로 개발해야합니까? 실시간 정보가 포함 된 신속하게 배달되는 보고서가 필요합니까? 개발에 드는 시간과 비용을 줄이는 소프트웨어가 있다면 어떨까요? 완벽한 시스템 구축 및 보고서 작성 최고의 효율성과 가장 효율적으로 품질 및 안전성을 갖춘 개인화 된 제품 웹 개발 시장 환경! Scriptcase! Scriptccase를 사용하려면 하나의 브라우저 만 있으면됩니다 로컬 네트워크 또는 인터넷에 연결하십시오

여러 개발자의 작업 허용 동일한 프로젝트에서 동시에 주요 데이터베이스 액세스 시장의 강력한 응용 프로그램을 직관적이고 빠른 모드 : 관리 보고서, 등록, 사용자 지정 가능한 런타임 그래픽, 사용자, 동적 메뉴, 캘린더, 대시 보드 등 생성 된 응용 프로그램은 도구와 독립적으로 작동하여 PHP 언어를 지원하는 모든 웹 서버에 게시 할 수 있습니다 지금 Scriptcase 테스트 및 웹 시스템 개발을위한 혁신적인 방법 학습

MySQL, PHP: Formatting dates and times: Strings and SQL | lynda.com

이 영화에서 우리는 날짜와 시간을 계속 살펴볼 것입니다 마지막 영화에서 유닉스 타임 스탬프를 만드는 법을 보았습니다

이 영화에서 저는 우리가 유닉스 타임 스탬프를 어떻게 포맷 할 수 있는지 살펴 보자 우리가 그렇게 할 수있는 두 가지 기능이 있습니다 첫번째 함수는 날짜이고 두 번째는 strf 시간입니다 자, 발음 할 수 있습니다 그 문자열을 시간, 문자열 형식 시간,하지만 생각은 우리가 타임 스탬프를 문자열로 변환합니다

두 경우 모두 우리는 Unix 타임 스탬프를 11 월과 같이 사람이 읽을 수있는 형식으로 포맷합니다 2005 년 13 월 13 일, 1970 년대 이래로 몇 초가 걸렸습니다 그다지 사용자 친화적이지 않습니다 이 함수들 각각은 두 번째 인수로 타임 스탬프를 사용합니다 그 타임 스탬프는 단순하다

유닉스 타임 스탬프, 우리가 만든 모든 타임 스탬프를 가져 와서 그 두 번째 주장 까다로운 부분이고 우리가하는 형식입니다 더 많은 것을 배워야 할 것입니다 사실, 기능은 동일하게 보일 수 있습니다 그러나 그것들을 구별하는 것은 형식입니다

각 함수에는 고유 한 형식 규칙이 있습니다 먼저 날짜를 살펴 보겠습니다 서식을 표시하는 가장 쉬운 방법 날짜에 대한 옵션은 날짜에 대한 http://wwwphpnet 페이지를 살펴 보는 것입니다

가기 http://wwwphpnet으로 이동하여 날짜를 검색하면이 페이지가 표시됩니다 다음은 출력 문자열에 대한 다양한 형식입니다 아래로 스크롤

여기에 d, D, j 등의 형식 문자가 있음을 알 수 있습니다 각 코드가하는 일 예를 들어, d는 해당 월의 일이며, 두 자리 01 ~ 31과 같은 0으로 시작됩니다 j도 한 달을 나타내지 만 앞에 오는 0이없는 경우 1 – 31입니다 D는 하루의 텍스트 표현이며, 월요일부터 일요일까지의 세 글자, 수요일의 경우 수요일 예를 들어

이제 페이지에서 조금 더 아래로 스크롤하여 이러한 문자열이 어떻게 보이는지 확인할 수 있습니다 익숙한 형식은 단순한 문자열이지만 형식 문자는 날짜의 각 부분에 대한 자리 표시 자 date 함수가 호출되면, 형식 코드 자리 표시자를 실제 데이터로 대체합니다 예를 들어,이 형식 문자열은 바로 위의 줄을 반환합니다

2005 년 8 월 8 일 월요일과 그 다음 시간 이제이 예제에서 그들은지나 가지 않습니다 타임 스탬프에서 현재 시간을 기본값으로 사용합니다 그러나 아래 예제에서, 두 번째 인수로 타임 스탬프에서 전달되는 것을 볼 수 있습니다 그들은 지어 준다

timestamp는 mktime을 사용하여 그것을 전달합니다 또한 두 번째 형식 코드에서 사용하는 형식 코드는 단순히 L이고 그게 전부입니다 우리가 가서 L을 보면, 그것이 무엇을하는지 보게 될 것입니다 그것은 요일을 반환합니다 그래서 이것은 요일을 알려줍니다

2000 년 7 월 1 일입니다 그것은 좋은 작은 트릭입니다 뿐만 아니라 우리는 형식을 인간이 읽을 수있는 무언가로 된 것입니다 실제로 우리는 달력에 대한 정보도 제공합니다 지금 개인적으로, 나는 날짜를 사용하지 않고 나는 문자열 대신 시간을 사용하는 것이 좋습니다

내가 그것을 좋아하는 이유 더 나은 것은 유닉스 오픈 스탠다드의 일부이며 많은 프로그래밍에서 사용됩니다 PHP 이외의 언어를 지원하며 외국어로 날짜 형식을 지원합니다 게다가 시간 형식 코드의 문자열을 살펴 보겠습니다 그들이 어떻게 날짜와 다른지

예를 들어 % d를 보면 % 무엇보다도 앞에 %가 있다는 것을 알 수 있습니다 %를 사용하면 명확하게 나타납니다 이것은 형식 코드입니다 그래서 시간의 모든 문자열은 다음으로 갈 것입니다 코드 앞에 % 기호를 입력하십시오

따라서 본질적으로 % d은 (는) 동일한 작업을 수행합니다 d가 날짜 함수에서 그랬습니다 하지만 이제 % D을 살펴보십시오 너는 그것을 볼 것이다 이것은 다릅니다

그날의 3 자리 코드 대신 일주일에 월, 일, 년의 단축키가 될 것입니다 그들 사이에 슬래시가 있습니다 대신 % a를 여기 보면 그것이 단축 된 요일 이름임을 확인하십시오 그래서 그것이 우리가 똑같이 얻는 방법입니다 우리가 이전에 가진 기능

그래서 그들 중 일부는 똑같을 것입니다 % m (예 : 여기 아래), 10 진수로 나타낸 월 그것은 동일합니다 그러나 % M과 다른 것들은 그렇지 않습니다 그래서 많은 차이가 있습니다

그래서 너 정말 각각의 코드 집합을 별도로 배워야 만합니다 그래서 당신이해야한다고 생각합니다 하나를 고르고 그걸로 붙어서, 나는 그 끈으로 시간을 가져갈 것을 권한다 (strftime) 이제 분명히 여기에 코드 목록이 있습니다

시간 문자열은 포괄적 인 목록이므로 복사 할 수 있습니다 당신이 가장 자주 사용하려고하는 것들을 내려 놓고 조금만 만들어라 컨닝 지 그러나 당신은 또한 그들과 꽤 빨리 친숙해질 것입니다 당신이 그것을 필요할 때 기억할 수 있습니다

자 이제 시도해 보겠습니다 나는 아직도 내 오래된 창문을 열어 놓았다 date_time_unix 계속 진행하고 파일> 다른 이름으로 저장을 수행하면 이 중 하나는 date_time_formatphp이고, 여기서는 포맷팅, 그런 다음 우리가 가지고있는 모든 PHP를 정리하고 새로 시작할 수 있습니다

그래서 내가 할 첫 번째 일은 바로 간단한 간단한 타임 스탬프를 현재 시간 그리고 우리는 그 방법을 바로 알 수 있습니다 그럼 만들어 보자 우리 스스로 strftime의 결과를 되풀이합니다 우리는 "오늘 날짜는" 우리의 포맷 코드를 넣자

% m 따라서 % 기호는 코드임을 알립니다 strftime을 위해, 그리고 나서 m은 그것의 숫자가 % d / % y를 갖습니다 그 다음 우리가 물론 통과해야 할 마지막 것 우리의 타임 스탬프 우리의 브라우저로 돌아가서 그거

Unix를로드하는 대신 formatphp를로드합니다 됐어 그래서 오늘 2008 년 11 월 1 일입니다 현재, 오늘은 실제로 11 월 1 일이 아닙니다

대신 나는 그 시간에 내 시스템 시계를 설정하면 내가 당신에게 뭔가를 보여줄 수 있습니다 지금, 이전에 나는 왜 내가 strftime을 date보다 좋아하는지 이유를 지적했다 strftime에는없는 한 가지 기능이 있습니다 날짜에 대한 옵션이 있습니다 한 달 또는 하루 전에 앞에 0을 남겨 둡니다

여기서 주목 해주세요 01을 얻었습니다 앞에서 말한 제로의 제로입니다 우리는 날짜를 남겨 둘 수있는 옵션을 유지했고, 단지 2008 년 11 월 1 일 우리가 1 월에 대해 말하면 똑같은 것이 사실입니다 string 시간은 01로 인쇄되지만, 날짜에는 0을 시작합니다

우리가 얻고 싶어하는 많은 시간들 그 선행 제로를 제거하십시오 그래서 저는 여러분이 글쓰기로 어떻게 그것을 할 수 있는지 보여 드리겠습니다 너 자신 도우미 기능 해킹이 조금 있지만 효과적입니다 여기에서 우리가 할 일은 우리가이 줄을 가져 와서 우리가 여기 복사 할거야, 형식 지정을 보내는 대신 별표를 넣을 것입니다

이 두 사람 앞에서 그것들은 제로가 보여 질지도 모르는 두 곳입니다 쪽으로 그래서 우리는 우리가 0을보고 싶은 위치를 표시하는 것입니다 이 별표로 우리가하고 있습니다 이제 원하는 문자를 사용할 수 있습니다

별표는 매우 자주 사용하지 않기 때문에 선택했습니다 이런 종류의 날짜를 포맷 할 때 다른 문자를 쉽게 사용할 수 있습니다 다른 이유로 별표가 필요한 경우 자 이제 도우미 함수를 작성해 보겠습니다 strip_zeros_from_date 함수를 호출하고 $ marked_string =을 전달합니다

우리는 기본적으로 빈 문자열을 전달합니다 첫 번째 단계는 표시된 0을 제거 할 것입니다 그래서 $ no_zeros는 str _replace와 같을 것이고, string replace (str_replace)를 사용하여 모든 항목을 찾습니다 별표가 0 인 경우, 우리가 그것을 발견하면 두 가지를 제거하고 두 가지를 모두 얻습니다 거기에서

그렇다면 우리는 marked_string을 전달해야 할 것입니다 검색 할 수 있습니다 그런 다음 일단 그렇게하면 마지막 단계는 우리가 처리하고 싶지 않기 때문에 남은 점수를 제거하십시오 우리가 12 월과 같은 것을 가지고있는 경우, 앞에 0이없는 경우, 그래서 우리는 아직 별표를 쓰지 않았기 때문에 거기에 앉아있을 것입니다 제거되었습니다

그래서 우리는 $ cleaned_string이라는 또 다른 단계를 수행 할 것입니다 =, 우리는 또 다른 str_replace를 할 것입니다 하지만 이번에는 아직 별표가없는 별표가 있으면 찾으십시오 아무것도, 우리는 그것을 no_zeros 문자열로 할 것입니다 마지막으로, 청소 된 가치

그래서 우리가 간다 이제 우리는 우리를 위해 일해야합니다 이 strftime을 함수 아래로 이동시켜 그것은 정의되어 있습니다 우리는 그 모든 것을 다룰 것입니다 우리는 거기에 갈

악 그것을 저장하고, 다시 돌아 오자 그것을 시도하자 우리가 있습니다 그것은 거기에 br 태그를 넣지 않았지만 당신은 이것을 볼 수 있습니다 이 01은 01을 제거했습니다 따라서 대부분의 PHP 프로젝트를 진행하고 있습니다

strftime을 사용하는 데 도움이되는이 함수에 넣으십시오 그 0을 제거 할 수 있고, 또한 당신에게 도움이 될 것이라고 생각합니다 가장 마지막으로 여기서 설명하고자하는 것은 문자열 형식을 지정할 수도 있다는 것입니다 MySQL에 저장하기에 적합합니다 많은 사람들이 어떻게하는지 궁금해합니다

변환 Unix 타임 스탬프를 MySQL에 전달하고 싶지는 않습니다 너는 원한다 MySQL이 이해할 수있는 형식으로 포맷하십시오 다행히도 매우 쉽습니다

멋진 휴식을 위해서 에코 "<hr />"를하자 그러면 우리는 새로운 것을 할 것이다 $ dt = 시간; 날짜 시간 동안 dt가됩니다 그러면 우리가 얻고 자하는 것은 $ mysql_ datetime입니다 우리가 할 방법은 strftime 함수를 사용하는 것입니다

다음 서식 지정 코드를 입력하십시오 % Y, 그 해는 네 자리 숫자 모두, % m, % d, 공백, 시간당 % H, 분, % S로 표시됩니다 우리가 간다 그리고 당연히 우리는 통과하기를 원할 것이다 그 때 우리는 단지 함께 일하고있었습니다

그래서 우리는 타임 스탬프를 전달할 수 있습니다 우리는이 형식으로 출력 할 것입니다 이것은 mysql_datetime에 들어갑니다 물론, 우리가 그 결과를보고 싶다면, 우리는 단지 그것에 에코를해야합니다 우리는 거기에 갈

그래서 우리는 돌아올 것입니다 그게 MySQL이 이해할 수있는 형식 그러니 그 서식을 적어 두십시오 코드 MySQL과 함께 사용하기에 편리하게 유지해야합니다

하지만 너도 여기에이 사본을 만들어서 결과가 무엇인지 보여 주기만하면됩니다 날짜 나 다른 시스템을 사용하게 될 경우에 대비하여 MySQL가 날짜, 시간 필드에 대해 원하는 형식 이제 날짜 필드가있는 경우 그 날짜의 일부가 될 것입니다, 그러나 이것이 사용할 형식입니다 이제 우리는 날짜와 시간을 다루고 형식을 배웠으니, 우리는 계속 전진 할 준비가되어 있습니다 다음 영화에서는 서버와 요청을 살펴볼 것입니다

변수

How to display data from database into PDF pages | PHP FPDF Tutorial #4

PHP FPDF 튜토리얼 시리즈의 네 번째 장에 오신 것을 환영합니다 이 장에서는 데이터베이스의 데이터를 PDF로 저장하는 방법을 설명하려고합니다

인쇄 가능한 PDF 페이지에서 데이터를 표현하는 방법에 대해 설명합니다 이 자습서에서는 이전 장의 머리글과 바닥 글을 사용합니다 페이지 넘김을 설정하고 넘치는 내용을 처리하는 방법도 배웁니다 내가 포함하는 임의의 더미 데이터를 준비했습니다 전화, 이메일 및 주소가있는 고객 목록

데이터는 데이터베이스의 mysql 테이블에 저장됩니다 페이지 나누기를 실행하기 위해 많은 양의 데이터가 필요하므로 여기에 200 개를 준비했습니다 먼저 데이터베이스 연결을해야합니다 그런 다음 이전 장에서 불필요한 줄을 제거하십시오 이제 우리는 Header 함수 안에 페이지와 표제를 만들어야합니다

그래서 그것은 각 페이지에서 반복 될 것입니다 여기 SetDrawColor () 및 SetFillColor ()를 사용하여 더 예쁘게 만듭니다 셀에 배경색을 적용하려면 셀의 일곱 번째 매개 변수로 true를 추가하십시오 바닥 글을 나중을 위해두고 콘텐츠로 건너 뜁니다 평소와 마찬가지로 데이터베이스 쿼리를 만들어 결과를 셀로 반복합니다

여기에서 볼 수 있듯이 페이지 끝 부분에 도달하면 콘텐츠가 자동으로 중단됩니다 기본 페이지 나누기는 페이지 아래쪽에서 2cm입니다 이를 변경하기 위해 SetAutoPageBreak () 메소드를 사용할 수 있습니다 여기, 나는 그것을 15 밀리미터로 설정했다 이제 여기에서 볼 수 있듯이 넘치는 텍스트가 다음 셀로 겹쳐서 표시됩니다

이를 처리 할 수있는 많은 옵션이 있습니다 가장 쉬운 방법은 내용을 자르는 것이지만 나머지 정보는 숨길 것입니다 나는 다른 장에서 넘치는 텍스트를 처리하는 방법을 설명 할 것이다 이번에는 텍스트가 조금만 오버플로되기 때문에 셀에 맞게 텍스트를 축소 할 수 있습니다 GetStringWidth 메소드를 사용하여 텍스트가 셀을 오버플로하는지 확인하고 로직이 나머지를 처리하도록 할 수 있습니다

이제 테이블을 더 좋아 보이게합시다 콘텐츠 셀에는 왼쪽 테두리와 오른쪽 테두리 만 사용하십시오 마지막으로 테이블을 닫으려면 더미 셀을 바닥 글에 넣으십시오 이것으로이 장의 튜토리얼을 마칩니다 시청 해주셔서 감사합니다

다음 챕터에서 만나요 더 많은 자습서를 좋아하고 구독하십시오

Crea juegos en línea en html5 con canvas, svg, json y sql

나만의 것을 만들겠습니까? 온라인 게임? 게임 만들기 배우기 CANVAS 및 JAVASCRIPT가있는 HTML5 오늘, 비디오 게임의 개발 플랫폼상의 장벽을 넘어 섰다 이제 게임을 웹에 맞출 수 있습니다

노트북, 태블릿 또는 모바일에서 재생할 수 있습니다 설치할 필요 없음 확장 또는 플러그인 없음 네이티브 Javascript 만 사용하십시오 캔버스 또한, 게임이 필수적입니다 사용자 등록 허용 소셜 네트워크의 통합 및 통합 비즈니스 전략, 또는 단지 엔터테인먼트 용 이 과정에서 당신은 자바 스크립트로 동적 그래픽 CANVAS라는 HTML5 요소를 통해 혁명을 일으킨 자원 웹상의 그래픽 2D 및 3D 컨텍스트 덕분에 더하여 우리는 이점을 이용하기 위하여려고하고있다 SVG 벡터 수입 할 수입 데이터 J-SON 따라서 상호 작용을 생성 할 수 있어야합니다 자바 스크립트가 더 풍부 해졌다

객체 지향 프로그래밍 마지막으로 우리 게임에 포함시킬 것입니다 PHP를 이용한 SQL 데이터 패턴을 사용하여 모델 – 뷰 – 컨트롤러 사용자 등록 소셜 네트워크 페이스 북을 통해 따라서 우리의 게임을 향상 시키십시오 엄청나게! 이 과정이 끝나면 배우게됩니다 나만의 온라인 게임 만들기 다중 사용자 등록 페이스 북에서 따라서 전략을 생성한다 웹에서 대량 캠페인 레벨 업을 권장합니다!

PHP: ejemplo de inyección de SQL

안녕하세요, 저는 알리 칸테 대학교 (University of Alicante)의 컴퓨터 과학 교수 인 Sergio Luján Mora입니다 그리고이 비디오에서는 "웹 개발 소개"과정의 일부입니다

SQL 주입의 두 가지 예를 보여 드리겠습니다 시작하기 전에 내가 할 수있는 웹 사이트 몇 가지를 알려드립니다 저와 제 일에 대한 더 많은 정보와 저에게 연락 할 수있는 두 가지 방법을 찾으십시오 내 이메일 sergiolujan@ua

es와 트위터 계정 @sergiolujanmora를 통해 이 비디오에서는 SQL 주입이 무엇인지 설명하지 않겠습니다 그래서, 만약 당신이 모르는 SQL 주입이란 무엇입니까? 예 : Wikipedia에있는 기사 또한 문서에있는 SQL 삽입에 대한 기사를 확인할 수도 있습니다 PHP 관계자 어쨌든, SQL 삽입은 단순히 삽입으로 정의 될 수있다

응용 프로그램의 프로그래밍 된 SQL 코드 내 침입 SQL 코드 SQL 인젝션에 대한 간단한 두 가지 예제와 자신을 보호 할 수있는 최선의 방법을 살펴 보겠습니다 이 유형의 공격 분명히, SQL 인젝션의 예제를 수행하기 위해서 우리는 공격을 수행 할 데이터 내가 사용할 데이터베이스는 기본 데이터베이스입니다 매우 간단한 데이터, 목록이있는 사용자라는 단일 테이블로 구성됩니다

사용자 수 이 경우 나는 "Sergio", "Manolo" 와 "다니엘" 내가 사용하는 "users-backup"이라는 테이블도 있습니다 내가 공격 테스트를 수행하고 사용자가 복사 한 테이블에서 데이터를 삭제할 때 사용자로부터 데이터를 다시 쉽게 백업 할 수 있습니다 두 가지 유형의 공격을 표시하기 위해 두 개의 웹 페이지를 만들었습니다 처음에는 사용자가 이름을 통해 검색 할 수있는 양식, 필드 여기서 우리가 사용자 테이블에 가지고있는 이름

예를 들어 "Sergio"를 검색하는 경우 "SELECT * FROM Users"를 수행하면됩니다 이름은 Sergio이며 사용자 Sergio의 모든 데이터를 검색합니다 그러나, 우리는 존재하지 않는 사용자를 찾습니다 예를 들어, Mariano는 쿼리를 작성하기 때문에 결과가 표시되지 않습니다 이 애플리케이션의 소스 코드를 보자

코드는 매우 간단합니다 한편으로는 폼이 표시되는 HTML 페이지가 있습니다 name 값과 함께 name 속성을 전달하는 단일 텍스트 필드로 구성됩니다 및 보내기 단추 폼은이 데이터를 "formulario

php"라는 PHP 페이지로 보냅니다 "Formulariophp"는 단순히 데이터베이스에 연결하고, 데이터베이스, 사용자가 삽입 된 SELECT 인 SQL 문을 마운트하십시오 이름 필드에 입력하고 SQL 문을 실행합니다 한 번 실행하면 이 while 루프의 결과

공격이란 무엇입니까? 우리는 형식으로 돌아가서 공격을 수행 할 것입니다 그 공격은 단순히이 입력 값을 입력하는 것으로 구성되며 전송할 때 모든 사용자의 데이터 어떻게 가능합니까? 여기에 실행 된 SQL 문에 설명이 나와 있습니다 항목을 입력 할 때 '또는'1 '='1이 SQL 문과 연결되고 첫 번째 조건 이름이 남아 있습니다 빈 것과 같습니다 빈 문자열 인 이름은 없습니다 그러나 우리는 이 논리 표현식은 항상 참입니다

따라서 이것이 항상 사실이므로이 SELECT는 조건없이 SELECT가됩니다 즉, 모든 사용자와 여기를 꺼냅니다 우리는 아마 모든 사용자의 전체 목록을 볼 수 있습니다 이 하나 예를 들어 다음과 같은 형식을 건너 뛰기 때문에 공격 유형을 사용할 수도 있습니다 로그인, 웹 응용 프로그램의 식별

우리가 보게 될 두 번째 예는 더 위험합니다 우리는 전형적인 웹 사이트를 가지고있다 우리는 이메일 수신을 중단하기 위해 가입을 취소 할 수 있습니다 이 우리는 "탈퇴하고 싶으면 여기를 클릭하십시오"라는 링크가있는 페이지를 볼 수 있습니다 매개 변수가 전송되는 방식의 비디오 하단에 표시되는 URL, "correo=sergio@ua

es" Arroba는 % 40으로 나타납니다 이 버튼을 누르면 메일이 수신되는 PHP 페이지가 실행된다 이 매개 변수는 매개 변수로 전달되고이 문을 작성하는 값으로 사용됩니다 이 값과 일치하는 사용자를 효과적으로 삭제하는 SQL

이제 데이터베이스로 이동하여 users 테이블을 참조하면 여기에 사용자가 있습니다 "세르지오"는 지워졌음에 틀림 없다 우리가 그것을 다시 시험 해보면, 우리는 보게 될 것이다 해당 사용자가 얼마나 효과적으로 삭제되었는지 여기에이 예제의 소스 코드가 다시있다

첫 번째 페이지, 페이지 HTML은 매우 간단합니다 단순히 링크, 두 번째 페이지에 대한 하이퍼 링크, 실제로 다운로드를 수행하는 "bajaphp"로 사용자를 삭제하고 사용자의 전자 메일 값과 함께 mail이라는 매개 변수를 전달합니다 우리가 제거하고자하는 나는 우리가 그것을 가지고 있기 때문에 arroba가 40 %로 여기에서 반복한다 그것을 URL을 통해 특수 문자로 전달하도록 인코딩 할 수 있습니다

페이지 "bajaphp" 이전의 것과 매우 비슷하고 매우 간단합니다 데이터를 선택하고 데이터베이스를 선택하고 실행할 SQL 문을 작성하십시오 mail 매개 변수를 사용하여 DELETE를 수행하고 쿼리를 실행합니다 어디있어? 이 코드의 문제점은 무엇입니까? 우리는 웹 사이트로 돌아가서 다음을 수행 할 것입니다

링크 주소를 복사합니다 URL을 입력 한 다음 이전에 작성한 것과 비슷한 것을 추가합니다 모든 사용자를 강제로 지울 수 있습니다 특히, 나는 아포스트로피를 추가 할 것이다 텍스트 문자열을 닫으려면 OR '1'= '1

여기서 일어나는이 값은 그것은 그것이 일어나기 때문에 인코딩되어야하므로 직접 입력해야합니다 특수 문자가 포함되어 있습니다 그래서 그것을 복사하고 자바 스크립트 콘솔을 엽니 다 EncodeURIcomponent ()라는 JavaScript 함수를 사용하여 인코딩 할 것입니다 URL을 통해 가고 싶은 값 붙여 넣으면 체인이 생성됩니다

나는 정말로 지나갈거야 나는 그것을 복사하고 그것을 대체합니다 나는 이것을 여기에서 제거한다 이제 사용자 테이블에는 두 명의 사용자가 있으며 사용자는 "Manolo"입니다 및 사용자 "다니엘"

이 명령문을 실행하면 모든 사용자 우리는 그것을 실행하고 "이메일 sergio@uaes가 구독 취소되었습니다"라고 말합니다 그러면 우리는 우리가 연결 한 표현을 갖게됩니다 그리고 어떻게 조건 한편으로는 우편물이이 경우에는 실현되지 않을 것입니다

왜냐하면 이 사용자는 항상 "true"인 표현식을 "OR"하기 전에 이미 삭제했습니다 이제 사용자 테이블로 다시 이동하여 검토를 다시 한 번 해보면 사용자 테이블이 비어 있고 모든 사용자가 삭제되었습니다 우리가 공격했다 의 SQL 주입 우리는 어떻게 이런 종류의 공격으로부터 자신을 보호 할 수 있습니까? 두 가지 방법이 있습니다

첫 번째 방법은 phpini 파일에서 "magic quotes"를 설정하는 것입니다 그러나, 이 첫 번째 양식은 권장하지 않으며 phpini 파일 자체의 주석은 우리에게 알려줍니다 우리는 "magic_quotes"를 찾을 것이고 우리는 이것이 특징이라는 의견을 말할 것이다

위험 할 수있는 몇몇 특성을 도주하는 것을 허용하는 그러나 우리는 말한다 이 기능은 100 % 안전하지 않으며 PHP 53에서는 권장되지 않으며 PHP 6에서 제거, 삭제됩니다 따라서 이 속성을 신뢰하십시오 "On"으로 설정하면 데이터 항목이 이스케이프됩니다 그들은 인코딩 될 것이고이 예제에서 우리가 가진 문제는 일어나지 않을 것입니다

그러나 나는 반복한다 이 매개 변수를 신뢰하는 것은 좋은 해결책이 아닙니다 또한 많은 경우 우리는 phpini 파일에 접근 할 수없고 변경할 수 없습니다 두 번째 옵션은 MySQL 함수 "mysql_real_escape_string ()"을 사용하는 것입니다

"Mysql_real_escape_string ()"은 문자열의 특수 문자를 이스케이프합니다 문자열로, SQL 문에 사용됩니다 그리고 조금 더 자세히 설명하면 다음과 같습니다 MySQL 라이브러리 접두사 모음의 "mysql_real_escape_string ()"함수를 호출하십시오 뒤에 오는 특성에 반전 해, 안으로 위험 할 수있는 특성에 SQL 문

특히 여기서 우리는 내가 아 포스 트로피 특성을 발견했습니다 내 SQL 주입 공격에 사용 그렇다면이 함수로 코드에서 무엇을해야합니까? 코드에서 사용자 입력을 SQL 문에 직접 전달해서는 안되며, 그러나 우리는 다음과 비슷한 것을해야합니다 나는 예를 들면 티켓을 집어 들었다 변수 "name"에 "mysql_real_escape_string"을 수행하고 사용자 입력을 전달합니다

그리고 지금 예 SQL 문에 "name"변수를 사용할 수 있습니다 그러나 여기에 직접적으로 있지는 않습니다 사용자의 입력 내용은 위험하지만 위험한 문자는 탈출했다 다른 예에서는 같은 방식으로 행동해야합니다

나는 입구에 갈 것이다 사용자, 여기에 변수 "mail"과 "mail"을 넣을 것입니다 다시 깨끗한 사용자 입력이 될 것입니다 그리고 우리는 이미 그것을했을 것입니다 이 비디오를 끝내기 전에 또 다른 SQL 주입 공격을 보여 드리겠습니다

이것을 위해 저는이 연재 만화를 만들 것입니다 나는 그것을 번역했다 번역은 다음과 같다 여보세요,이 분은 당신 아들의 학교입니다 우리는 컴퓨터에 몇 가지 문제가 있습니다

오, 이런 뭔가 망가 뜨 렸니? 어떤 의미에서는 그렇습니다 그들은 정말로 그들의 아들 로버트라고 불렀다); DROP TABLE 학생; -? 오, 그래 리틀 바비 테이블 (Little Bobby Tables)

우리는 올해 학생들의 기록을 모두 잃었습니다 나는 그것이 있기를 바란다 행복한 그리고 데이터베이스의 항목을 정리하는 법을 배우기를 바랍니다 여기 무슨 일이 있었던거야? 어떤 유형의 SQL 주입 공격이 발생 했습니까? 우리는 여기서 사용자의 입구에서 공격을 봅니다 양식에 이름을 묻는 경우 사용자가 "Robert"와 같은 것을 작성했으며, SQL 쿼리를 닫고 파트를 추가했습니다

다른 SQL 쿼리의 경우 (이 경우 "DROP TABLE") 따라서 한 번의 상담만으로 SQL은 두 부분으로 실행되었습니다 여기에서 누락 된 첫 번째 부분은 올바른 부분입니다 두 번째는이 학생이 여기서 한 주사입니다 이것은 MySQL에서 원칙적으로 그것은 불가능합니다, 왜? 일반적으로 SQL 쿼리를 실행하는 데 사용되는 mysql_query () 함수 MySQL을 사용하면 여러 쿼리, 즉 하나의 문자열에서 누락 될 수 있습니다 매개 변수로 둘 이상의 쿼리를 입력 할 수 없습니다

따라서 이러한 유형의 공격은 원칙적으로 MySQL을 통해 API를 통해 가능하지 않습니다 mysql_query () 함수가 보호되어 있기 때문에 PHP에서 사용 가능한 MySQL 표준 이러한 유형의 공격을 피하기 위해 이 비디오는 "웹 개발 소개"과정의 일부입니다 ideswebes 주소에서 구할 수 있습니다 주의 해 주셔서 대단히 감사합니다