Practice makes perfect, thanks.
'IOT > 아듀이노' 카테고리의 다른 글
아듀이노 dc모터제어 4 wheel (0) | 2019.09.07 |
---|---|
back light (0) | 2019.03.02 |
크리스마스 트리 만들기(led strip (네오픽셀)) (0) | 2018.12.23 |
DIY-공기청정기 (0) | 2018.06.01 |
[DIY : 센서등]인체감지센서,LED로 센서등 만들기 (0) | 2018.03.31 |
Practice makes perfect, thanks.
아듀이노 dc모터제어 4 wheel (0) | 2019.09.07 |
---|---|
back light (0) | 2019.03.02 |
크리스마스 트리 만들기(led strip (네오픽셀)) (0) | 2018.12.23 |
DIY-공기청정기 (0) | 2018.06.01 |
[DIY : 센서등]인체감지센서,LED로 센서등 만들기 (0) | 2018.03.31 |
자바스크립트로 fb API연동하여 로그인하기
그래프 API 탐색기 이용하기
url : https://developers.facebook.com/tools-and-support
appid 에서 가져올 권한 선택추가 선택
default : id, name
추가로 가져올 정보 : email
위 api 탐색기로 선 테스트 후
아래처럼 javascript로 코드작성.
참고url : https://developers.facebook.com/docs/facebook-login/web#logindialog
<<html code>>
로그인페이지>>
로그인후 fb의 개인정보 받아 display
로그인은 잘 되나, 로그아웃은 아래와 같은 에러내용으로 console log를 찍고 로그아웃이 안되고 있음.
유투브 동영상등 찾아보고 진행했지만 해결못함.
curl kakao open api사용하기 (0) | 2018.08.05 |
---|---|
php CURL 사용하기 (0) | 2018.07.31 |
php 패스워드 암호화 bcript (0) | 2018.05.02 |
unlink(=delete) 메소드 이용하기 (0) | 2018.04.22 |
directory entry 읽어 파일리스트업 (0) | 2018.04.20 |
스크린스크래핑
WebBrowser이용해서 website에 렌더링된 html의 특정값을 추출한다.
예를 들어 특정 사이트 모 카테고리에 있는 내용을 모두 가져와서 데이터화하고 그것을 분석하고 싶을 때 스크래핑을 사용하면 편리하다.
아래 code는
특정 카테고리의의 글list를 통해 key, title을 추출하고
Key를 이용해 본문내용의 text를 가져와서 db화 한 내용이다.
글의 pattern등 분석자료로 사용할 목적으로 데이터가 필요하나 해당사이트에서 DB를공개하진 않으니 이렇게 스크랩핑해서 자료화해서 사용하는 것이다.
이렇게 하지 않으면 사이트의 모든 사이트 내용을 클릭~클릭~클릭~ 하겠지.
이렇게 프로그램하기 전에 사전에 해당 사이트를 분석하고 맞게 프로그래밍하면 된다.
step1) 카테고리의의 글list를 통해 key, title을 추출 : webSiteContentsList();
reference to : https://www.codeproject.com/Tips/858775/Csharp-Website-HTML-Content-Parsing-or-How-To-Get
c#에서 mariadb사용하기 (0) | 2018.11.10 |
---|---|
WebBrowser.DocumentText 한글깨짐 (0) | 2018.05.07 |
using MySqlConnector (0) | 2018.05.07 |
WebBrowser 객체를 이용해서 web페이지를 볼 때 DocumentText 메소드로 렌더링된 html을 읽어올 때 default가 utf-8 encoding type이라 이상태에서는 euc-kr의 한글은 깨진다
이 경우 스트림리더를 사용해서 실제 페이지의 encoding type으로 읽어들이면 된다.
샘플) WebBrowser.DocumentText 로 소스를 봤을경우.
<html>
<head>
<title><��̴Ͻ�Ʈ ���� �ϴ�></title>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr" />
StreamReader를 이용해 페이지의 encoding type으로 읽어들인경우
<html>
<head>
<title><오늘은 어린이날 입니다></title>
<<C# Code>>
/// <summary>
/// WebBrowser's DocumentCompleted Event
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void webBrowserViewer_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
// ((WebBrowser)sender).Document.Window.Error += new HtmlElementErrorEventHandler(Window_Error);
WebBrowser oBrowser = sender as WebBrowser;
txtSource.Text = StreamConvertEUCKRtoUTF8(oBrowser);
}
/// <summary>
/// Using WebBrowser web page
/// 웹페이지 Encoding type 이 EUC-KR 이면 WebBrowser.DocumentText로 html로 렌더링된 text를 볼때 한글이 깨진다.
/// 아래처럼 스트림리더로 EUC-KR type으로 읽어온다.
/// </summary>
/// <param name="oBrowser"></param>
/// <returns></returns>
private String StreamConvertEUCKRtoUTF8(WebBrowser oBrowser)
{
String sResult = String.Empty;
Stream oStream;
StreamReader oStreamReader;
oStream = oBrowser.DocumentStream;
oStreamReader = new StreamReader(oStream, System.Text.Encoding.GetEncoding(oBrowser.Document.Encoding));
oStream.Position = 0;
sResult = oStreamReader.ReadToEnd();
return sResult;
}
c#에서 mariadb사용하기 (0) | 2018.11.10 |
---|---|
WebBrowser이용한 스크린스크래핑 (0) | 2018.05.09 |
using MySqlConnector (0) | 2018.05.07 |
c#에서 Mariadb를 연결할때 MySqlConnector를 사용한다.
VS에서 NgGet을 이용해서 쉽게 검색하고 설치할 수 있다.
*NgGet 이놈 참 좋다~
MySqlConnector는 MIT 라이센스 그냥 사용하면 된다.
connector설치한김에 테스트까지 해봐야지요
c#코드
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using MySql.Data.MySqlClient;
namespace ScrappingWinForms
{
public partial class Form1 : Form
{
string sConnectionString = "Server=localhost;Uid=root;Pwd=???????;Database=???";
String Url = string.Empty;
public Form1()
{
InitializeComponent();
//WebBrowser로 사이트 로딩시 자바스크립트 바인딩안되어 에러나는 경우.
//자바스크립트 오류(dialogbox) 무시하고 진행가능하도록 제어함.
this.webBrowserViewer.ScriptErrorsSuppressed = true;
webBrowserViewer.DocumentTitleChanged += new EventHandler(webBrowserViewer_DocumentTitleChanged);
}
private void btnSearch_Click(object sender, EventArgs e)
{
surftheWeb();
}
private void surftheWeb()
{
Url = txtUrl.Text;
webBrowserViewer.Navigate(Url);
}
/// <summary>
/// WebBrowser's DocumentCompleted Event
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void webBrowserViewer_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
// ((WebBrowser)sender).Document.Window.Error += new HtmlElementErrorEventHandler(Window_Error);
WebBrowser oBrowser = sender as WebBrowser;
txtSource.Text = StreamConvertEUCKRtoUTF8(oBrowser);
}
/// <summary>
/// Using WebBrowser web page
/// 웹페이지 Encoding type 이 EUC-KR 이면 WebBrowser.DocumentText로 html로 렌더링된 text를 볼때 한글이 깨진다.
/// 아래처럼 스트림리더로 페이지 EUC-KR type을 읽어들인다.
/// </summary>
/// <param name="oBrowser"></param>
/// <returns></returns>
private String StreamConvertEUCKRtoUTF8(WebBrowser oBrowser)
{
String sResult = String.Empty;
Stream oStream;
StreamReader oStreamReader;
oStream = oBrowser.DocumentStream;
oStreamReader = new StreamReader(oStream, System.Text.Encoding.GetEncoding(oBrowser.Document.Encoding));
oStream.Position = 0;
sResult = oStreamReader.ReadToEnd();
return sResult;
}
private void webBrowserViewer_DocumentTitleChanged(object sender, EventArgs e)
{
//this.Text = webBrowser1.DocumentTitle.ToString();
this.groupBox1.Text = webBrowserViewer.DocumentTitle;
}
private void loadTestData() {
MySqlConnection oConnection = new MySqlConnection(sConnectionString);
oConnection.Open();
try
{
MySqlCommand cmd = oConnection.CreateCommand();
cmd.CommandText = "SELECT * FROM TMP_help order by help_topic_id desc";
MySqlDataAdapter aDap = new MySqlDataAdapter(cmd);
DataSet dsData = new DataSet();
aDap.Fill(dsData);
dgViewSample.DataSource = dsData.Tables[0].DefaultView;
}
catch (Exception ex)
{
throw ex;
}
finally {
if (oConnection.State == ConnectionState.Open)
{
oConnection.Close();
}
}
}
private void btnForTest_Click(object sender, EventArgs e)
{
loadTestData();
}
}
}
c#에서 mariadb사용하기 (0) | 2018.11.10 |
---|---|
WebBrowser이용한 스크린스크래핑 (0) | 2018.05.09 |
WebBrowser.DocumentText 한글깨짐 (0) | 2018.05.07 |
DB를 핸들링하는 server-side 언어, php
반응형웹페이지디자인 : bootstrap
자바스크립트기반 웹어플리케이션 프레임웍 : angularjs
이것 3개 조합해서 웹페이지 만들기.
xmlhttp, ajax, jquery등 다양한 스크립트 형식의 모듈들이 많이 있었지만.
angularjs는 MVC패턴의 자바스크립트 프로그램방식으로 진행된다.
자바스크립트로 진행되지만 스크립트 같지 않은 아주 다양한 기능과 표준화, 개인생각임.. ㅋㅋ
모바일 웹앱만들때 가장 좋은것 같다.
angularjs를 적용한 html 페이지소스.
Full Name: {{firstName + " " + lastName}}{{ x.SADTLCD }} : {{ x.SADTLNAME }} - ${{ x.IAMT }}Calc using AngularJs, expression: {{ 5 + 5 }}
… /*angularjs 스크립트 적용부분은 웹페이지 맨 하단에 적용*/{{ y.help_topic_id }} : {{ y.name }}
angularjs 문법이 궁금하면, https://www.w3schools.com/angular/default.asp
파일 업로드(move_uploaded_file) (3) | 2018.04.14 |
---|---|
fileupload 에러메시지 설명 (0) | 2018.04.14 |
json 데이타 사용하기 (0) | 2018.03.28 |
Cookie 사용하기 (0) | 2018.03.18 |
Session 사용하기 (0) | 2018.03.17 |
json 데이타 사용하기
refer to : https://www.w3schools.com/js/js_json_php.asp
아래는 Database를 이용한 예제로 fetch후 data를 json_encode() 하여 화면에 뿌린것이다.
getSomeTopics(); echo "{\"Table\":". json_encode($topics)."}"; ?>TopicData.php
public function getSomeTopics() { $query = $this->connection->prepare("SELECT help_topic_id, name FROM TMP_help order by help_topic_id desc limit 10 "); $query->execute(); //return $query; return $query->fetchAll(\PDO::FETCH_ASSOC); }
fileupload 에러메시지 설명 (0) | 2018.04.14 |
---|---|
angularJS 사용하기 (0) | 2018.04.01 |
Cookie 사용하기 (0) | 2018.03.18 |
Session 사용하기 (0) | 2018.03.17 |
반응형 웹개발 admin 페이지 step1 (0) | 2018.03.04 |
Session과 Cookies는 같이 적절히 사용하면 사이트 운영에 효율적임.
>>refer to : https://www.w3schools.com/php/php_cookies.asp
Syntax
setcookie(name, value, expire, path, domain, secure, httponly);
Only the name parameter is required. All other parameters are optional.
domain 파라미터를 이용하면 해당 도메인에서만 쿠키가 적용됨.
"; var_dump($_POST); ?> 0) { $snEmail = $_POST['exampleInputEmail1']; $snId = "doitforyou"; $snGroup = "MASTER"; $snSdate = date("YmdHis"); echo "
"; echo "세션 ID : ".session_id(); echo "
"; echo "
저장할 이메일 : ".$snEmail; echo "
저장할 ID : ".$snId; echo "
저장할 그룹 : ".$snGroup; // 세션에 저장 $_SESSION['snEmail'] = $snEmail; $_SESSION['snId'] = $snId; $_SESSION['snGroup'] = $snGroup; $_SESSION['snSdate'] = $snSdate; echo "
세션생성완료"; $cookie_name = "cnEmail"; $cookie_value = $snEmail; setcookie($cookie_name, $cookie_value, time() + (86400 * 1), "/", "doitforyou.co.kr"); // 86400 = 1 day } ?> go to the next, sessionStep2 => CLICK
doitforyou.co.kr 도메인에서 cookie 적용됨
타도메인에서는 cookie 적용안됨
angularJS 사용하기 (0) | 2018.04.01 |
---|---|
json 데이타 사용하기 (0) | 2018.03.28 |
Session 사용하기 (0) | 2018.03.17 |
반응형 웹개발 admin 페이지 step1 (0) | 2018.03.04 |
PHP Programming 해보기 (0) | 2018.03.02 |
1. APM 설치
아파치 : httpd-2.4.27-Win64-VC15.zip
DB : mariadb-10.0.33-winx64.msi
언어 : php-7.1.7-Win32-VC14-x64.zip
DB연결 Tools : ToadforMySQL_Freeware_8.0.0.296
2. APM setting
: apache, php의 설정파일을 수정.
2.1. httpd.conf
설치된 로컬 경로로 수정.
C:\APMorg\Apache24\conf\httpd.conf 파일 편집
#######################################################
#
ServerRoot "c:/APMorg/Apache24"
#
DocumentRoot "c:/APMorg/Apache24/htdocs"
<Directory "c:/APMorg/Apache24/htdocs">
#
ScriptAlias /cgi-bin/ "c:/APMorg/Apache24/cgi-bin/"
<Directory "c:/APMorg/Apache24/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>
#--php.ini 파일을 c:\windows 폴더에 복사해 넣음(php.ini파일 편집 에서 재 확인)
PHPIniDir "C:/Windows"
LoadModule php7_module "C:/APMorg/php/php7apache2_4.dll"
#######################################################
2.2. php.ini
C:\APMorg\php\php.ini-development 파일 편집하여 라이브러리 사용 가능하도록 수정
; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
extension_dir = "C:\APMorg\php\ext\"
;extension=php_exif.dll ; Must be after mbstring as it depends on it
extension=php_mysqli.dll
;extension=php_pdo_firebird.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
=> C:\Windows\php.ini 로 저장
3. Apache, PHP 구동확인
웹서버 경로 ( C:\APMorg\Apache24\htdocs ) 에서
phpinfo.php파일을 만들고
아래 script를 쳐주면
<?php
phpinfo();
?>
php가 연결된 여러 정보들이 list-up된다. 해당 정보를 잘 활용하면 환경세팅에 도움이 된다.
4. 테스트 데이타
: Mariadb를 install => Database : mysql => Table : HELP_TOPIC
임시테이블로 생성후 진행
create table TMP_HELP as
select * from help_topic;
TMP_HELP 테이블 데이터로 CRUD 테스트 진행한다.
alter table TMP_HELP2 add PRIMARY KEY (`help_topic_id`); 로 pk까지 생성한다.
5 프로그래밍 패턴
http://phpbridge.org/intro-to-php/ 를 기준으로 진행함.
구글링 해서 찾은 강의 중에 가장 좋음.
만든 결과물 : http://doitforyou.co.kr/test/public/
angularJS 사용하기 (0) | 2018.04.01 |
---|---|
json 데이타 사용하기 (0) | 2018.03.28 |
Cookie 사용하기 (0) | 2018.03.18 |
Session 사용하기 (0) | 2018.03.17 |
반응형 웹개발 admin 페이지 step1 (0) | 2018.03.04 |