約 67,091 件
https://w.atwiki.jp/nicepaper/pages/67.html
前回記事MySQLでテーブル作成2ではフィールドの挿入等の確認をしました。次にPHP側でコードを書いてデータベースへ挿入です。色々とセキュリティに関する事項がでてくるので、執筆が長くなるかもしれませんが、ご了承ください。6月2日記事 目次 掟 ユーザが入力したJavaScriptを実行させないhtmlspecialchars関数 MySQLへデータを正確に処理させ、データベースの内容を改ざん削除させないSQLインジェクション対策 PDOの利用 フォームを作ってみる 確認ページ 完了ページ 現在の風潮 感想 掟 phpでMySQLとの連携プログラムを書く際に、注意しなければならない点がいくつかあります。その中で、2つに絞ってまずは話していきたいと思います。非常に最初は混同しがちですが、よく読みながら見ていってください。 ユーザが入力したJavaScriptを実行させないhtmlspecialchars関数 現在、JavaScriptを使ったWEBページは多く存在しています。JavaScriptを利用することで、表示上動きのあるWEBサイト構築が可能になっています。閲覧者、利用者の多くはブラウザでJavaScriptの実行をONにしていることが多く、JavaScriptの利用は必要不可欠になっています。しかし、その部分を悪用し、「JavaScriptで他のサイトに転送(リダイレクト)させたり、悪意のあるコードを読み込ませたりする攻撃」が多発しています。この攻撃を「クロスサイトスクリプティング」といいます。ある利用者が掲示板や皆が閲覧するページにこのJavaScriptのコードを埋め込まれた記事を書いてしまったら、そのページの利用者に多くの迷惑をかけることになります。そのため、 利用者には、JavaScriptの実行コードを埋め込ませてもそれを実行させないための対策 が必要となります。開発者は悪意がなければ開発時にページにJavaScriptコードを埋め込んでしまってもかまいません。あくまで 利用者にJavaScriptのコードを埋め込ませてもよいが、その内容を表示させるときにJavaScriptは実行させないプログラムを書く ということが重要です。それができるのがhtmlspecialchars関数です。 MySQLへデータを正確に処理させ、データベースの内容を改ざん削除させないSQLインジェクション対策 次に、利用者が勝手にデータベースの内容を改ざんしたり、削除させたりしない対策が必要になります。データベースに内容を挿入、更新、削除する場合、当然SQLのクエリを内部で実行させています。そのため、悪意のある利用者がこのSQLクエリを実行させるような内容を記述されてしまったら、データベースの内容が改ざん、削除されてしまいます。URLの末尾にSQLのクエリを書いたり、フォームの部分にSQLのクエリを書けばそのようなことが起きる場合があります。この攻撃のことを「SQLインジェクション」と言います。そのため、 利用者に悪意のあるSQLクエリを入れられても実行させないための対策 が必要になります。以前はmysql_real_escape_stringという関数を使って対策を行っていましたが、色々と悪意のあるコードを実行させる手法が登場してきているため現在はこの関数は 非推奨 となっています。現在では、PDOを使ってデータベースに挿入、更新、取得をさせる方法が主流です。 PDOの利用 PDOの設定についてはPDOの利用をご参照ください。 フォームを作ってみる こちらはただのHTMLを記述していきます。 と宣言したのですが、SELECTタグを使ってフォームを作ると、2月30日や4月31日が作成可能になってしまいますので、公開日等のフォームをjQueryで作っていきたいと思います。もし2月30日や4月31日をクエリで投げてもデフォルト値で指定したもの等になってしまいますので、制限する必要があります。多少横道にはそれますがご了承ください。作り方はjQueryで日付入力フォームを作るをご参照ください。公開日のところ以外のCSS記述は割愛します。各自CSSでうにょうにょやってください。 ファイル名(register.php) !DOCTYPE HTML html lang="ja" head meta charset="utf-8" title 新規作成 /title script type="text/javascript" src="http //ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js" /script script type="text/javascript" src="http //ajax.googleapis.com/ajax/libs/jqueryui/1/jquery-ui.min.js" /script script type="text/javascript" src="http //ajax.googleapis.com/ajax/libs/jqueryui/1/i18n/jquery.ui.datepicker-ja.min.js" /script link type="text/css" href="http //ajax.googleapis.com/ajax/libs/jqueryui/1/themes/ui-lightness/jquery-ui.css" rel="stylesheet" / script type="text/javascript" $(function(){ $("#datepicker").datepicker() }); /script /head body form action="confirm.php" method="post" dl dt 公開日 /dt dd input type="text" name="form_date" id="datepicker" /dd !--textにした理由はwebkit対策-- dt 種類 /dt dd select name="form_type" option value="1" selected ニュース /option option value="2" 更新情報 /option option value="3" 入荷情報 /option option value="4" その他 /option /select dt タイトル /dt dd input type="text" name="form_title" size="40" maxlength="30" /dd dt 内容 /dt dd textarea name="form_info_text" cols="40" rows="5" /textarea /dd dt URL /dt dd input type="url" name="form_url" size="40" /dd dt ステータス /dt dd select name="form_status" option value="2" selected 公開 /option option value="1" 下書き /option /select /dd /dl input type="submit" name="form_submit" value="確認" /form /body /html データベースに挿入する名前とフォームの部品の名前を区別するためにフォームの方にはform_という名前を付けておきました。 するとこうなります。 確認ページ こちらは、クロスサイトスクリプティング対策を兼ねたコードを記述してきます。 JavaScriptのコードを実行させない確認表示が必要になります。「別に、埋め込んだ人が自分で自分を攻撃してどうするの?」という方もいらっしゃると思いますが、HTMLを正確に出力するということはある意味標準で考えなければならないことなので、htmlspecialchars関数を使って記述していきます。ここからはphpを実行させる環境を用意してください。 コード(ファイル名:confirm.php) !DOCTYPE HTML html lang="ja" head meta charset="utf-8" title 確認画面 /title /head body ?php /*特定のURIから送信された時のみ実行*/ if($_SERVER["HTTP_REFERER"] == (empty($_SERVER["HTTPS"]) ? "http //" "https //").$_SERVER[ HTTP_HOST ]."/register.phpまでのフォルダを記述/register.php"){ /*まずはエラー処理*/ $error = ;/*初期化。以降エラーがあれば$errorに格納していく。*/ if($_POST[ form_date ] == ) $error .= 日付が選択されていません。 br ;/*①*/ if(preg_match( /^([1-9][0-9]{3})\/(0[1-9]{1}|1[0-2]{1})\/(0[1-9]{1}|[1-2]{1}[0-9]{1}|3[0-1]{1})$/ , $_POST[ form_date ])){}else{ $error .= 不正な日付です。 br ;} if($_POST[ form_type ] == ) $error .= 投稿種類が選択されていません。 br ; if($_POST[ form_title ] == ) $error .= タイトルが入力されていません。 br ; if(mb_strlen($_POST[ form_title ]) 30) $error .= 30文字以内にしてください br ; if($_POST[ form_info_text ] == ) $error .= 内容が入力されていません。 br ; if(mb_strlen($_POST[ form_info_text ]) 1000) $error .= 1000文字以内にしてください br ; if($_POST[ form_status ] == ) $error .= 状態が選択されていません。 br ; echo $error;/*エラーがあればエラーを表示*/ if($error == ){ echo dl dt 日付 /dt dd .htmlspecialchars($_POST[ form_date ]). /dd dt 種類 /dt dd ; switch ($_POST[ form_type ]){ case 1 echo ニュース ; break; case 2 echo 更新情報 ; break; case 3 echo 入荷情報 ; break; case 4 echo その他 ; break; default echo その他 ; } echo /dd dt タイトル /dt dd .htmlspecialchars($_POST[ form_title ]). /dd dt 内容 /dt dd .nl2br(htmlspecialchars($_POST[ form_info_text ])). /dd dt URL /dt dd .htmlspecialchars($_POST[ form_url ]). /dd dt 状態 /dt dd ; switch ($_POST[ form_status ]){ case 0 echo 削除 ; break; case 1 echo 下書き ; break; case 2 echo 公開 ; break; default echo 削除 ; } echo /dd /dl form action="complete.php" method="post" input type="hidden" name="form_date" value=" .htmlspecialchars($_POST[ form_date ]). " input type="hidden" name="form_type" value=" .htmlspecialchars($_POST[ form_type ]). " input type="hidden" name="form_title" value=" .htmlspecialchars($_POST[ form_title ]). " input type="hidden" name="form_info_text" value=" .htmlspecialchars($_POST[ form_info_text ]). " input type="hidden" name="form_url" value=" .htmlspecialchars($_POST[ form_url ]). " input type="hidden" name="form_status" value=" .htmlspecialchars($_POST[ form_status ]). " p この内容でよろしいでしょうか? /p input type="submit" name="submit" value="はい" input type="button" value="戻る" onClick="history.back()" /form ; } }else{ echo 正しいアクセスを心がけてください。 ; } ? /body /html 解説 ①$error .= は前の$errorという変数に付け加えていくという意味です。 表示はこのようになります。 完了ページ こちらは、SQLインジェクション対策を兼ねたコードを記述していきます。 ここではMySQLのINSERT文を投げていきます。 ファイル名(complete.php) !DOCTYPE HTML html lang="ja" head meta charset="utf-8" title 完了 /title /head body ?php /*特定のURIから送信された時のみ実行*/ if($_SERVER["HTTP_REFERER"] == (empty($_SERVER["HTTPS"]) ? "http //" "https //").$_SERVER[ HTTP_HOST ]."/confirm.phpまでのフォルダ記述/confirm.php"){ $dsn = mysql dbname=データベース名;host=ローカルホスト;port=ポート番号 ; $user = ユーザ名 ; $password = ユーザパスワード ; $dbh = new PDO($dsn, $user, $password); try{ //成功時対応 $stmt = $dbh - prepare("INSERT INTO テーブル名 ( info_date ,title,type,info_text,url,status) VALUES ( info_date, title, type, info_text, url, status)"); $stmt- bindParam( info_date , $_POST[ form_date ], PDO PARAM_STR); $stmt- bindParam( title , $_POST[ form_title ], PDO PARAM_STR); $stmt- bindParam( type , $_POST[ form_type ], PDO PARAM_INT); $stmt- bindParam( info_text , $_POST[ form_info_text ], PDO PARAM_STR); $stmt- bindParam( url , $_POST[ form_url ], PDO PARAM_STR); $stmt- bindParam( status , $_POST[ form_status ], PDO PARAM_INT); $stmt- execute();//実行 switch ($_POST[ form_status ]){ case 0 echo 削除しました。 br ; break; case 1 echo 下書きに保存しました。 br ; break; case 2 echo 公開対象になりました。 br ; break; default echo 削除しました。 br ; } print a href="register.php" 新規作成へ戻る /a ; }catch (PDOException $e){//失敗時対応 print( Connection failed .$e- getMessage()); die(); } $dbh = null; }else{ echo 正しいアクセスを心がけてください。 ; } ? /body /html 現在の風潮 現在、確認ページを作らず、挿入される値をチェックして、エラーがなければすぐ挿入という方法も流行ったりしています。その記事はいつか作っていきたいと思います。初回ということでSQLインジェクションとクロスサイトスクリプティングの利用ということで、このような記事を作っていきました。 感想 この方法だと、complete.phpで更新ボタンを押すと、またデータが挿入されてしまいます。Sessionファイルを使って、フォームを受け取り等をし、完了したら、Sessionファイルを空にする的なコードを書けば、それが防げます。 我ながらに下手なコードだなぁ・・・。もっと色々と変えなければならないことが山ほどあります。まあ、PHPでこんな風に書くよ的なことがわかればいいなと思ったりもします。(考え方甘い?) 次回は挿入したデータを取得していき、表示したいと思います。ページ名は、PHPとMySQLでデータの取得です。 コメントお待ちしております。 名前 コメント
https://w.atwiki.jp/annbeyoffice/pages/33.html
図・オートシェイプ・クリップアートを挿入、操作する そんなんできるよという人が大多数であると信じたいですが 2007になって配置が変わっていますので、それの確認がてらやってみるのもいいと思います。 またこの操作はPOWERPOINT、EXCELなどでも共通して受講することができますので合わせて覚えてみてください。 問 下記「お題」をダウンロードし下記の操作を行いなさい。 タイトルに図形(2003ではオートシェイプ)リボンを適用し、タイトルをリボン内のテキストとする。なおリボンのテキスト入力可能範囲は左右を拡張、上下を縮小すること。 1段落右側に写真matsuoka.JPGを挿入すること。なお文章の折り返しは四角とし、文章の右側に配置する。またサイズは縦横比を固定したまま150%とし、下側%5mmをトリミングする。 第2段落左側にクリップアートからテニスに関するイラストを適当に選択し、挿入すること。そのほかは既定値とする。 お題ダウンロード 練習用写真 答 図形の挿入 図形を挿入します。2003まではオートシェイプといわれていた彼です。2007になってから彼はどこに行ってしまったのでしょう?メニュー画面をころころ変えるなということですな!! 上記写真の『1』のことをリボンといいます。Microsoft曰く「必要な操作をリボンごとにあつめているから操作が便利になってるぜ!」ということですが2003の使いにくい画面に慣れきった我々には使いにくいったらありゃしない!のです。使いたかったら使え(しかも高い)まるで国鉄ですね。まああまりそれるのはやめましょう。 われわれの目標は『2』にありますので、ここをクリックしてください。 するとおよそWORDで必要になると思われるすべて“挿入”集まっています。われわれが今回復習するのはこの赤枠のところだけですが、ほかにグラフやら、挨拶文やらいろいろありますね。この講座で全部やっていこうと思いますの請うご期待!!(数式なんかは数学の先生が数学のテストを作るためにありますが、これであなたも数式をつくることができるのです!!) では早速「リボン」を挿入します。名前が同じなので分かりにくいですがこちらは図形の中にあるリボンです。 下記の赤丸の図形を挿入します。図形をクリックすると、マウスポインターが十字になると思いますので、適当な場所でドラッグしてください。大きさなどはあとで変えられますので、適当で大丈夫です。 できました。まずはテキストを追加しますので、タイトル「強化合宿のお知らせ」をお知らせを切り取ってください。その後、リボン(図形のほう)の上で右クリックをすると、『テキストの追加』をクリックするとテキストを追加することができます。この状態で貼り付けてください。 黄色のダイヤモンドがあるのをお気づきですか?これをドラッグすると、形を変えることができます。これは図形全般に共通する項目ですので、黄色のダイヤモンドを覚えておいてください。 よく見るとテキストが偏っていますね。これは中央に寄せたほうが見た目がよくなります。図形の線の上を右クリックすると 上の図のようになります。図形の中で右クリックをすると下の図のように中に入力したテキストに対する右クリックになります。 「オートシェイプの書式設定」>「テキストボックス」のタグ>垂直方向の配置から「中央揃え」を選択してOKをクリックします。 まだ左右が中央揃えになっていないのでリボン(こっちはメニュー画面のほうです)からホームをクリックして、段落のこうからセンタリングをクリックすると完成です。 ※もし垂直方向が中央揃えできない場合は改行が入っている場合がありますので、削除してください。 完成した図形をもとのタイトルがあった位置まで動かすと完成です!!(このときも図形の線をドラッグするとうまくいきます!) 図の挿入 「図を挿入」とは、自分で描いた絵や写真を挿入する操作をいいます。昨今文章だけの文章なんて誰も読んでくれません。そんなわけで図を挿入して見やすくしていきます。 リボン「挿入」>「図」をクリックします。 「図の挿入」というファイルを読み込むウィンドウが表示されたらmatuoka.JPGをクリックします。すると文章上に松○○造の写真が表示されるので第1段落の右に移動させてください。 なんかうまくいきませんね^^; けっして写真の題材が悪いわけではありません。これは写真が一文字として扱われているからです。大きな一文字が行の中に挿入されている扱いになります。これでは邪魔ですね。けっして写真の題材が悪いわけではありません。 この変更は 図の上で右クリック>文字列の折り返し>四角をクリック をすると、文章が写真を回り込むように配置されますので、文章の右側に貼り付けてください。ちなみに 行内・・・おおきな一文字扱い 外周・・・図形のでこぼこに合わせて文章を回り込ませる 四角・・・図形の一番出っ張っている部分の直線にあわせて文章を回しこませる。 背面・・・文章の後ろ 全面・・・文章の上に覆いかぶさる 上下・・・段落の上か下 内部・・・文章内部で入り込み文章がまわりこむ です。 サイズの変更はドラッグでも可能ですがかっちりやりたい場合は図を 右クリック「サイズ」 「サイズ」のタブで可能です。 「縦横比を固定する」をチェックしておくと、形をゆがませることなくサイズを変えることができます。 またこの場で一緒にトリミングもしてしまいましょう。 トリミングとは、図の上下左右のいらない部分を削り取る作業です。 トリミング範囲の下に5mmと入力します。 クリップアートの挿入 クリップーアート(OFFICEであらかじめ用意されているイラスト)を挿入します。また リボン「挿入」>クリップアート をクリックしてください。右にクリップアートが出てきますので検索窓にテニスと入力し出てきたクリップアートを挿入してください。(どれでもかまいません。) また図の挿入を参考に、段落の左側に配置しましよう!
https://w.atwiki.jp/fun-sci/pages/13.html
統計解析では、同じようなことを別の言葉で言い直すことが多かったり 同じ事を別のやり方で説明することが多いようです。 C-M-H(Cochran-Mantel-Haenszel法)も結局はΧ^2^じゃんってはなし。
https://w.atwiki.jp/testest-umigamedb/pages/3686.html
2023年11月18日 出題者:指揮棒 タイトル:「人を呪わば穴二つ挿入」 【問題】 女は2人の男に挟まれ両方の穴に挿入されてしまった。 女はその苦しみに耐えながら声も出せずに泣くしかなかった。 どういう状況? 【解説】 + ... 映画館に来た女は、冷たい飲み物を買って劇場に入ったが、 自分の席の両隣の男に、女の左右両方のドリンクホルダーを使われてしまっていた。 女は仕方なく飲み物を持ったまま映画を観賞することにした。 ずっと冷たい飲み物を持っていたため手がかじかんだが、その辛さにも耐えて最後まで映画を観て、感動で泣いたのだった。 《エロ》《瞬殺》 配信日に戻る 前の問題 次の問題
https://w.atwiki.jp/madaboutmaadeline/pages/12.html
Deepl翻訳を駆使して日本語訳してみました。訳したものそのままでなく訳文に基づいて意訳してます。 日本語歌詞については国内放映版の日本語詞を聞き取りで文字に起こしてます。 原語詞転載元:Maldeline wiki Fandom / LYRIC TRANSRATIONS 英語詞 対訳 日本語詞 サントラ収録 I'm Madeline here こちら Follow Every Clue here こちら The Perfect Dog here こちら Home is where the heart is here こちら ◎ Dots of Red here こちら ◎ Birds of A Feather here こちら I m Madeline,I m Funny Bone here こちら Me and My Doll here こちら One More Bone here こちら The Cooking Song here こちら Ah Paris, Ooh La La here こちら here こちら here こちら That s All There is here こちら
https://w.atwiki.jp/testest-umigamedb/pages/3565.html
2023年7月29日 出題者:かちわりの種 タイトル:「右側左側交互に見て」 【問題】 信号機のあるところが分かるタカフミは、有名になり人気を得た。 一体どういうこと? 【解説】 + ... インターネットでよく見る「〇〇の画像をすべて選択してください」という、人間とボットを区別するための認証システム。 一昔前はちゃんと区別できていたのだが、近頃はAI技術の進化によって認証を突破するボットが現れはじめた。 中でも最近出回っているAIボットプログラム『TAKAFUMI』は、画像の認識・識別能力がとても高く、 画像認証をほぼ100%突破できてしまう。 そのためTAKAFUMIは、不正アクセスやスパム行為などがしたい悪い人達からの人気を集め、悪用されているのだ。 配信日に戻る 前の問題 次の問題
https://w.atwiki.jp/llnj_ss/pages/770.html
元スレURL 侑「同好会メンバーの日常と私との性生活が交互に書かれるss」 概要 生えてる侑ちゃん タグ ^高咲侑 ^虹ヶ咲 ^短編 ^エロ ^ふたなり ^ゆうハー 名前 コメント
https://w.atwiki.jp/wonderlandwars/pages/15.html
ページ作成・コメント時の注意 コメント時の注意 質問や雑談は質問・雑談にて。各ページの情報提供欄では情報提供以外の投稿は控えてください。 わからない事がある場合は、まずページを確認して、それでも解決しない場合のみ質問するようにしてください。 「~らしい」という情報にはソースとなるURL等を併記してください。 以下の様な行為は控えてください。 -単なる自慢 -プレイ歴や年齢を強調するコメント -作品を貶すのみのコメント -他のプレイヤーの名前を無闇に出すこと -煽り、荒らし行為(もしくはそれに準ずるもの) -過去のコメントの文意を変える書き換え(自分のコメントの間違い修正、レス番号の修正等を除く) -コメント欄における自演 -無意味なコメントの連続投稿 -相手が不快な思いをするようなコメント -単なる日記、クリア報告のみのコメント -ソースのない情報、もしくは偽情報の投稿 -その他、ネットマナーをわきまえない発言、喧嘩等 以上のことが守れていないコメントは、削除/コメントアウトの対象となることがあります。 ページ作成時の注意 ページを作る際は、「雛形にするページ」で現在出来上がっている適当なページを使い、ページ名を書き換えるのが良い。 「#comment」の上にあるコメントを全消ししておきましょう。 憶測のみの情報でページを作ることが無いようにしましょう。 主観を含んだり大げさな表現は避け、なるべく淡々とした表記をすること。 大きな編集を行った後はプレビューで表示を確認すること。 ページを作った後は、左の メニューからアクセスできるように メニューを更新してくれると助かります。
https://w.atwiki.jp/madelineanimation/pages/27.html
原題 日本語詞 原語詞 サントラ Hats off to Madeline こちら None 有 The Best,best gifts in the world こちら None 有 Ah, Paris, Ooh la La こちら None 無 Boo! It s Halloween こちら None 有 Going Down the Nile in Style こちら None 有
https://w.atwiki.jp/kobapan/pages/100.html
フッターの挿入 「挿入」⇒「フッタ」⇒標準をクリック。 ページ番号の挿入 「挿入」⇒「フィールド」⇒「ページ番号」をクリック