どのようにプルダウン式で選択後送信したらはんえいできます?詳しいサイトなどありますか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/04 10:53
回答3件
0
練習かと思いますが、mysql関数はもう最新では削除されてるので、それで覚えるよりPDOなどで最初から覚えたほうがいいと思いますよ。
投稿2017/05/04 10:45
総合スコア525
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/05/04 10:58
0
Z-TALBOさんも指摘していますが、mysql系関数は使えないため、
mysqli系関数に置き換えましょう。
また、mysql系で説明しているテキストは燃やしてしまいましょう。(笑)
それはそれとして、気になるところをいくつか。
php
1$string = str_replace(",",",",$string);
これ、清書すると、
php
1$string = str_replace(",", ",", $string);
これ、何を意図していますか?
php
1$file_check=substr($filemei,-3);
これ、~.jpegっていうファイル名だったら、pegになりますよねぇ。
サンプルコードを書いてみました。
https://3v4l.org/gHLlg
php
1<?php 2 3$filename = 'abcdefg.jpeg'; 4echo $filename . PHP_EOL; 5echo substr($filename, -3) . PHP_EOL; 6echo substr($filename, strrpos($filename, '.')+1) . PHP_EOL; 7 8$filename = 'abcdefg.jpg'; 9echo $filename . PHP_EOL; 10echo substr($filename, -3) . PHP_EOL; 11echo substr($filename, strrpos($filename, '.')+1) . PHP_EOL;
ただし、このやり方で、ファイル名にピリオドが含まれていない場合は想定していないため、
別の手段でチェックを厳格化したほうが良いでしょうけど。
php
1$filemei=newstring(@$_FILES["upfile"]["name"]); 2$filetmp=newstring(@$_FILES["upfile"]["tmp_name"]);
エラー制御演算子「@」に頼らないコードが望ましいです。
どういうエラーが発生しうるか想定していないことになります。
array_key_exists()などを駆使して、
ファイルアップロードとしてupfileが存在するかを点検してから変数に代入するべきです。
例えば
php
1if (array_key_exists('upfile', $_FILES)) { 2 ~ 3}
次。
php
1if($file_check==("jpg"||"JPG"||"jpeg"||"png"||"gif"||"bmp")) {
これもおかしい。
https://3v4l.org/7m1vX
php
1<?php 2 3$ok_exts = array("jpg", "jpeg", "png", "gif", "bmp"); 4 5$file_check = strtolower('jpg'); 6if (in_array($file_check, $ok_exts)) { 7 echo 'true'; 8} 9else { 10 echo 'false'; 11} 12echo PHP_EOL; 13 14$file_check = strtolower('JPG'); 15if (in_array($file_check, $ok_exts)) { 16 echo 'true'; 17} 18else { 19 echo 'false'; 20} 21echo PHP_EOL; 22 23$file_check = strtolower('PDF'); 24if (in_array($file_check, $ok_exts)) { 25 echo 'true'; 26} 27else { 28 echo 'false'; 29} 30echo PHP_EOL;
php
1$sql = sprintf("INSERT INTO test set name='%s',sub='%s',body='%s',title='%s',url='%s',img='%s',created=NOW()", 2mysql_real_escape_string($_SESSION['join']['name']), 3mysql_real_escape_string($_SESSION['join']['sub']), 4mysql_real_escape_string($_SESSION['join']['body']), 5$title,$url, 6mysql_real_escape_string($_FILES["upfile"]["name"]) 7);
もろにSQLインジェクションですね。
しかも、もしも「$_FILES["upfile"]["name"]」のデータが細工されていた場合に
データベースを壊す可能性もあります。
PHP - PHP $FILESで受け取った文字が文字化け(17913)|teratail にて議論済みの案件です。
もう飽きてきたので、このへんで。
投稿2017/05/04 11:38
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。