投稿者 |
メッセージ |
|
< PHPプログラミング ~ JavaScript内でPHPを使う方法 |
|
時間:
日 12月 11, 2005 3:27 am
|
|
|
|
題名の通りJavaScript内でPHPを使う方法をお願いします。
PHPで操作した方が楽だと思って試してみたのですが 試してみると肝心のJavaSvriptが動作しないようなんです・・・ |
|
|
|
|
|
|
|
時間:
日 12月 11, 2005 3:28 pm
|
|
|
|
それはPHPでJavaScriptを出力するという意味でしょうか?
ためしに
index.htm
Code: |
<script src="js.php" type="text/javascript"></script>
|
sj.php
Code: |
<?php
echo "alert(\"".time()."\");"
?>
|
で試してみましたがまったく問題なく動きました。
ヘッダーの問題かと思いましたが特にブラウザは気にしないようです。
Javascriptが正しく出力されているか確認してみてはどうでしょうか? |
|
|
|
|
|
|
|
時間:
月 12月 12, 2005 5:54 pm
|
|
|
|
えっと説明が駄目で申し訳ありません。
できれば外部ファイルを使わないでできないでしょうか。
例えばphpでファイルの中身を取得する。
その場合中身を変数$fileに入れたとします。
そして
JavaScriptの とりあえずalertでも何でもいいのですが出力する。
つまりphpの$で示された変数をJavaScriptでも参照できないのかという事です。簡単に書くと
<script type="text/javascript">
<?php
$file <=ファイルの中身を入れる変数
ファイルから変数へ (省略)
?>
alert($file);
</script>
ものすごく簡単に書きましたが上記を行うとalertが実行されないようで・・・
どうかお願いします |
|
|
|
|
|
|
|
時間:
火 12月 13, 2005 4:07 pm
|
|
|
|
そのPHPスクリプトで出力されたファイルを見ると
Code: |
<script type="text/javascript">
alert($file);
</script>
|
と書かれているはずです。
JavaScriptはこの形の変数は扱えないのでパースエラーとなりますです。
また、JavaScriptはクライアント(Webブラウザ)が実行し、PHPやCGIはサーバーが実行しているので変数は共有できません。
ですからJavaScriptに値を伝えてやるといいのですが、いくつか問題があります。
まず、基本的にはこのような方法をとります。
Code: |
<script type="text/javascript">
<?php
$data = time();
?>
data = <?=$data;?>;
alert(data);
</script>
|
出力されるファイルを予想すると動きそうな雰囲気です。
文字列を入れるとなるとこれでは動きませんが、工夫しだいで簡単に動くようになります。
しかし実際のスクリプトでこういった書き方をしているとXSSセキュリティーホールが高確率で入ります。
これを避けるために私はクッキーを媒介にしています。
Code: |
<php
$data = date('r');
setcookie($data);
?>
<script type="text/javascript">
data = getCookie('data');
alert(data);
</script>
|
getCookieはJavaScript組み込み関数ではないですが、ネットを漁ればこの機能のものはすぐ見つかります。 |
|
|
|
|
|
|
|
時間:
火 12月 13, 2005 4:09 pm
|
|
|
|
は
Code: |
setcookie('data',$data);
|
の間違い[/code] |
|
|
|
|
|
|
|
時間:
水 12月 14, 2005 12:03 am
|
|
|
|
さっそく試してみましたが動きません・・・・
やはりgetcookieが標準装備されていないからでしょうか。
という事はそれを装備した外部ファイルか何かを手にいれる必要があるのでしょうか。
cookie自体勉強不不足なので勉強してみますが、どうかご教授お願いします |
|
|
|
|
|
|
|
時間:
水 12月 14, 2005 2:27 pm
|
|
|
|
>という事はそれを装備した外部ファイルか何かを手にいれる必要があるのでしょうか。
そうです。実際にどんな名前のどんな実装の関数を使うかはさむらいさんの自由です。
getCookieは(この名前が)結構メジャーだろうということで載せました。
クッキーを使っているサイトのソースを見るなり、getCookieで検索するなりしてください。
//www.google.com/search?q=getCookie+javascript
使いまわせそうなら外部ファイルにしてルートかホームディレクトリに置いとけば便利ですよ。
(後、上のほうで<PHPって書いてあるのが歩けどもちろん<?PHPの間違い。) |
|
|
|
|
|
|
|
時間:
木 12月 15, 2005 6:29 pm
|
|
|
|
返事遅れてすいません。
頑張ってみます!!
もし また何かあったらお願いします |
|
|
|
|
|
|
|