投稿者 メッセージ
<  PHPプログラミング  ~  JavaScript内でPHPを使う方法
ゲスト
投稿1時間: 日 12月 11, 2005 3:27 am  引用






題名の通りJavaScript内でPHPを使う方法をお願いします。
PHPで操作した方が楽だと思って試してみたのですが 試してみると肝心のJavaSvriptが動作しないようなんです・・・
トップに移動
ach
投稿1時間: 日 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が正しく出力されているか確認してみてはどうでしょうか?
トップに移動
ゲスト
投稿1時間: 月 12月 12, 2005 5:54 pm  引用






えっと説明が駄目で申し訳ありません。
できれば外部ファイルを使わないでできないでしょうか。

例えばphpでファイルの中身を取得する。
その場合中身を変数$fileに入れたとします。
そして
JavaScriptの とりあえずalertでも何でもいいのですが出力する。

つまりphpの$で示された変数をJavaScriptでも参照できないのかという事です。簡単に書くと
<script type="text/javascript">
<?php
$file   <=ファイルの中身を入れる変数
ファイルから変数へ (省略)
?>

alert($file);
</script>
ものすごく簡単に書きましたが上記を行うとalertが実行されないようで・・・
どうかお願いします
トップに移動
ach
投稿1時間: 火 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組み込み関数ではないですが、ネットを漁ればこの機能のものはすぐ見つかります。
トップに移動
ach
投稿1時間: 火 12月 13, 2005 4:09 pm  引用
ゲスト





Code:

setcookie($data);

Code:

setcookie('data',$data);

の間違い[/code]
トップに移動
ゲスト
投稿1時間: 水 12月 14, 2005 12:03 am  引用






さっそく試してみましたが動きません・・・・
やはりgetcookieが標準装備されていないからでしょうか。
という事はそれを装備した外部ファイルか何かを手にいれる必要があるのでしょうか。
cookie自体勉強不不足なので勉強してみますが、どうかご教授お願いします
トップに移動
ach
投稿1時間: 水 12月 14, 2005 2:27 pm  引用
ゲスト





>という事はそれを装備した外部ファイルか何かを手にいれる必要があるのでしょうか。

そうです。実際にどんな名前のどんな実装の関数を使うかはさむらいさんの自由です。
getCookieは(この名前が)結構メジャーだろうということで載せました。
クッキーを使っているサイトのソースを見るなり、getCookieで検索するなりしてください。
//www.google.com/search?q=getCookie+javascript

使いまわせそうなら外部ファイルにしてルートかホームディレクトリに置いとけば便利ですよ。
(後、上のほうで<PHPって書いてあるのが歩けどもちろん<?PHPの間違い。)
トップに移動
ゲスト
投稿1時間: 木 12月 15, 2005 6:29 pm  引用






返事遅れてすいません。
頑張ってみます!!
もし また何かあったらお願いします
トップに移動
特定期間内の記事を表示:   
All times are GMT +9:00

次のトピックを表示
前のトピックを表示
Page 1 of 1
フォーラム一覧  ~  PHPプログラミング

トピックの新規投稿   返信


 
移動先:  

新規投稿: 不可
返信: 不可t
自分の記事の編集: 不可
自分の記事の削除: 不可
投票への参加: 不可




Powered by phpBB
customized by phpspot.