くだすれPHP(超初心者用)5at PHP
くだすれPHP(超初心者用)5 - 暇つぶし2ch718:nobodyさん
09/02/09 00:12:47
基礎中の基礎すぐる

719:nobodyさん
09/02/09 08:41:31
>>717
mysql_real_escape_string
addslash


720:nobodyさん
09/02/09 08:53:51
addslash ? syntax error

721:nobodyさん
09/02/09 09:16:28
データーベースにデーターをつっこむ直前に
データーベース専用のエスケープ処理をするのが普通

722:nobodyさん
09/02/09 09:20:54
データー(笑)

723:nobodyさん
09/02/09 21:42:26
>717
使える箇所ならプリペアドステートメント。これが一番安全。
URLリンク(jp2.php.net)
URLリンク(jp2.php.net)

使えない箇所ならmysql_real_escape_stringなど。
どの文字が危険かはDBによって違うので、MySQLにはMySQLの、OracleにはOracleの、SQLiteにはSQLiteの専用の関数がある。

724:nobodyさん
09/02/11 12:21:22
htmlの<base>のようにユーザのトップディレクトリを指定したいんですが、
ユーザのトップディレクトリを調べる方法はありますか?


725:nobodyさん
09/02/11 13:56:50
環境は?OSとか

726:nobodyさん
09/02/11 14:12:44
>>725
ああすみません。
開発環境はPHP5.2.6でOSXなんですがWebサーバはまだ借りてないのでどうなるかはわかりません。
PHP5でApachサーバのところを借りようとは思ってます。
なので開発環境との違いや引っ越し時のことを考えて汎用的な関数がないかと質問しました。
一応マニュアルのファイルシステム関数は目を通したんですが…

727:nobodyさん
09/02/11 14:24:23
exit()ってスクリプト終了のために多用してもいいのでしょうか?
たとえばエラーチェック時にdieの代わりに自作関数呼び出して終了みたいな場合など

function return_json($flag, $data){
 if($flag == true)
  $result = $data;
 else
  $result = "ERR:".$data;
 $res = array(
  "status" => $flag,
  "result" => $result );
 print(json_encode($res));
 exit();
}

if(エラーチェック1) return_json(false,"エラー1です"); //エラーなら終了

if(エラーチェック2) return_json(false,"エラー2です"); //エラーなら終了

//最後に
return_json(true,"成功です。");

728:nobodyさん
09/02/11 14:33:34
別にいいんでは?

729:nobodyさん
09/02/11 15:13:35
関数はあくまで何かを返すだけにして、制御を握っているのは「メインのルーチン」ひとつにした方がいい。
あちこちの関数で好き勝手に処理を中断したり画面出力してたりすると、そのうち管理しきれなくなる。
同じ理由で、printするよりは文字列を返す(printは「メインのルーチン」で行なう)方がいいと思う。

俺ならreturn_json()はjsonを返すだけ(exitもprintもしない)にして
function generare_json(){
 if(isError1()){
  return return_json(false,"エラー1です");
 }
 if(isError2()){
  return return_json(false,"エラー2です");
 }
 return return_json(true,"成功です。");
}
とし、echo generate_json()を最後に呼び出す。
exit()はスクリプトの末尾のみ、出力はこの文のみになる。

730:nobodyさん
09/02/11 15:20:37
つうか、正しいjson出力とエラー出力を別の関数にするかな。
boolを渡すより、return_error_json()の方が分かりやすい。

731:nobodyさん
09/02/11 15:23:03
>>719
ヒントをサンクス。

>>723
詳しいありがとうございます。
参考にさせて頂きます。

732:nobodyさん
09/02/11 17:07:46
>>726
ああもしかして、http://~/~user/ の部分の実ディレクトリが知りたいってこと?

733:nobodyさん
09/02/11 17:30:07
実ディレクトリでいいのかな?ローカルでいえば
/Applications/MAMP/htdocs/
となります。
実行ファイルがトップにあるわけではないので相対パスでのファイル指定より
基点からの絶対パスのほうがわかりやすいかなと。

734:724,733
09/02/11 17:31:27
>>732
アンカーわすれてたので念のため

735:nobodyさん
09/02/11 17:45:24
>>733
dirname(__FILE__) とか getcwd() とか

そういうこと?

736:nobodyさん
09/02/11 17:47:36
>>733
$_SERVER['DOCUMENT_ROOT']

737:nobodyさん
09/02/11 18:00:00
ユーザー関係ないじゃんw

738:724,733
09/02/11 19:15:46
>>735,736
$_SERVER['DOCUMENT_ROOT']で希望のパスを得ることができました。
ありがとうございました。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch