出産前後の痔にはご注意!

phpでWebページを作っています。
レンタルサーバーのマニュアルに「PHPで記述したCGIスクリプトの1行目に #!/usr/bin/phpまたは #!/usr/local/bin/phpと記述して下さい。
」とありますが、hoge.phpの「<?php ~ ?>」の「<?php」の次の行に書くのでしょうか?それとも前の行に書くのでしょうか?
また、hoge.phpの中身が「<html><head></head><body> ~ <?php ~ ?> ~ </body></html>」の場合はどこに記述するのでしょうか?

初心者的な質問ですみませんが、よろしくお願いします。

A 回答 (2件)

>1行目に書いたら、この「#!/usr/bin/php」という記述がブラウザに表示されてしまいました。


ということなら#!/usr/bin/phpの記述そのものが不要ということですね
phpをcgiとして動かすときに必要ということでしょうか
hoge.phpをhoge.cgiのファイル名で実行する場合その1行目に#!/usr/bin/phpが必要になります。
cgiの場合は実行権や改行コードに注意が必要となります。
    • good
    • 0
この回答へのお礼

ありがとうございます。phpで記述していながらファイル名に.cgiを使う場合に1行目に記述するのですね。
cgiで動かす方法とphpのまま動かす方法でどちらがよいのかわかりませんが、質問の答えはわかりました。ほんとうに助かりました。

お礼日時:2007/07/04 00:56

「PHPで記述したCGIスクリプトの1行目」とあるとおり、


スクリプトの最初も最初、質問者さんが例に挙げた記述より前です。
    • good
    • 0
この回答へのお礼

ありがとうございます。
「<?php」の次の行に書いていて、とくに問題なく動いていました(PCブラウザ、携帯ブラウザで確認)。
が、massasoyt様のアドバイス通り1行目に書いたら、この「#!/usr/bin/php」という記述がブラウザに表示されてしまいました。
説明不足ですみませんが、hoge.phpはブラウザで見るためのファイルでhtmlタグを出力します。
それとも私が何か間違っているのでしょうか?

お礼日時:2007/07/03 05:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q#!/usr/local/bin/php

XAMPPで自宅サーバー勉強中です、
レンタルサーバーの時はPHPファイルの1行目に
#!/usr/local/bin/php
と記入し拡張子をabc.cgiとしていました、
自宅サーバーの場合の1行目と拡張子はどのように
書くのですか、よろしくお願いします。

Aベストアンサー

phpは、本来
#!/usr/local/bin/php
という記載は不要です。

拡張子を abc.cgi から abc.php とすれば、1行目がなくても動きます。

仮に
#!/usr/local/bin/php
を入れたままにすると、自宅サーバーでは動くが、レンタルサーバーでは
動かない、という事が起こり得ますので、やめるのが得策です。

Qエンターキーを押したときに関数を呼び出す方法

エンターキーを押したときに関数を呼び出すにはどのようにプログラムを記述すればよいのですか?

Aベストアンサー

大抵の言語ではキーが押されたかというハンドラがありそのオブジェクトとして何のキーが押されたかの情報があります。
javascriptでもonKeyPressハンドラのオブジェクトwindow.event.keyCodeの内容を見てエンターキー(値は13)だけ処理をするという形にすれば云いと思います。
即席で作ったサンプルですが参考にして下さい。

<html>
<head>
<title>sample</title>
<script language="JavaScript">
<!--
function Key_on(key)
{
if(key == 13){
alert("ENTERが押されました");
}else{
alert("ENTER以外が押されました");
}
}
-->
</script>
</head>
<body onKeyPress="Key_on(window.event.keyCode)">
何かキーを押して下さい
</body>
</html>

Qforeachで回った数を表示したい

単純な質問ですみません。
====
//getTestlistは別ファイルで定義済み。
<?
$testlist=getTestlist();
foreach($testlist as $test){
?>


<? } ?>
====
例えば↑こんなふうにforeachで$testlistが存在するだけ回したとします。
そのときに何回まわったか?($testが何件あったか?)だけを表示したいのですが、そんなことってできますか?
表示したい位置は<? } ?>の外側にと考えています。
あさってな質問でしたらすみません。
phpVer 4.3

よろしくお願いいたします。

Aベストアンサー

<?
$testlist=getTestlist();
$n=0;
foreach($testlist as $test){
$n++;
?>
<?}?>

<?=$n?>回
とかでよいかと思います。

途中でbreakなどが無ければ
<? echo count($testlist) ?>でも良いかも知れません。

Qフォームで同じ複数のnameで違うvalueの送信

始めまして、現在一個のフォーム内で複数の同じnameで、違うvalueを送信しようと苦戦しております、、普通にタグを書くだけでは
一個のnameで違うvalueの送信は、最後のvalueしか送信できないです、
phpは使用できません。javaは、、殆ど素人なので、あまり分かりません、、formを一個一個区切るのも、レイアウト上できません、、
どうすればいいのでしょうか?・・・以下タグです。
昨日から、ここから先に進めません。。
先輩方助けてください、本当によろしくお願いします。

<form action="http://hoge.net/hoge/hogecheck.php" method="post">
<input type="hidden" name="site" value="hoge">
<input name="id" type="text" id="idform" maxlength="10" />

<input type="hidden" name="kin" value="3000">
<input type="image" src="buybtn.gif" />
<input type="hidden" name="kin" value="5000">
<input type="image" src="buybtn.gif" />
<input type="hidden" name="kin" value="10000">
<input type="image" src="buybtn.gif" />
<input type="hidden" name="kin" value="20000">
<input type="image" src="buybtn.gif" />

</form>

始めまして、現在一個のフォーム内で複数の同じnameで、違うvalueを送信しようと苦戦しております、、普通にタグを書くだけでは
一個のnameで違うvalueの送信は、最後のvalueしか送信できないです、
phpは使用できません。javaは、、殆ど素人なので、あまり分かりません、、formを一個一個区切るのも、レイアウト上できません、、
どうすればいいのでしょうか?・・・以下タグです。
昨日から、ここから先に進めません。。
先輩方助けてください、本当によろしくお願いします。

<form action="http://hoge...続きを読む

Aベストアンサー

No.2の回答者です。
スミマセンm(__)m、Javaでしたね。PHPで書いてしまいました。。。

Java だったらこれで取れます。(HTML側の修正は不要です。)
String[] kin= req.getParameterValues("kin");

Qillegal string offset

php5.3では動いていたプログラムをphp 5.4 で動かしたらwarning illegal string offsetが出て困っています。以下のプログラムでwarningが出ないようにするにはどのようにコーディングすればよいのでしょうか?


$a = array('exists' => 'foo');
if ($a['exists']['non_existent']) {
print 1;
}
print 2;
exit;

Aベストアンサー

isset()を使えばいいと思います


人気Q&Aランキング