検索結果
PHP
- 全てのカテゴリ
- 全ての質問
- PHPでのドキュメントルート指定方法
PHPでのドキュメントルートの指定方法がうまくいかず困っています。 マルチドメインで組んでいます。 公開ディレクトリのルートは /home/hoge/www になります。 wwwの中に/piyo/でマルチドメインを組んでいます。 →絶対リンクを/home/hoge/www/piyo/ ここに指定したいです。 あるサイトを見てcommon.phpを作成し、index.phpと同じ階層に置き、index.phpの頭に <?php include 'common.php'; ?> を指定すると設定ができると記載されていたので下記の様に設定しました。 // common.php // <?php // サーバー上の絶対パスを記入 // これは公開ディレクトリのルート(サイトのルートディレクトリ)と一致 $__DOC_ROOT__ = '/home/hoge/www/piyo/ <http://piyo.co.jp/> '; ?> // index.php // <?php include 'common.php'; ?> <!doctype html> <html lang="ja"> … <?php echo $_SERVER['DOCUMENT_ROOT']; ?> … </html> echoで呼び出してみましたがサイトのルートディレクトリが /home/hoge/www こちらになり変更されていませんでした。 これを /home/hoge/www/piyo/ に変更したいと思います。 ご回答よろしくお願い致します。
- ベストアンサー
- PHP
- rossi46mail
- 回答数1
- DSN無しでphpのodbc_connect
DSNを使う方法では接続できました。 DSN無しでodbc_connectで接続することができません。 DSN無しで接続する方法を教えてください。 環境は64ビットのWindows7のIIS7.5です。
- PHPのシンプルな構文(初心者)
ランダムに出る掛け算の答えを入力して 別ファイルで正解か不正解という表示をする構文なのですが 「input type="hidden"」部分の値の出力・受取りができず 正しく実行がされません。 どこが間違っているのでしょうか? よろしくお願いいたします。 in.php -------------------------------------- <?php $saki = rand(1,9); $ato = rand(1,9); echo "$saki X $ato"; $seikai = $saki*$ato; ?> <html> <body> <form method="post" action="out.php"> <input type="text" name="kotae"> <input type="hidden" name="hid" value="<?php $seikai ?>"> ←※ <input type="submit" value="回答"> </form> </body> </html> -------------------------------------- out.php -------------------------------------- <?php $kotae = $_POST["kotae"]; $seikai = $_POST["hid"]; ←※ if($kotae == $seikai){ echo "正解です"; }else{ echo "間違っています。"; } echo "<hr>正解は{$seikai}です。"; ?> --------------------------------------
- PHP 日付の加算について
phpによってデータベースから取り出した日付に2日プラスして出力したいのですがどうしたら宜しいでしょうか? ちなみにcakephpによって取り出されているので、 $carlist['Car']['buy_date'] となっており、中には2014-1-1が入っています。 出力が2014-1-3になるようにしたいです。 strtotimeなどいろいろ試しましたが出来ませんでした。 よろしくお願いします
- phpでのソートについて
aaa.txtが例えば以下のようにカンマ区切りのデータだとしますと、 aaa-12,dmy,2014年3月5日, ccc-22,dmy,2014年3月5日, ddd-43dmy,,2014年3月4日, yyy-45,dmy,2014年3月5日, ddd-43,dmy,2014年3月2日, ※実際は日付は9番目の値になります これを日付の新しい順にソートしたいのですが、 見よう見まねで以下のようにやった場合、日付順にはなるのですが 同じ日付がありますと上から順番ではなくランダムに処理されてしまい 当初の並びと異なってしまいます。 function cmp($a, $b) { list(,,,,,,,,,$aa,) = explode(',', $a); list(,,,,,,,,,$bb,) = explode(',', $b); if ($aa == $bb) { return 0; } return ($aa < $bb)? 1 : -1; } $lines = file('aaa.txt'); usort($lines, "cmp"); 最終的には以下のように並べ替えをしたいのですが、 aaa-12,dmy,2014年3月5日, ccc-22,dmy,2014年3月5日, yyy-45,dmy,2014年3月5日, ddd-43dmy,,2014年3月4日, ddd-43,dmy,2014年3月2日, 日付でソートしますと ccc-22,dmy,2014年3月5日, yyy-45,dmy,2014年3月5日, aaa-12,dmy,2014年3月5日, ddd-43dmy,,2014年3月4日, ddd-43,dmy,2014年3月2日, こんな形で同じ日付の場合、順番が 最初のリストの上から順ではなくバラバラになってしまいます。 どのようにすれば可能になりますでしょうか。 お手数をおかけしますが 具体的なソースをご教授いただけるようですと大変助かります。 何卒よろしくお願い致します。
- PHP が Unicode をネイティブにサポー
「PHP が Unicode をネイティブにサポートしていない」とは!? どういうことなのでしょうか!? 以上宜しくお願いします。
- php mysql接続での書き方
色々なサイトを拝見させて頂き勉強をしていると phpからmysqlで接続し呼び出すときに prepare(array(SELECT * FROM request WHERE id = ?,)); このような一文で呼び出すものと行数を分け prepare(implode(' ', array( 'SELECT *', 'FROM `request`', 'WHERE `id` = ?', このように書いているものとあります。 個人的には行数を分けていた方がわかりやすいので後者のほうで書いているのですが、これは作る人の気分でかき分けていいものなのか気になり質問させて頂きました。 また後者ではどういうタイミングで区切るのかわからないというのもあります。 SELECT * FROM users INNER JOIN category ON users.category = category.id INNER JOIN images ON users.category = images.id このように3つのテーブルを内部統合したくこの文を作りmysql上で叩くと3つ統合され表示されます。 しかし上記の文に当てはめphpから叩くとエラーがでます。 素直に1行で書けばよいのですが、分からないからというってスルーするのはあまり良くないかと重いご質問させて頂きました。 この3つのテーブルの場合、後者の書き方ではどのタイミングで区切るのでしょうか。
- ベストアンサー
- PHP
- milkkokoa94856
- 回答数5
- PHPの開発ツールに関して
開発環境 : WIndows2008 server 64 /PHP/MySQL/Apache 教えて下さい。 現在、上記のような開発環境でプログラムを作成していますが、特に開発ツール とかもなく、プログラミングしています。 そこで、何か良い開発ツールを探していますが、良いものはないでしょうか? Visual Studioのようなデバッグを簡単に行えるものを探しています。 ネットで検索する限り、NetBeans というようなものが見つかりましたが、それは後環境が できあがっている状態でも、後からインストールして使えるものでしょうか? よろしくお願いします。
- ベストアンサー
- PHP
- asamix_000
- 回答数2
- phpのfuction内での計算
function内での時間計算方法がいまいちうまくいきません。 調べたりして書いたのですがfunctionが呼ばれず処理が働きません 入力した場所からフォーカスが外れたとき呼ぶようにしています ※ onblur = func() <test.php> function func(){ $s_time = parseFloat(document.TEST.start_time.value); //入力値Aの時間 $s_minute = parseFloat(document.TEST.start_minute.value); //入力値Aの分 $e_time = parseFloat(document.TEST.end_time.value); //入力値Bの時間 $e_minute = parseFloat(document.TEST.end_minute.value); //入力値Bの分 //共通変数 $base_start = 540; $base_end = 1080; $s_t = $s_time * 60; $s_data = $s_t + $s_minute; //分に変換 $e_t = $e_time * 60; $e_data = $e_t + $e_minute; //分に変換 --------------------------ここから計算処理 $kekka_start = $s_data - $base_start; $kekka_end = $base_end - $e_data; $kekka_data = $kekka_start + $kekka_end; $kekka_min = $kekka_data / 60; //時間に変換 $kekka_time = explode(".",$kekka_min); //小数点の切り捨て☆ $kekka_times = $kekka_data - ($kekka_time[0] * 60); //--分のデータ作成 $CS = ($kekka_time.":".$chis_times); //表示データの連結☆ document.TEST.kekka.value = CS; } ☆の部分がうまくいきません。コメントアウトしてexplode前の変数を表示するならばできるのですが 時間の合計を出したいので時間と分を別々に出して連結で表示させたいです。 かなり詰まっています。どうかよろしくお願いします。
- PHP 自動返信メールについて
日本語対応で自動返信メールを送るときは下記の通りPHPを組んでいます。 *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* if(isset($_POST[$dsp_name])){ $rebody = h($_POST[$dsp_name]). " 様\n";} $rebody.= $remail_text; $rebody.="\n===========================\n\n"; foreach($_POST as $key=>$val) { $out = ''; if(is_array($val)){ foreach($val as $item){ $out .= $item . ', '; } $out = rtrim($out,', '); }else { $out = $val; } if(get_magic_quotes_gpc()) { $out = stripslashes($out); } if($out != "confirm_submit" && $key != "httpReferer"){ $rebody.="【 ".$key." 】 ".$out."\n"; } } $rebody.="\n===========================\n\n"; $rebody.="送信日時:".date( "Y/m/d (D) H:i:s", time() )."\n"; *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* 上記PHPの場合、自動返信メールの本文は『○○ ○○様』といった内容になるのですが。 これを英語対応で、自動返信メールの本文は『Dear. ○○○○』といった内容に変更したいのですがPHPコードはどのように編集すればいいでしょうか? どなたか分かる方がいれば教えて下さい。 ちなみにPHPコードは“PHP工房様【http://www.php-factory.net/】”の多機能メールフォーム フリーを使用しています。 つたない説明かとは思いますが、どなたかお力をお貸し頂ければと思います。
- ベストアンサー
- ホームページ作成ソフト
- 10momin
- 回答数3
- 独習PHP 例題についてです。
<?php $str = 'PHP (PHP:Hypertext Preprocessor)'; $msg = <<<EOD {$str}は、サーバサイドで動作する簡易なスクリプト言語です。 まずは、。本書でじっくり基礎を固めましょう。<br /> "Let's start、 everyone!!" EOD; print $msg; なぜエラーが取れないのでしょうか?
- ベストアンサー
- PHP
- Marshmallows
- 回答数2
- html内にphpを混ぜる時
<?php if(a > b){ echo "<p>hello!</p>"; }else{ echo "<p>see you!</p>"; } ?> こういう事ってよくあると思いますが、一々echoなどを使ってhtmlを吐き出させるのはあまりスマートに感じません。 他にやり方はあるのでしょうか?
- ベストアンサー
- PHP
- poniponi69
- 回答数2
- PHPでMYSQLを使ったログイン
PHPでMYSQLを使いってログインフォームを作ったのですが 画像の上の方ようなテーブルを作りPHP側のログインフォームでログインしてもらい 画像のusernameの[S]でログインしたらIDとFirst NameとLast NameをPHPで 画像の下の方のように表示するようにしたいのですが echo "<tr><th>ID</th><th>USERNAME</th><th>First Name</th><th>Last Name</th></tr>"; $st = ("select * from kd3musers where username='$username'"); (この間) echo "<tr><td>$id</td><td>$username</td><td>$first_name</td><td>$last_name</td></tr>"; (この間)の中身がわかりません。 別の書き方や、わかる方がいましたらよろしくお願いします
- phpのif文について
下記の表現をした際に、必ずif文がelseの方に流れてしまいます。 そこで条件式をいろいろ書き換え試したところ、 if($_SESSION['user_id'] = $employee_id) ↓ if($_SESSION['user_id'] == $employee_id) に書き換えた際にだけ、elseに流れず、 ==の関係が成り立ちます。 その際に変更しているのは、条件式だけで他のコードを変更していません。 どのように変更すれば、正しく条件式が機能しますか? <?php $sql = "SELECT * FROM thread_detail WHERE thread_id = $id"; $date = mysql_query($sql,$link); $logs = array(); while ($post = mysql_fetch_assoc($date)) { $logs[] = array($post['thread_detail_id'], $post['parent_thread_detail'], '<a href="thread.php?id='.$post['thread_id'].'&res='.$post['thread_detail_id'].'">'.$post['post_date'],$post['employee_id'].'</a>', $post['body'],'<a href="thread.php?id='.$post['thread_id'].'&edit='.$post['thread_detail_id'].'">編集</a>', '<a href="remove_thread.php?id='.$post['thread_id'].'&delete='.$post['thread_detail_id'].'"'.'onclick="return confirm(\'本当に削除しますか?\');">削除</a>'); } foreach ($logs as list($no, $oya, $create_date, $employee_id, $kiji, $edit, $delete)) { if ($oya > 0) { continue; } if($_SESSION['user_id'] == $employee_id) { print $create_date. $employee_id .'<br>'. $kiji . $edit . $delete . '<br>'; } else { print $create_date. $employee_id .'<br>'. $kiji . '<br>'; } listchild($logs, $no); } function listchild($logs, $parent) { $ct = 0; foreach ($logs as list($no, $oya, $create_date, $employee_id, $kiji, $edit, $delete)) { if ($oya !== $parent ) { continue; } if ($ct++ == 0) { print '<ul>'; } if($_SESSION['user_id'] == $employee_id) { print '<li>' .$create_date.$employee_id.'<br>'. $kiji . $edit . $delete . '<br>'.'<br>' . '</li>'; } else { print '<li>' .$create_date.$employee_id.'<br>'. $kiji . '<br>'.'<br>' . '</li>'; } listchild($logs, $no); } if ($ct > 0) { print '</ul>'; } } ?>
- CentOSとPHP,MySQLのバージョン関係
○質問の主旨 それぞれ以下の環境でPHP、MySQLをインストールすると、 どんなバージョンがインストールされるでしょうか? ・CentOS 5.10 64bit ・CentOS 6.5 64bit ・CentOS 7.0 64bit コマンド # yum -y install php # yum -y install php-mysql # yum -y install mysql-server ご存知の方がいらっしゃいましたら、 ご教示願います。 ○質問の補足 最終的に「さくらのクラウド」で、CakePHP3.0をインストールすることが目標です。 その場合、PHP5.4が必須になるようです。 「さくらのクラウド」ではCentOS 7.0 64bitが、すでに用意されています。 できるだけ新しいバージョンである、 「PHP5.5 + MySQL5.6」で構築できればと考えています。 CakePHP3 開発プレビュー版を触ってみる http://catcher-in-the-tech.net/278/ vargrant+chefでつくるPHP5.5+MySQL5.6+CakePHP3環境 http://d.hatena.ne.jp/takemaru123/20140104/1388857028 さくらのクラウド http://cloud.sakura.ad.jp/ 以上、よろしくお願い申し上げます。
- php検索文字列のハイライト表示
phpの検索処理で、検索キーワードにマッチした文字列を強調表示(<strong>)して表示したいのですが、タグ文字の処理でわからないことがあります。 例えば 「<a href="test">tes;t</a>」というデータがあり(現状すべてエスケープして表示)、キーワード「</」で検索したとき、該当文字列に<strong>タグをつけた後にエスケープすると<strong>タグまでエスケープされてしまい、強調表示ができません。検索前にエスケープしてしまうとキーワード「;」で検索した時に全てのタグ文字の後に強調された「;」が表示されてしまいます。 どなたかうまい解決方法があれば教えていただきたいです。 よろしくお願いいたします。
- PHPでMySQLテーブルロック一覧取得
PHPでMySQLテーブルロックされている一覧を取得したいですがどのようにすれば良いかご教授願います。 Web検索で調べるとロック状態はmysql_list_processesや、show processlistでも試してみましたが、思うような結果は得られませんでした。正常には動作していますが、欲しいデータが取り出せないですす。。。 単純に、現在ロックしているテーブル名(レコードロックは不要です。)を一覧で出力させることはできないのでしょうか? PHPから実施できるやり方をご教授頂けると幸いです。 -------Test Program()--------- <?php $link = mysql_connect('localhost', 'login_id', 'login_pass'); mysql_select_db('db_name'); mysql_query('LOCK TABLES table1 WRITE'); mysql_query('INSERT INTO table1 SET field1 = "test", field2 = "1"'); //$result = mysql_list_processes($link); 以下のSQL文とも入れ替えて試しました。 $result = mysql_query('show processlist'); while ($row = mysql_fetch_assoc($result)){ printf("%s %s %s %s %s %s %s %s\n", $row["Id"], $row["User"], $row["Host"], $row["db"], $row["Command"], $row["Time"] , $row["State"], $row["Info"]); } mysql_free_result($result); mysql_query('UNLOCK TABLES'); ?>
- phpでmb関数が使えない
phpでmb_strlen関数を使おうと思ったら、Call to undefined function mb_strlenとエラーが出て使えません。調べたら他のmb関数も使えないようです。vagrantで作った仮想サーバなのですが、php.iniの設定がおかしいのでしょうか?
- freebsdでのPHPセットアップで失敗
どなたかご存知の方がいらっしゃいましたらご教授頂ければと思い、書き込ませて頂きます。 freebsdでのPHPセットアップが上手く行きません。 一通りの流れとしては、 1.空のPCにfreebsdインストール 2.freebsdサーバにmysql/phpセットアップ。 3.apacheセットアップ&起動。apacheによる表示は確認。 mysqlサーバ起動。 テーブル作成完了。データinsert完了。 4.拡張子を.phpにしたファイルを置いて、サーバーURLから内容の表示を確認。 ここまではOK。 5.ファイル名をdb.phpとし、mysql_connectでmysqlへ接続しようとすると、そこで表示されなくなる。 6.様子がおかしいので、デバッグして確認 ◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇ <html> <head> <title>test</title> </head> <body> test start<br> <?php print('a<br>'); //connection: $link = mysql_connect("localhost","user","password"); print('b<br>'); if (!$link) { print('refuse!'.mysql_error()); die('refuse!'.mysql_error()); } print('c<br>'); ?> </body> </html> ◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇ で表示すると、ブラウザで取得しているソースコードには、 ◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇ <html> <head> <title>test</title> </head> <body> test start<br> a<br> ◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇ というソースが返ってきており、途中で処理が止まっているようです(最後まで表示されない)。 ユーザ名とパスワードの見直し確認もしましたが、間違っていなさそうです。 ※mysql_connectでの接続時のlocalhostはそのままですが、ユーザ名とパスワードは変えてあります。 単に文字コードが誤りかと思いましたが、全てUTF-8で統一しています。 windows環境でutf-8のソースを作成して、それをバイナリでサーバーにアップロードしています。 ■mysqlでの設定: mysql> show variables like 'character_set%'; +--------------------------+----------------------------------+ | Variable_name | Value | +--------------------------+----------------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /usr/local/share/mysql/charsets/ | +--------------------------+----------------------------------+ 8 rows in set (0.00 sec) ■php.iniでの設定 ;;;;;;;;;;;;;;;;;;;;;; ; Dynamic Extensions ; ;;;;;;;;;;;;;;;;;;;;;; extension=php_mbstring.dll extension=php_mysql.dll [mbstring] ; language for internal character representation. ; http://php.net/mbstring.language mbstring.language = Japanese ; internal/script encoding. ; Some encoding cannot work as internal encoding. ; (e.g. SJIS, BIG5, ISO-2022-*) ; http://php.net/mbstring.internal-encoding ;mbstring.internal_encoding = EUC-JP mbstring.internal_encoding = UTF-8 ; http input encoding. ; http://php.net/mbstring.http-input ;mbstring.http_input = auto mbstring.http_input = UTF-8 ; http output encoding. mb_output_handler must be ; registered as output buffer to function ; http://php.net/mbstring.http-output ;mbstring.http_output = SJIS mbstring.http_output = pass ; enable automatic encoding translation according to ; mbstring.internal_encoding setting. Input chars are ; converted to internal encoding by setting this to On. ; Note: Do _not_ use automatic encoding translation for ; portable libs/applications. ; http://php.net/mbstring.encoding-translation ;mbstring.encoding_translation = Off mbstring.encoding_translation = On ; automatic encoding detection order. ; auto means ; http://php.net/mbstring.detect-order ;mbstring.detect_order = auto mbstring.detect_order = auto 試しに、 $link = mysql_connect("localhost","user","password"); の部分を mb_internal_encoding("UTF-8"); などに変更しても同じ箇所でぶつ切りになった状態でソースが表示されます。 echo 'aaa'; などに変えるとこの部分は処理されて出力されます。 つまり単純なechoやprintなどの関数は処理されて、ある程度の関数を使用すると処理されなくなる(ように見えます)。 最終的な目標としてはmysqlからデータを表示することだけです。 何か単純な原因が噛んでしまっていると思っているのですが、どなたかこの問題の解決法を分かる方がいらっしゃいましたらご教授いただけないでしょうか? 尚、現在使用している環境は次の通りです。 FreeBSD 9.1 PHP Version 5.4.7 Apache/2.2.23 (FreeBSD) mod_ssl/2.2.23 OpenSSL/0.9.8x mysqlnd mysqlnd 5.0.10 mysql Server version: 5.5.28 宜しくお願い致します。
- phpでリダイレクトのみ許可したい
今、ログイン機能を作成しております。 ログイン情報があって情報が一致した時のみリダイレクトを実行させよう考えてます。 絶対条件が2つです!! (01)特定のページからリダイレクトがあった場合のみ表示させたい →これはできて確認済みです (02)urlバーに直接入力または貼り付けなどのアクセスなにもさせない →この方法がわかりません。 大変恐縮ですが、ご教示よろしくお願いします。
