OSDN Git Service

ログイン必須化(Forbidden対策)。
[yanmah2/YANMAH2-season2-.git] / keywords.php
1 <?php
2 //YANMAH2 - Yet ANother Mobile Accelerated HatenaHaiku
3 //(c) 2014 YANMAH2 project
4 //This program is freesoftware. you can redistribute it and/or modify it under the terms of the [GNU Affero GPL v3](http://www.gnu.org/licenses/agpl.html).
5 ?>
6 <?php
7 define("HELLO","world");
8 require_once "product_definitions.php";
9 require_once "configurable_variables.php";
10 require_once "common_functions.php";
11 ?>
12 <?php
13 require_once "init_processor.php";
14 if (!isset($_SESSION['auth']) || $_SESSION['auth'] != TRUE){
15 // if ($_SESSION['image'] != 'on'){
16   $_SESSION = array();
17   if (isset($_COOKIE[session_name()])){
18         setcookie(session_name(), '', time() - 42000, dirname($_SERVER['SCRIPT_NAME']) . '/', $_SERVER["SERVER_NAME"]);
19   }
20   session_destroy();
21 // }
22 }
23 //session_regenerate_id(TRUE);
24 ?>
25 <?php
26 $selfcall = htmlspecialchars($_SERVER["PHP_SELF"], ENT_QUOTES);
27 $safequery = htmlspecialchars($_SERVER["QUERY_STRING"], ENT_QUOTES);
28 ?>
29 <?php
30 //長すぎる検索ワード
31 if (isset($_GET["word"])) checkWord($_GET["word"]);
32 if (isset($_GET['related'])) checkWord($_GET['related']);
33 //不正なはてなID
34 if (isset($_GET["user"])) checkId($_GET["user"]);
35 //不正な page
36 if (isset($_GET['page'])) checkPagenum($_GET['page']);
37 ?>
38 <?php
39 //
40 // require 'login_processor.php';
41 ?>
42 <?php
43 if (isset($_GET['word']) && $_GET['word'] != ''){
44   $get_word = $_GET['word'];
45   $get_word = mb_convert_encoding($get_word, 'UTF-8', $charcode);
46   $json_url = $api_base_url.'keywords/list.xml?word=' . rawurlencode($get_word).'&without_related_keywords=1';
47   $page_head = htmlspecialchars($get_word, ENT_QUOTES) . ' に一致するキーワード';
48   $self_anchor = "http://{$_SERVER["SERVER_NAME"]}{$selfcall}".'?word=' . rawurlencode(htmlspecialchars($get_word, ENT_QUOTES));
49   $list_mode = 'search';
50 } elseif (isset($_GET['user']) && $_GET['user'] != ''){
51   $get_user = $_GET['user'];
52   $json_url = $api_base_url.'statuses/keywords/' . $get_user . '.xml'.'?without_related_keywords=1';
53   $page_head = htmlspecialchars($get_user, ENT_QUOTES) . ' のお気に入りキーワード';
54   $self_anchor = "http://{$_SERVER["SERVER_NAME"]}{$selfcall}".'?user=' . $get_user;
55   $list_mode = 'following';
56 } elseif(isset($_GET['related']) && $_GET['related'] != ''){
57   $get_related = $_GET['related'];
58   $get_related = mb_convert_encoding($get_related, 'UTF-8', $charcode);
59   $json_url = $api_base_url.'keywords/show/'.rawurlencode($get_related).'.xml';
60   $page_head = htmlspecialchars($get_related, ENT_QUOTES).' の関連キーワード';
61   $self_anchor = "http://{$_SERVER["SERVER_NAME"]}{$selfcall}".'?related='.$get_related;
62   $list_mode = 'related';
63 } else {
64   $json_url = $api_base_url.'keywords/list.xml'.'?without_related_keywords=1';
65   $page_head = 'キーワード一覧';
66   $self_anchor = "http://{$_SERVER["SERVER_NAME"]}{$selfcall}";
67   $list_mode = 'default';
68 }
69 if (isset($_GET['page']) && $_GET['page'] != ''){
70         if ($list_mode == 'default' || $list_mode == 'related'){
71                 $self_anchor_possibly_with_pagenum = $self_anchor . '?page=' . $_GET['page'];
72         } else {
73                 $self_anchor_possibly_with_pagenum = $self_anchor . '&amp;page=' . $_GET['page'];
74         }
75         $relog_back = $self_anchor_possibly_with_pagenum . '&log=try';
76         $relogin = $self_anchor_possibly_with_pagenum . '&amp;with=haiku&amp;callback='.rawurlencode($relog_back);
77 } else {
78         if ($list_mode != 'default'){
79           $self_anchor_possibly_with_pagenum = $self_anchor.'&page=1';
80         } else {
81           $self_anchor_possibly_with_pagenum = $self_anchor.'?page=1';
82         }
83 //      $self_anchor_possibly_with_pagenum = $self_anchor;
84         if (isset($_SERVER['QUERY_STRING']) && $_SERVER['QUERY_STRING'] != ''){
85           $relog_back = $self_anchor_possibly_with_pagenum . '&log=try';
86           $relogin = $self_anchor_possibly_with_pagenum . '&amp;with=haiku&amp;callback='.rawurlencode($relog_back);
87         } else {
88           $relog_back = $self_anchor_possibly_with_pagenum . '?log=try';
89           $relogin = $self_anchor_possibly_with_pagenum . '?with=haiku&amp;callback='.rawurlencode($relog_back);
90         }
91 }
92 if ($get_image == 'on'){
93                 $self_anchor_with_imagemode = $self_anchor_possibly_with_pagenum . '&image=on';
94 } else {
95                 $self_anchor_with_imagemode = $self_anchor_possibly_with_pagenum . '&image=off';
96 }
97 ?>
98 <?php
99 $echo = <<<EOL
100 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
101    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
102 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
103 <head>
104         <meta http-equiv="Content-Type" content="text/html; charset={$meta_charset}" />
105         <meta http-equiv="Content-Style-Type" content="text/css" />
106         <meta http-equiv="Content-Script-Type" content="text/javascript" />
107         <meta name="viewport" content="initial-scale={$iscale}, minimum-scale=0.1" />
108         <title>{$page_head} - {$site_name}{$site_name_caption}</title>
109         <link rel="stylesheet" href="{$style_sheet}" />
110         <link rel="icon" href="./favicon.ico" type="image/vnd.microsoft.icon" />
111         <link rel="shortcut icon" href="./favicon.ico" type="image/vnd.microsoft.icon" /></head>
112 <body>
113 <div id="page">
114 EOL;
115 ?>
116 <?php
117 //var_dump($_GET);
118 // var_dump($json_url);
119 // var_dump($list_mode);
120 $echo = $echo . echoCommonHeader('#navigation-menu', $self_anchor_with_imagemode) . "<hr />\n";
121 $echo = $echo . "<div id=\"header\" class=\"keywords\">\n";
122 $echo = $echo . "<h1 id=\"entries-head\" class=\"head1\">{$page_head}</h1>\n<hr />";
123 $echo = $echo . "</div>\n";
124 ?>
125 <?php
126 $echo = $echo . '<div class="contents">'."\n";
127 if (isset($_SESSION['auth']) && $_SESSION['auth'] === TRUE){
128   $echo = $echo . '<ul class="kwd-ls">'."\n";
129   $echo = $echo . '<li><form method="get" action="./keywords.php" accept-charset="'.$meta_charset.'">
130   ';
131   $echo = $echo . '<label for="go2keyword">キーワード</label><input type="text" name="word" maxlength="170" id="go2keyword" /><label for="go2keyword">を</label>
132   ';
133   // if (isset($_GET['image']) && $_GET['image'] == 'on') $echo = $echo . '<input type="hidden" name="image" value="on" />';
134   $echo = $echo . '<input type="submit" value="検索" /></form></li>';
135   if (isset($_GET["page"]) && $_GET["page"] != ''){
136           if (isset($get_word) && $get_word != ''){
137                   $request_url = $json_url . "&page=" . htmlspecialchars($_GET["page"], ENT_QUOTES);
138           }     elseif (isset($get_user) && $get_user != ''){
139                     $request_url = $json_url . "&page=" . htmlspecialchars($_GET["page"], ENT_QUOTES);
140           }     elseif (isset($get_related) && $get_related != ''){
141                   $request_url = $json_url . '?page='.htmlspecialchars($_GET['page'], ENT_QUOTES);
142           } else {
143                           $request_url = $json_url . '&page=' . htmlspecialchars($_GET['page'], ENT_QUOTES);
144           }
145   }     else {
146           $request_url = $json_url;
147   }
148   // var_dump($request_url);
149   require_once 'keywords_processor.php';
150   $echo = $echo . "</ul>\n";
151 } else {
152   $echo = $echo . '<p>内容を読むには<a href="./login.php?return='.rawurlencode(rawurldecode($self_anchor_with_imagemode)).'" class="navigation-link">ログイン</a>してください。</p>';
153 }
154 $echo = $echo . "<hr /></div>\n";
155 ?>
156 <?php
157 if ($list_mode == 'related' || $list_mode == 'following'){
158   $navi_paging = FALSE;
159 } else {
160   $navi_paging = TRUE;
161 }
162   $navi_imaging = FALSE;
163 require 'footer_include.php';
164 $echo = $echo . '</div></body></html>';
165 echo mb_convert_encoding($echo, $charcode, 'UTF-8');
166 ?>