質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

3回答

1898閲覧

phpにかんしてです

Choqpp3

総合スコア19

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/05/04 09:12

編集2017/05/24 02:19

どのようにプルダウン式で選択後送信したらはんえいできます?詳しいサイトなどありますか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Z-TALBO

2017/05/04 10:43

コードはコードブロックで囲まれたほうが良いです。あと、エラーの内容も書かれたほうがわかりやすいと思います。
Choqpp3

2017/05/04 10:53

なるほどですmysql_real_escape_string($_SESSION['join']['name'])こちらの文でエラーがでてます
guest

回答3

0

練習かと思いますが、mysql関数はもう最新では削除されてるので、それで覚えるよりPDOなどで最初から覚えたほうがいいと思いますよ。

投稿2017/05/04 10:45

Z-TALBO

総合スコア525

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/05/04 10:58

PHP: どの API を使うか - Manual <http://php.net/manual/ja/mysqlinfo.api.choosing.php> 《mysqli か PDO_MySQL のどちらかを使うことをおすすめします。 古い mysql 拡張モジュールを新規開発で使うのはおすすめしません。》 …とのことです。
guest

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;

実行結果1
ただし、このやり方で、ファイル名にピリオドが含まれていない場合は想定していないため、
別の手段でチェックを厳格化したほうが良いでしょうけど。

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)) { 23}

次。

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;

実行結果2

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

了解しましたみなさまありがとうございますもう一度やってみます

投稿2017/05/04 11:46

Choqpp3

総合スコア19

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問