5. PHP 게시판 만들기, write 제작 2

2015. 4. 2. 23:51
저자 : Kurien

주의: 본 게시판은 보안을 생각하지 않고 만들어졌으므로 실제로 사용되어서는 안되는 코드입니다.

공부할 때 게시판이 이처럼 동작한다는 정도로만 이해해주세요.


지금까지 write 입력 폼을 만들었으니, 이제부터는 write에 입력한 값을 업데이트 하는 부분을 만들어 보겠습니다.

파일명은 write_update.php라는 이름으로 만들었습니다.


파일명을 만들때는 파일이 어떤 기능을 하는지를 쉽게 알 수 있는 방법이 좋다고 하기도 하고,

직접 경험해본 결과도 직관적인 이름이 편집하기 더 편했네요.


그럼 먼저 아래의 파일을 다운로드 받아봅시다.


20150402_project.zip


이번에도 다른 부분에 수정사항이 있는데요,

dbconfig.php의 맨 윗부분에 header('Content-Type: text/html; charset=utf-8');이라는 코드를 추가했습니다.


이 부분은 PHP에서의 인코딩을 설정해주는데,

html을 사용한다면 head 태그 내부에 <meta charset='utf-8'>이란 태그를 넣어줌으로써 인코딩을 utf-8로 설정할 수 있지만,

만약 html을 사용하지 않는 이번 페이지(write_update.php) 같은 경우는 인코딩을 설정할 수가 없기 때문에 php에서 설정을 해줍니다.


dbconfig.php에 넣어주는 이유는 모든 페이지에 공통으로 들어가는(include) 부분이기 때문이죠.

만약 일반적인 홈페이지라면 common.php와 같은 모든 페이지에 공통으로 들어가기 위해 만드는 파일에 header와 같은 함수를 설정해줍니다.


서론은 여기까지 하고 write_update.php를 보도록 하죠.


<?php

require_once("../dbconfig.php");


$bID = $_POST['bID'];

$bPassword = $_POST['bPassword'];

$bTitle = $_POST['bTitle'];

$bContent = $_POST['bContent'];

$date = date('Y-m-d H:i:s');



$sql = 'insert into board_free (b_no, b_title, b_content, b_date, b_hit, b_id, b_password) values(null, "' . $bTitle . '", "' . $bContent . '", "' . $date . '", 0, "' . $bID . '", password("' . $bPassword . '"))';


$result = $db->query($sql);

if($result) { // query가 정상실행 되었다면,

$msg = "정상적으로 글이 등록되었습니다.";

$bNo = $db->insert_id;

$replaceURL = './view.php?bno=' . $bNo;

} else {

$msg = "글을 등록하지 못했습니다.";

?>

<script>

alert("<?php echo $msg?>");

history.back();

</script>

<?php

}


?>

<script>

alert("<?php echo $msg?>");

location.replace("<?php echo $replaceURL?>");

</script>


전에 만들어놓은 write.php에서 입력 되는 부분은 bID, bPassword, bTitle, bContent 총 네 가지였습니다.

먼저 write_update.php에서도 db를 사용하므로 dbconfig.php를 include 해주시구요,


write.php에서 넘어온 값을 변수에 넣어주는 부분이 있습니다.


write.php의 form 태그에서 method=""속성의 값을 get으로 했다면 $_GET['변수'],

post라고 했다면 $_POST['변수']를 통해서 변수를 얻을 수 있는데요,

만약 $_REQUEST['변수']를 하게되면 get이든, post든 상관없이 모든 값을 받아올 수 있습니다.


그렇다면 $_REQUEST['변수']를 쓰면 편한게 아니냐고 생각하시는 분들이 계실텐데요,

프로그래밍에서는 여러가지의 길이 존재하면 좋은게 아닙니다.

물론 필요할 때 맞춰 쓰는 건 괜찮지만, 될 수 있으면 제작하는 사람이 귀찮은 편이 보안상에는 좋죠.

php의 설정중에는 $_POST['변수']와 같은걸 따로 설정할 필요 없이 $변수로 바로 변경 되게하는 설정이 있는데요,


이렇게 되면 보안적으로는 완전히 떨어지게 되므로 쓰지 않으시는 편이 좋습니다.

물론 현재는 보안적으로는 전혀 신경쓰지 않은 게시판을 만들고 있지만 보안 부분도 다뤄볼 생각입니다.


다시 본론으로 돌아와서 $bID, $bPassword, $bTitle, $bContent라는 변수를 선언했으니 다음 부분을 보겠습니다.

$date라는 변수를 선언 했는데, 여기에는 date('Y-m-d H:i:s')라는 값이 저장됩니다.

이 값은 현재 시간을 나타내주는 함수니까, $date에는 글을 등록한 시간이 저장됩니다.


이제 $sql 변수에 sql문을 작성합니다.

write_update는 글 쓰기를 의미하니 db에는 insert문을 사용해야겠죠?

insert문은 insert into 테이블명 (column 명) values(값);이나, insert into 테이블명 values(값);과 같이 사용되는데요.

저는 더 길게 표현하는 전자를 사용했습니다.


만약 column명을 함께 표현하게 되면 나중에 수정하게 될 때 어떤 부분에 어떤 값이 들어가는지 쉽게 알 수 있거든요.

sql 구문을 만드는 방식은 개인 취향이므로 알아서 하시면 될 것 같네요.


db에서 테이블을 만들 때 primary auto_increment 값을 줬던 column은 값을 입력할 때 null만을 입력해도 자동으로 입력됩니다.

숫자(int) 형식은 0, 10, 23 이런식으로 주변에 감싸는 부분이 없어야 하구요.

문자(char, varchar, date 등) 형식은 ""(큰따옴표)나 ''(작은따옴표)가 있어야합니다.


그리고 또 다른 형식인 password('비밀번호')가 있습니다.

password는 mysql의 자체 함수로 입력받은 문자열을 해시화 해주는데요.


해시라는 것은 원래 불필요한 정보를 모은다는 뜻이 있지만, 암호화에서는 다시 풀어낼 수 없는 암호를 만든다고 생각하시면 됩니다.

만약 kurien이라는 암호를 입력했을 경우에 password() 함수는 *19BA5733867E9DB038840C6FE88CF1007D61E97B라는 해시를 출력합니다.


저 정보를 가지고 다시 풀어낼 방법은 없습니다.

그럼 절대 안뚫리는게 아닌가?라는 생각을 하신 분들에게 말씀 드리자면 저 암호를 다시 kurien이라는 단어로 바꿀 수 있는 방법 자체는 없지만,

password()라는 함수를 누구나 쓸 수 있는 만큼 그 기능을 가지고 각 값을 해시화 해서 데이터베이스에 저장해두고 확인 하는 방법이 존재합니다.

자세한 부분은 나중에 다루도록 하고, 일단은 password() 함수만을 사용해서 하도록 하겠습니다.


이제 insert문을 완성 했으니, $db->query를 통해서 쿼리를 보냅니다.

만약 정상적으로 쿼리가 전달 되었다면 $result에 TRUE가 들어가고, 실패하면 FALSE 값이 들어갑니다.


if문을 이용해서 $result가 정상적으로 동작했다면 $msg에 정상적으로 등록되었다고 적고, $db->insert_id;를 $bNo 변수에 넣어줍니다.

$db->insert_id;는 이번에 insert 된 자료의 auto_increment 값을 다시 반환해주게 되는데,

이 값을 가지고 게시글이 나오는 화면으로 이동 시켜야 하기 때문이죠.


$bNo을 얻었다면, $replaceURL 변수에 './view.php?bno=' . $bNo; 값을 저장합니다.

이 부분은 $bNo(기본 키)를 가지고 게시글을 보여주는 페이지로 이동하기 위한 URL을 저장하는 부분이구요.

view.php는 다음 포스팅에서 다룰 부분입니다.


그 다음 if문을 빠져 나오게 되고 최하단에 있는 <script>alert($msg); location.replace($replaceURL);</script>이 실행됩니다.

성공했다는 메시지와 게시글을 보여줄 페이지로 이동하는 스크립트죠.



만약 위에서 $result에 FALSE가 입력 되었다면 DB 전송이 실패했다는 말이므로 등록에 실패했다는 메시지를 $msg에 저장합니다.

그 다음 <script>alert($msg); history.back();</script>을 통해 $msg를 출력하고, 이전 화면으로 돌아가줍니다.


여기까지 write_update.php 부분이였습니다.

사이사이 주제가 딴대로 새버려서 글이 조금 길어졌지만, 배우면서 필요한 부분이라고 생각되어서 적었던 부분입니다.

어려운 부분이 있다면 질문 부탁드리구요!

잘못된 부분은 거리낌 없이 지적 부탁드립니다!

TAG ,
  1. 이전 댓글 더보기
  2. lee 2015.07.17 11:07  댓글주소  수정/삭제  댓글쓰기

    database connect success Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Tokyo' for '9.0/no DST' instead in C:\workspace\board\write_update.php on line 8 Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\workspace\board\write_update.php on line 14

    이렇게뜨는데 뭔지모르겟네요 ㅠㅠ

  3. coding 2015.08.02 00:11  댓글주소  수정/삭제  댓글쓰기

    $result = $db->query($sql); 여기서 result라는 변수에 db->query를 넣는다는 것은 알겠는데 그 뒤에는db를 query에 넣는다는 뜻인가요?

    • coding 2015.08.02 00:23  댓글주소  수정/삭제

      만약 $db->query 를 다른 것으로 바꾼다면요 ??
      예를 들어서
      $result = $db->query($sql); 이렇게 쓰면 저같은 경우는
      db에 저장이 안되더라구요 그래서
      mysql_query(sql);로 바꿨더니 되었습니다...

      그럼...$bNo = $db->insert_id;
      이건 어떻게바꿔야 되는건가요?

    • Kurien 2015.08.02 00:28 신고  댓글주소  수정/삭제

      $result = $db->query($sql);에서
      $db는 new mysqli 이라는 코드를 통해서 생성됩니다.
      여기서 new mysqli는 mysqli라는 class를 불러오는 코드고,
      mysqli라는 class 안에 query라는 function이 이미 만들어져 있는겁니다.

      function query($sql) { ... } 이런식으로 되어있겠죠.

      결국 $db->query($sql)은 mysqli라는 class 내부에 있는 query라는 function 을 불러오는 부분입니다.

      객체지향 방식을 배우셨다면 쉽게 이해하실 수 있으실껍니다.

    • Kurien 2015.08.02 00:30 신고  댓글주소  수정/삭제

      $result = $db->query($sql)는 순차지향 방식으로는 $result = mysqli_query($db, $sql)입니다.

      mysql_query($sql)로 됐다면 $db 부분을 mysql_connect()와 같은 함수를 이용해서 만드셨겠네요.
      mysql보다는 mysqli를 쓰시길 권장하구요.

      mysql 방식으로 $bNo = $db->insert_id;는 $bNo = mysql_insert_id();로 알고 있습니다.

  4. 튼튼 2015.10.18 12:40  댓글주소  수정/삭제  댓글쓰기

    감사합니다!

  5. Leakim 2016.02.05 12:28  댓글주소  수정/삭제  댓글쓰기

    안녕 하세요 .kurien님,
    게시판 만드는 방법 쉽게 설명해주셔서 정말 감사하게 보고있어요.

    질문이 있습니다.
    sql문에서 values 값을 입력할때,
    values(null, "' . $bTitle . '", "' . $bContent . '", "' . $date . '", 0, "' . $bID . '", password("' . $bPassword . '"))';

    값을 " ' .$값 . ' " 처럼 큰따옴표/작은따옴표 그리고 '.' 로 감싼 이유가 있을까요?

    • Kurien 2016.02.07 22:47 신고  댓글주소  수정/삭제

      예를 들어서 "' . $bTitle . '" 이 있을 때 $bTitle이 Kurien이라는 단어라고 하면, 이 부분이 mysql로 전달 될 때는 "Kurien" 이라는 문자열이 전달됩니다.
      만약 ' . $bTitle . '이였다면 Kurien이라고 전달이 되지만, 해당 단어는 문자열일 때 사용 되는 큰 따옴표 혹은 작은 따옴표로 감싸져있지 않기 때문에 오류가 출력될 것이구요.

      쉽게 말해서 ""는 mysql에 전달 될 부분이고, ' . . '는 php 상에서 변수를 표현하기 위해서 사용 됩니다.
      다르게 사용하는 방법으로는 "{$bTitle}"도 "' . $bTitle . '"과 같은 결과를 출력합니다.

  6. djpark 2016.03.23 10:52  댓글주소  수정/삭제  댓글쓰기

    설명이 쉽고 상세해서 이해안되는 곳이 없을만큼 좋네요!
    감사합니다.

  7. 시로시로 2016.07.19 13:40  댓글주소  수정/삭제  댓글쓰기

    디비는 연결이 되었는데 디비 안으로 입력한값이 저장이 되질 않네요. ㅜㅜ 글이 등록 되었습니다 라고 알림창이 뜨고나서 다음 view 페이지로 넘어가는데 view창에도 입력한 내용이 나오지 않고 디비에도 저장이 되질 않습니다. 저는 임의로 db부분을 <?php
    header('Content-Type: text/html; charset=utf-8');

    //------------------------디비연결
    $db_ip = "localhost";
    $db_user = "**********";
    $db_pw = "**********";
    $db_name = "************";

    $conn = mysqli_connect($db_ip, $db_user, $db_pw, $db_name);

    if(mysqli_connect_errno($conn)) {
    echo "데이터베이스 연결 실패:" . mysqli_connect_error();
    } else {
    echo "성공!";
    }

    //-------------------------디비연결



    $sql = " select * from board_test ";

    $result = mysqli_query($conn,$sql);


    ?>

    이런식으로 바꿨는데 이부분이 문제인지 궁금합니다..

    아, 객체지향부분을 절차적으로 다 바꿨습니다.

    • Kurien 2016.07.21 21:51 신고  댓글주소  수정/삭제

      남겨주신 내용만으로는 오류가 발생할만한 문제는 없어보이네요.
      kurien92@gmail.com으로 전체 소스 남겨주시면 확인해보고 답변 드릴께요^^

  8. 직딩1 2016.07.26 11:48  댓글주소  수정/삭제  댓글쓰기

    안녕하세요. 쭉 잘 보고 있습니다. 질문 하나 남깁니다.

    $bID = $_POST['bID'];
    $bPassword = $_POST['bPassword'];
    $bTitle = $_POST['bTitle'];
    $bContent = $_POST['bContent'];
    $date = date('Y-m-d H:i:s');

    이 부분에서 경고가 뜹니다.

    Do not Access Superglobal $_POST Array Directly.
    Use some filtering functions instead (e.g. filter_input(), conditions with is_*0 functions, etc.).

    정상 등록 알럿창은 뜹니다만... 도움 부탁드립니다. ㅠㅠ

    • 직딩1 2016.07.26 11:50  댓글주소  수정/삭제

      동일 댓글 4개가 연속으로 달렸는데 수정은 되지만 삭제가 안 됩니다... ㅠㅠ

    • Kurien 2016.07.26 12:48 신고  댓글주소  수정/삭제

      일단 삭제 프로그램 부분은 제가 수정할 수 있는 부분이 아니라서 중복된 내용만 지웠구요.

      해당 오류는 저도 처음 보는 오류인데, 아마도 xampp?를 사용했을 때 나오는 오류인 듯 하네요.

      오류 내용으로 봐선 $_POST['변수']처럼 사용하지 말고 filter_input()과 같은 필터링이 가능한 함수를 거쳐 사용하라는 말인 듯 싶습니다.

      http://php.net/manual/kr/function.filter-input.php
      위의 문서를 보고 사용하시면 될 것 같네요.

    • 직딩1 2016.07.26 16:36  댓글주소  수정/삭제

      알려주신 링크대로 했더니 경고가 사라지고 알럿창만 예쁘게 떴습니다. 감사합니다! ^^

  9. 컴공 2016.11.11 17:41  댓글주소  수정/삭제  댓글쓰기

    아니 이렇게 좋고 쉬운글 보고 어렵다느니 외계어라느니..!! 말도안됩니다.

    Kurien 님 정말 감사합니다.

    책 출판하셔도 이것보다 더 쉽게 설명하는 책은 없을 듯 합니다. 진짜 짱..

  10. 감사해요 2017.02.03 15:16  댓글주소  수정/삭제  댓글쓰기

    정말이해가 잘되요.... 짱짱!!!

  11. Hust 2017.02.24 15:26  댓글주소  수정/삭제  댓글쓰기

    처음 공부중이라 필요한부분을 최소한으로 할려고 글 6번까지만 제가 코딩을 했는데요 우선 write.php는 화면에 출력이 잘되고 write_update.php 여기로 넘어가는데 빈화면만뜨네요 그러고 view.php도 마찬가지로 빈화면이떠요 그러고 원래 update되고 view로바로넘어가는거아닌가요? 아직초보여서 힘드네요 답변부탁드립니다

  12. kakoku13 2017.03.17 15:54  댓글주소  수정/삭제  댓글쓰기

    PHP 게시판 만들기, write 제작 1까지 잘 되고 있다가 여기서 막혔답니다ㅠㅠ
    아이디, 비빌번호, 제목,내용을 쓰고 작성을 누르면
    글을 등록하지 못했습니다 라고 팝업창이 뜬답니다. 어디서 부터 잘못됬을까요?

    • Kurien 2017.03.23 09:30 신고  댓글주소  수정/삭제

      제가 올린 코드로는 정상적으로 올라갑니다.
      단순히 안된다고만 말씀하시면 저도 뭐라고 답변해드릴 수가 없어요.
      코드를 올려주신다던지, DB 구조를 살펴보셔야 할 듯 하네요.

  13. TyphoonHacker 2017.04.02 09:12  댓글주소  수정/삭제  댓글쓰기

    아무리 예제 소스라고 하지만 이걸 그대로 사용하시는 사람들이 있을거같은데
    소스가 너무 취약한거같습니다 조금이나마 보안에 관해 언급해주셨으면 하는 ...

    • Kurien 2017.04.03 15:31 신고  댓글주소  수정/삭제

      이 글을 작성할 때 보안에 대한 걱정이 없었어서 그 점을 간과했네요. 빠른 시일 내에 주의하라는 내용 추가하도록 하겠습니다.

  14. Sakura 2017.05.12 02:10  댓글주소  수정/삭제  댓글쓰기

    글 업데이트 소스

    <html>
    <head>
    <meta charset="utf-8">
    </head>
    </html>
    <?
    $connect=mysql_connect("localhost", "root", "apmsetup")or
    die("SQL서버에 연결할 수 없습니다!");
    mysql_select_db("php_db", $connect);

    $b_id = $_POST['b_id'];
    $b_pw = $_POST['b_pw'];
    $b_title = $_POST['b_title'];
    $b_content = $_POST['b_content'];

    $date = date('Y-m-d H:i:s');


    $sql = 'insert into free_board (b_num, b_title, b_content, b_date, b_eye, b_id, b_pw)
    values(null, "' . $b_title . '", "' . $b_content . '", "' . $date . '", 0, "' . $b_id . '", "' . $b_pw . '"';

    $result = mysql_query($sql, $connect);
    if($result) { // query가 정상실행 되었다면,
    $$msg = "정상적으로 글이 등록되었습니다.";
    $b_num = $connect->insert_id;
    $replaceURL = './board_view.php?b_num=' . $b_num;
    // $replaceURL = './view.php?bno=' . $b_num;
    }else{
    $msg = "글을 등록하지 못했습니다.";
    ?>
    <script>
    alert("<? echo $msg ?>");
    history.back();
    </script>
    <?
    }

    ?>
    <script>
    alert("<?php echo $msg?>");
    location.replace("<? echo $replaceURL ?>");
    </script>



    글쓰기 소스에서도 input태그 name들 전부다 b_id, b_pw, b_title, b_content로 줬는데도 불구하고 자꾸 글이 안올라가져요 ㅠㅠ

  15. 한지민 2019.05.13 15:00  댓글주소  수정/삭제  댓글쓰기

    잘 보고있어요

  16. 또또 2019.10.18 20:16  댓글주소  수정/삭제  댓글쓰기

    실습따라하는 중입니다. 혹시 write_update에서 post값은 잘 넘어오는데, mysql로 안넘어가서 고생하는 분 있으시면, 비밀번호를 어렵게 설정해보면 될 수도 있습니다. 최신버전 mysql은 password()함수에도 패스워드생성규칙을 적용하는지 검사하는군요. 세부사항은 https://heartbleed.tistory.com/86링크의 4번항목 참고하세요. 정보남기는 김에 원작자님께 감사하는 말씀도 드리고 싶네요. 덕분에 많이 배우고 있습니다.

  17. 예진 2020.10.07 15:49  댓글주소  수정/삭제  댓글쓰기

    지금까지 좋은 설명 덕분에 잘 따라왔는데 실습따라하는 중 오류가 생겨 댓글 남깁니다. 모든 코드를 같게 했는데도 "글을 등록하지 못했습니다." 가 뜨면서 글 등록이 되지 않습니다. 데이터베이스로 직접 등록시에는 잘 올라가는데 글 수정이나 글쓰기가 안됩니다ㅠㅠ 어느부분이 문제일까요?

  18. 아스날 2021.08.29 22:19  댓글주소  수정/삭제  댓글쓰기

    언론 보도에 따르면, 아스날은 셰필드 유나이티드의 골키퍼인 아론 램스데일 영입을 포기하지 않았다. 아스날은 이적시장이 마감되는 8월 31일전에 다시한번 램스데일에게 오퍼를 제시할 것이다. 램스데일에 대한 아스날의 2차례 오퍼는 모두 셰필드에 의해 거절당했다.

    ♩같은 ♪♪♪스날 돈도 없다면서 [ https://mtpolice11.xyz ] 뭐하는 짓인지


    아스날은 현재 넘버1 골키퍼인 베른트 레노와 경쟁할 수 있는 골키퍼를 찾고 있다. 레노의 계약기간이 2년이나 남았지만, 새로운 골키퍼는 레노의 계승자가 될수 있다. Football London 보도에 따르면, 아스날은 램스데일에 대한 믿음을 잃지 않았고, 이번달안에 3번째 오퍼를 제시할 것이다.

    레만이후로 그냥 매년 골키퍼는 쭉 믿고가는애가 없냐
    알무니아 파비안스키 슈제츠니 [ https://mtpolice12.xyz ] 마노네 체흐 오스피나 레노 마르티네즈 ...

    아스날은 현 상황에 대해 느긋해보이지만, 마감시간이 가까워지면, 오퍼를 제시할수 밖에 없을 것이다. 하지만, Football London은 셰필드는 램스데일의 이적료로 30M파운드를 요구중이나, 아스날은 아직 그정도까지 오퍼를 제시하지는 않았다. Sky Sports는 아스날의 3번째 오퍼는 25M파운드로 예상한다고 주장했다.

  19. 파워볼판정단 2021.09.17 12:31  댓글주소  수정/삭제  댓글쓰기

    이용약관위배로 관리자 삭제된 댓글입니다.

  20. 히버니 2021.10.10 03:10  댓글주소  수정/삭제  댓글쓰기


    셀틱의 감독인 앤제 포스테코글루 감독은 라이언 크리스티를 잔류시키는 것을 포기하지 않을 것이고, 재계약에 대한 협상을 진행할 것이다(데일리 레코드)



    리빙스톤의 감독인 데이비드 마틴데일은 [ http://sss.aaoouu.com ] 버밍엄의 미드필더 오딘 베일리 임대가 가까워졌다고 말했다(스코츠맨)



    페예노르트는 헤렌벤의 플레이메이커인 조이 베어만에 대해 아직 가격을 책정하지 않았다고 말했다. 그는 이번 여름에 레인저스와도 연결됐었다(스코티시 선)



    셀틱의 공격수 오드손 에두아르는 어제 던디와의 [ http://ttt.aaoouu.com ] 경기를 치룬 후 5명 씩 모여서 진행하는 트레이닝 세션에서 발목 부상을 당한 것으로 보인다(스코티시 선)



    로스 카운티의 감독인 말리 맥카이 감독은 이번 이적 시장이 끝나기 전에 4명의 새로운 선수를 영입할 것이라고 말했다(프레스 앤드 저널)



    세인트 존스톤의 감독인 칼럼 데이비슨은 마더웰과의 경기에 [ http://uuu.aaoouu.com ] 찾아온 스코틀랜드 국가대표 감독인 스티브 클라크 앞에서 잔데르 클락 골키퍼가 훌륭한 활약을 한 후 스코틀랜드 국가대표 스쿼드에 들어가기 충분한 자격이 있다고 말했다(쿠리어)



    이번 여름에 셀틱과 여러 오른쪽 풀백이 연결되고 있음에도 불구하고 프리미어십 첫 두 경기에서 두 골을 넣은 안토니 랄스톤은 셀틱에서 계속해서 뛸 수 있는 희망이 생겼다(스코티시 선)



    히버니언의 감독인 잭 로스는 히버니언이 로스 [ http://vvv.aaoouu.com ] 카운티를 3:0으로 이긴 경기에서 조시 도이그의 미래에 대한 추측은 접어둔 후 그의 성숙함에 대해 칭찬했다(에든버러 이브닝 뉴스)



    던디 유나이티드의 수비수 찰리 멀그루는 토요일에 열린 레인저스와의 경기에서 레인저스의 공격수인 알프레도 모렐로스가 골문으로 들어오자 그를 붙잡은 것에 대해 퇴장을 주지 않은 돈 로버트슨 주심의 판정이 옳았다고 말했다(헤럴드)



    하츠의 감독인 로비 닐슨은 하츠의 공격수인 아만드 그난둘렛에게 주전 자리를 찾기 위해 인내심을 가져야 한다고 했다(에든버러 이브닝 뉴스)

  21. 김민재 2021.10.13 15:59  댓글주소  수정/삭제  댓글쓰기

    공격형 미드필더 필요한 상황에 와서 쏠쏠하게 써먹었는데 세간의 기대만큼 막 역대급 천재 이런 느낌은 아니었음
    역동성이 많이 죽은게 눈에 띄어서 아스날 팬들도 '엥? 생각만큼은 아닌데...'라는 느낌도 있었지만
    오히려 하드워커 느낌이 강했고 그래도 태도나 정신적인 면에서만큼은 임대생인데도 불구하고 팀내 탑클래스에 속하는등 정말 열심히였음

    딱 적절한 시기에 와서 열심히 뛰어주다 가서 고마움

    아탈란타와 로마는 타미 에이브러햄을 원하며, 첼시도 에이브러햄의 [ http://xxx.aaoouu.com ] 임대계약을 준비하고 있지만, 알려진바에 따르면, 선수는 잉글랜드를 떠나길 원치 않으며, 그의 심장은 아스날로 향하고 있다. 23살의 센터포워드는 연쇄이적에 한 축을 담당하고 있다.



    로멜로 루카쿠가 인터밀란에서 첼시로, 에딘제코가 로마에서 인터밀란으로 이적할 수 있으며, 두반 자파타도 인터밀란의 잠재적 옵션이다. 그래서, 아탈란타와 로마는 새로운 스트라이커를 찾고 있으며, 양 팀은 모두 에이브러햄을 눈여겨보고 있다.

    성골이란 놈이 라이벌 클럽이적을 선호하네 런던말고 다른 데로 가주면 좋겠는데

    이탈리아 언론사인 Calciomercato 보도에 따르면, 첼시는 타미 에이브러햄의 2년 임대 + 임대료 5M유로 + 이적조항 30-35M유로를 수락할 준비가 되었다. 하지만, 이탈리아 언론사는 에이브러햄이 잉글랜드를 떠나길 원치 않으며, 오히려 첼시의 라이벌인 아스날로 이적하는 것을 선호한다고 주장했다.



    그는 잉글랜드 국가대표롯 6경기동안 1골을 기록했으며, [ http://yyy.aaoouu.com ] 첼시 아카데미를 졸업한 그는 브리스톨 시티, 스완지 시티, 아스톤 빌라에서 임대생활을 보냈다. 이 센터포워드는 지난시즌 첼시에서 32경기동안 12골과 6어시스트를 기록했다.


    대구고는 12일 서울 목동구장에서 열린 제52회 대통령배 전국고교야구대회(중앙일보·일간스포츠·대한야구소프트볼협회 주최) 준결승전에서 신일고를 15-2로 크게 물리쳤다. 이어 열린 경기에서 경기고는 광주일고를 7-6으로 꺾었다. 두 팀은 13일 오후 6시 대결한다.


    터키 매체에 따르면 페네르바체는 김민재에게 바캄부 영입을 위한 로비스트 역할을 맡아달라고 요청했다고함.


    아우구스토가 심지어 “김민재 이새끼는 브라질 사람이었으면 바르셀로나 간다 ㄹㅇㅋㅋ”이라고 인터뷰까지 했을 정도ㅋㅋㅋㅋ

    페네르바체는 김민재가 합류한데 이어 또다른 베이징궈안 출신의 [ http://zzz.aaoouu.com ] 선수를 영입하길원함.



    페네르바체는 김민재에게 바캄부를 설득해달라고 요청했으며, 김민재는 정식계약이후 바캄부와 소통할예정이라고함.



    바캄부는 현재 유럽복귀를 원하고있고, 같은 터키팀인 트라브존스포르도 바캄부를 주목하고있다고함.