03(https://qdgbjsdnb.tistory.com/131)에서 사용한 로그인과 회원가입에 적절한 노드들을 사용해보자.


완성된 결과물은 다음과 같다.








02-03의 게시물의 예제와 input을 통해 위의 사진과 같이 만들어보자





-정답-


로그인


<html>
    <head>
        <meta charset="UTF-8">
        <title>로그인 박스</title>
        <style>
                th{
                    width: 50px;
                }
                td{
                    width: 50px;
                }
            </style>
    </head>
    <body>
        <fieldset>
        <table>
            <tr><!--행(row)선언-->
                <th ><b>ID</b></th>
                <th><input type="text" name = "UserID" value=""placeholder = "아이디를 입력 해주세요."/></th>
                <th rowspan="2"><input type="submit" value="로그인"/></th>
            </tr>
            <tr><!--행(row)선언-->
                <th><b>PW</b></th>
                <th><input type="password" name = "UserPW" value=""placeholder = "비밀번호를 입력 해주세요."/></th>
            </tr>
            <tr><!--행(row)선언-->
                <th colspan="3"><input type="button" value="회원가입"/> <input type="button" value="아이디/비번 찾기"></th>
            </tr>
        </table>
        </fieldset>

    </body>
</html>


회원가입


<html>
    <head>
        <meta charset="UTF-8">
        <title>회원가입 페이지</title>
        <style>
            td{
                width: 300px;
            }
        </style>
    </head>
    <body>
        <fieldset>
        <h2>회원가입</h2>
        <hr/>
        <table>
            <tr>
                <th>아이디</th>
                <td><input type="text" name = "UserID" value=""/></td>
            </tr>
            <tr>
                <th>비밀번호</th>
                <td><input type="text" name = "UserPW" value=""/></td>
            </tr>
            <tr>
                <th>비밀번호 확인</th>
                <td><input type="text" name = "ReUserPW" value=""/></td>
            </tr>
            <tr>
                <th>이름</th>
                <td><input type="text" name = "Name" value=""/></td>
            </tr>
            <tr>
                <th>이메일</th>
                <td><input type="email" name="mail" required/></td>
            </tr>
            <tr>
                <th>생년월일</th>
                <td>
                    <select name="year">
                        <option value="1995">1995</option>
                        <option value="1996"d>1996</option>
                        <option value="1997" selected>1997</option>
                        <option value="1998">1998</option>
                        <option value="1999">1999</option>
                        <option value="2000">2000</option>
                    </select>
                    <select name="month">
                        <option value="01" selected>01</option>
                    </select>
                    <select name="day">
                        <option value="01" selected>01</option>
                    </select>
                </td>
            </tr>
            <tr>
                <th>성별</th>
                <td>
                    <input type="radio" name="gender" value="male"/> 남자
                    &nbsp;&nbsp;&nbsp;&nbsp;
                    <input type="radio" name="gender" value="female"/> 여자
                </td>
            </tr>
            <tr>
                <th>취미</th>
                <td>
                    <input type="checkbox" name="hobby" value="드라이브"/>드라이브
                    <input type="checkbox" name="hobby" value="스포츠"/>스포츠
                    <input type="checkbox" name="hobby" value="게임"/>게임
                    <input type="checkbox" name="hobby" value="낚시"/>낚시
                </td>
            </tr>
            <tr>
                <th>나이</th>
                <td><input type="number" name="age" min="1" max="200" value="20"/></td>
            </tr>
            <tr>
                <th>보안등급</th>
                <td><input type="range" name="security" min="0" max="100" value="0" step="20"/></td>
            </tr>
        </table>
        </fieldset>
    </body>
</html>



selected의 값은 많기 때문에 귀찮아서 쓰다가 패스....

link는 페이지를 열었을때 페이지 이름 옆에 나타나는 아이콘을 의미한다.


아래의 예를 들면 <link rel="icon" href = "btn.png">와 같이 사용한다.







input은 type으로 종류를 정하고


value로 내용, 기본값을 설정하고


name을 지정할 수 있다.




input은 기능을 가진 버튼을 만들 수 있기 때문에 제일 중요한 부분이다.




type은



button, submit, password, checkbox, radio, hidden, file, select, email, number, range, color, date, month, datetime-local, image


time, url, week, reset


다양하지만 전부 외울 필요는 없고 필요할 때 찾다보면 익숙해진다.




그 외에


fieldset 블록은 하나의 틀, 프레임을 만든다.(아래 실행 화면 참조.)




<html>
    <head>
        <meta charset="UTF-8">
        <title>Input</title>
        <link rel="icon" href = "btn.png">
    </head>
    <body>
        <input type="button" value="click"/>
        <!--button : 이벤트를 실행하는 트리거 역할-->

        <input type="submit" value="전송"/>
        <!--어떤 값을 제출하는 역할, 서버에 제출-->


        <!--자주 쓰임, 중요!-->
        <fieldset>
            <legend>text & password</legend>
            ID : <input type="text" name = "UserID" value=""placeholder = "아이디를 입력 해주세요."/>
            <br/>
            PW : <input type="password"name = "UserPW" value="">
        </fieldset>
        <!--text : 텍스트 박스-->
        <!--password : 암호 박스-->
        <!--value속성은 기본값을 말함, 처음에 담겨있을 값-->
        <!--placeholder 속성은 커서를 안올리면 보이지만 올리면 사라지는 글-->

        <fieldset>
            <legend>checkbox & radio</legend>
            <input type="checkbox" name="hobby" value="영화"/> 영화
            <input type="checkbox" name="reading" value="독서"/> 독서
            <input type="checkbox" name="game" value="게임"/> 게임
                
            <br/>

            <!--name이 꼭 일치해야 그룹으로 묶여 하나만 선택된다.-->
            <input type="radio" name="gender" value="male"/> 남자
            <input type="radio" name="gender" value="female"/> 여자

            <br/>
                
            <input type="radio" name="number" value="1"/> 1
            <input type="radio" name="number" value="2"/> 2
            <input type="radio" name="number" value="3"/> 3
            <input type="radio" name="number" value="4"/> 4
        </fieldset>

        <fieldset>
            <legend>text & hidden</legend>
            <input type="text" name="userName" value="홍길동" readonly>
            <!--readonly는 읽기전용, 수정 불가하게 바꿈-->
            <input type="hidden" name="userName" value="홍길동">
        </fieldset>

        <fieldset>
            <legend>File</legend>
            <form>
                <input type="file" name="img"/>
                <input type="submit" value="전송"/>
                <!--submit은 value를 빈칸으로 하면 브라우져에 따라 기본값이 다르다.-->
            </form>
            <!--form은 나중에 따로 설명한다.-->
        </fieldset>

        <fieldset>
            <legend>select</legend>
            <select name="cars">
                <option value="volvo">Volvo</option>
                <option value="saab">Saab</option>
                <option value="fiat" selected>Fiat</option>
                <!--selected를 해놓으면 기본값으로 체크 되어 있음-->
                <option value="audi">Audi</option>
            </select>
        </fieldset>


        <!--자주 안쓰임, 유용하지만 HTML5만 지원함, 브라우져에 따라 작동 안됨-->
        <fieldset>
            <legend>e-mail</legend>
            <form>
                E-mail : 
                <input type="email" name="mail" required/>
                <!--required라고 입력하면 정상 값을 입력하지 않으면 오류 풍선이 뜸-->
                <input type="submit"/>
            </form>
        </fieldset>

        <fieldset>
            <legend>number & range</legend>
            나이(1~200) : 
            <input type="number" name="age" min="1" max="200"/>
            <!--숫자형이 아니고 문자형임-->
            <!--min, max로 범위 설정 가능-->
            <br/>
            points(0~100)
            <input type="range" name="point" min="0" max="100" value="50" step="20"/>
            <!--스크롤을 만듦, step으로 한번 당길 때 움직이는 양을 설정할 수 있다.-->
        </fieldset>

        <!--대체품이 있음, bootstrap 등..-->
        <fieldset>
            <legend>color</legend>
            좋아하는 색상 : <input type="color" name="color"/>
            <!--색상 선택 기능-->
        </fieldset>

        <fieldset>
            <legend>date & month</legend>
            날짜:<input type="date" name="day"/>
            <br/>
            월:<input type="month" name="month">
            <br/>
            날짜+시간:<input type="datetime-local"name="time"/>
        </fieldset>

        <input type="image"src="btn.png" alt="버튼 아이콘" width="100"height="100"/>

        <fieldset>
            <legend>time & url & week & reset</legend>
            <form>
                ID:<input type="text"><br/>
                TIME:<input type="time"><br/>
                URL:<input type="url"><br/>
                WEEK:<input type="week"><br/>
                <input type="reset" value="reset">
                <input type="submit" value="로그인"/>
            </form>
        </fieldset>
    </body>

</html>



아래는 실행화면












iframe은 현재 사이트에 다른 사이트의 화면을 띄어주는 틀을 만드는 코드


하지만 보안상 피싱사이트에서 이 기능을 이용해


정보를 빼가 이용하므로 조심해야 한다.


예를들어 사이트 주소를 잘못첫는데 네이버가 나왔다.


그리고 id pw를 입력하면 바로 정보가 유출된다고 보면 된다.




src와 width, height를 이용해 조절한다.




<html>
    <head>
        <meta charset="UTF-8">
        <title>Iframe</title>
    </head>
    <body>
        <iframe src="07_list.html" width="500px" height="300px"></iframe>
        <!--iframe은 다른 사이트를 화면에 띄어주는 코드-->
        <!--iframe은 피싱사이트 연결에 자주 사용되어 보안상 주의해야 할 코드-->
        <!--고로 대형 사이트들은 막아놓음-->

        <iframe src="04_table.html" width="500px" height="200px"frameborder = "0" scrolling="no"></iframe>
        <!--frame의 틀과 스크롤을 없애기-->

        <iframe src="https://www.youtube.com" width="500px" height="300px"></iframe>
        <!--유튜브의 경우는 막아놨기 때문에 안나옴-->
        <!--즉 허용된 사이트만 외부 링크를 가져올 수 있다.-->

        <iframe src="https://youtube.com/embed/nM0xDI5R50E" width="500px" height="300px"></iframe>
        <!--하지만 sns공유기능에서 링크를 따와 맨 뒤의 코드 "nM0xDI5R50E" 부분을-->
        <!--https://youtube.com/embed/ 뒤에 붙이면 해당 유튜브만 따올 수 있다.-->


    </body>

</html>



실행 화면은 다음과 같다.









유튜브 링크의 경우는 다음과 같은 부분을 말한다.























예전에 https://qdgbjsdnb.tistory.com/129 에서 사용한 html 예제 파일을 이용해서 iframe을 활용해보자


기존의 html 파일의 상단에 링크 하나 추가(navi)


기존의 html 파일의 하단에 사이트 링크들 추가(footer)



먼저 압축파일을 받아 각종 사이트 대표 이미지를 받아


HTML 폴더에 img 폴더를 만들어 넣어주자


img.zip


받고나서 아래 코드 입력







navi



<ul>
    <a href="#"><li>HTML</li></a>
    <a href="#"><li>CSS</li></a>
    <a href="#"><li>JAVA-SCRIPT</li></a>
    <a href="#"><li>J-Query</li></a>
    <a href="#"><li>BOOT STRAP</li></a>
</ul>

<!--참조만 할 html 파일은 html영역, head영역 body영역 등 생략이 가능-->




다음으로 footer, 기존 틀은 생략



<a href="http://www.daum.net"target="_blank">
    <img src="img/daum.png" alt="다음 이미지" width="150" height="70"/>
</a>
<a href="http://www.google.com"target="_blank">
    <img src="img/google.png" alt="구글 이미지" width="150" height="70"/>
</a>
<a href="http://www.msn.com"target="_blank">
    <img src="img/msn.jpg" alt="MSN 이미지" width="150" height="70"/>
</a>
<a href="http://www.nate.com"target="_blank">
    <img src="img/nate.png" alt="NATE 이미지" width="180" height="70"/>
</a>
<a href="http://www.naver.com"target="_blank">
    <img src="img/naver.png" alt="네이버 이미지" width="120" height="70"/>
</a>





다음으로 페이지 합치기




<html>
    <head>
        <meta charset="UTF-8">
        <title>메인 Page</title>
    </head>
    <body>
        <iframe src="exercise_03_navi.html" width="100%" height="30" frameborder="0" scrolling="no"></iframe>
        
        <h2>메인 페이지</h2>
        <hr/>
        <br><small>NHH 엔터테인먼트</small>가 <b>가카오</b>를 상대로 특히 침해 소송을 벌인 것과 관련해,<br/>
        <br>가카오가 제기한 <mark>특허 무효</mark> 심판 3건 중 2건에서 가카오가 승소했다.<br/>
        <br><br/>
        <!--br안의 내용을 입력안하면 그냥 Enter키를 누른것과 유사-->
        <br>가카오는 14일 <del>NHH엔터테인먼트</del>의 특허 자회사 <ins>케이이노베이션</ins>이 보요 특허 침해로 제기한<br/>
        <br>특허소송과 관련해 자사가 진행한 <sup>특허 무효심판</sup>에서 승소했다고 밝혔다.<br/>
    
        <iframe src="exercise_03_footer.html" width="100%" frameborder="0" scrolling="no"></iframe>
    </body>
</html>









+ Recent posts