ちょっと変わったマニアな作品が集結

実現する命令ごとにPHPのファイルを分けて作りました。
A.phpで画面表示して命令によりファイ路を操作するB.php,C.phpを実行。
処理完了後にA.phpに戻るようにしようと思っています。
しかし、B.phpとC.phpからA.phpを表示させる(戻る)方法がわからずにいます。

echo fopen('A.php','r');
でいけるかな?と思っていましたがうまくいきませんでした。

よろしくお願いします。

A 回答 (2件)

A.phpでフォームに入力して送信、B.phpにデータを渡してファイル操作、完了後にA.phpに戻る。



以上の動作であれば、B.phpの最後に header('A.php'); を記述してみてはいかがでしょうか?
    • good
    • 1
この回答へのお礼

回答ありがとうございます。
headerはうまく使うと便利そうですね。
Location:を設定したりなど、いろいろ条件がいりそうですね。
今回は利用しませんでしたが、機会があれば試してみたいと思います。

PHPをうまく使いこなせるようにがんばります。

お礼日時:2004/06/22 00:08

require,require once,include。



そもそも、そういう構造にする必然性があったのでしょうか。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
構造を対応させることで解決しました。

最初の構想段階の詰めが甘かったです。

お礼日時:2004/06/22 00:06

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

このQ&Aを見た人はこんなQ&Aも見ています

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

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

QPHPで特定のURLにジャンプする方法

こんにちは。HTMLファイル上のText(mytext)から受け取ったデータに基づいて、特定のURLにジャンプさせる方法を探しています。
以下のようなコードを作りました。しかし、これだとエラーになります。
header("Location: ") の使い方自体に問題があるのか、それ以外に問題があるのかわかりません。
アドバイスをいただきたく、よろしくいお願いいたします。

<?php

if ($_POST['mytext'] == "google")
{
header("Location: http://google.co.jp");
}
else
{
header("Location: http://yahoo.co.jp");
}


?>

Aベストアンサー

なるほどですね。エラーを見るとヘッダーが既に読み込まれていますと出ていますね。既に読み込まれているのにまたヘッダーを読み込もうとした際に出力されるエラーです。header関数を読み込む位置が間違っているだけです。どこで読み込んでいるのでしょうか?ロジックを載せていただければわかりやすいのですが。

QボタンをクリックでPHP文を実行

ボタンをクリックしたときのみPHP文を実行したいのですが・・・

<input type="button" onClink="<?php~?>">
でいけるかと思ったのですが、
ページ表示時に<?php~?>が実行されてしまい、うまくいきませんでした。

onClink="window.open(test.php)"
という方法以外でお願いします。

Aベストアンサー

AjaxはもともとJavaScriptの機能である非同期通信をつかったもので。Ajaxという言語があるわけではありません

Ajaxを利用するのであれば、JavaScriptのXMLHttpRequestを使って非同期通信できるような実装をしなくてはなりません
簡単にサンプルコードで書けるほど単純なものでもありません

一般的なサーバーサイドスクリプトの動作として、
ボタンを押す->サーバーへリクエストする->サーバーが処理する->クライアントに何かしらの結果を返す(出力する)です
つまり、PHP等のサーバーサイドスクリプトは、遷移させることが大前提で動作します

ですから、ボタンを押してその場でJavaScriptと同じようにPHPが動くなんてことはありえません。
ボタンを押したらサーバーにリクエストする という動作ならば可能です。

つまり
質問で言われているような
onClink="window.open(test.php)"

<form name="f1" action="test.php" method="post">
<input type="submit" name="submit" value="submit" />
</form>
等のような形になります

こういった一般的な方法だと いちいち画面が切り替わったようになってしまうのを嫌って Ajaxでコレと同じことを、画面を切り替えずに行っているだけに過ぎません

AjaxはもともとJavaScriptの機能である非同期通信をつかったもので。Ajaxという言語があるわけではありません

Ajaxを利用するのであれば、JavaScriptのXMLHttpRequestを使って非同期通信できるような実装をしなくてはなりません
簡単にサンプルコードで書けるほど単純なものでもありません

一般的なサーバーサイドスクリプトの動作として、
ボタンを押す->サーバーへリクエストする->サーバーが処理する->クライアントに何かしらの結果を返す(出力する)です
つまり、PHP等のサーバーサイドスクリプトは、...続きを読む

Qphpのheader関数でページ移動させるときについて

現在、作成しているPHPに、

if($_POST[main]){
header("Location: ./main.html");
}

以上のような方法で、name="main"のボタンが押された時にページを移動する、という動作をさせているPHPファイルがあるのですが、これを

<a href="./main.html" target="_top"></a>

というような、ターゲットを指定させてページ移動させたいのですが、可能なのでしょうか?
フレームなどを利用しているので、その対策を行いたいのです。

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

Aベストアンサー

javascriptでformのターゲットをいじるくらい
ですかね

Qsyntax error, unexpected '}' というエラーの対処法

PHPを習い始めて三日目になるのですがParse error: syntax error, unexpected '}' in C:\Program Files\Apache Group\Apache2\htdocs\****\****\game.php on line 33
というエラーがでるのですが33行目前後のどこをなおせばいいのでしょうか?
・game.php
<html>
<head>
<title>数当てゲーム</title>
</head>
<body>
<h1 style="background:#cccccc">数当てゲーム</h1>
<form method="POST" action="game.php">
1~100までの数を入力してください
<input type="text" name="answer" size="5" maxlength="3" />
<input type="sbumit" value=回答" />
</form>
<hr />
<?php
session_start();
if(is_null($_SESSION['answer'])){
mt_stand(microtime()*1000000);
$_SESSION['answer']=mt_rand(1,100);
$_SESSION['game_cnt']=0;
}
if($_POST['answer']!=""){
$_SESSION['game_cnt']++;
if($_session['answer']==$_POST['answer']){
print("おめでとうございます".
$_SESSION['game_cnt']."回で正解しました!");
session_destroy();
}else{
if($_SESSION['answer']>$_POST['answer']){
print("もう少し大きいです。");
}else
print("もう少し小さいです。");
}
}
}
?>
</body>
</html>
それとこの間違えたところをなおしたあとはいつもコンピュータを再起動しないと修正したところが適用されないのですがほかに方法はないですか?基本的な質問ですいません。

PHPを習い始めて三日目になるのですがParse error: syntax error, unexpected '}' in C:\Program Files\Apache Group\Apache2\htdocs\****\****\game.php on line 33
というエラーがでるのですが33行目前後のどこをなおせばいいのでしょうか?
・game.php
<html>
<head>
<title>数当てゲーム</title>
</head>
<body>
<h1 style="background:#cccccc">数当てゲーム</h1>
<form method="POST" action="game.php">
1~100までの数を入力してください
<input type="text" name="answer" size="5" max...続きを読む

Aベストアンサー

print("もう少し大きいです。");
}else
print("もう少し小さいです。");
のelseの後に{がないようですが、大丈夫でしょうか?

Qセッションを使わずに遷移先画面に変数の値を渡すには?

<input type="hidden" value="myID">みたいな隠しフォームで
行く先々の画面に値をPOSTで渡してきました。

他方、 header("Location: mypage.php")
のように画面を遷移させる場合、遷移先の画面に
$_POST["myID"]のように値を渡すことはできませんか?

この場合session_start();を使って、$_SESSION["myID"]のように値を
渡す(保持する)のが王道なのでしょうか?
セッションと聞くと何かとトラブルになりやすそうなイメージがあり、
できれば使いたくないのです。

具体的に説明しますと、前にこの掲示板で教えていただいた、次の例を使っています。
入力文字チェックをかけたいのでPHP_SELFで同じ画面を呼び出して、
問題なければmypage.phpにリダイレクトさせる枠組みですが、
header("Location: mypage.php");という風に遷移した場合は、
遷移先のmypage.phpでは、$_POST["myID"]はPOSTされてきませんよね
(値を受け取れませんよね)??

妙案あればご教示下さい。


<?php
if ($_POST["reg"] == "" ) $errFlg = true;
if (!$errFlg) {
    if (strlen($_POST["myName"]) > 30) {
      $errFlg = true;
      $errStr["myName"] = "30字以下";
    }
  $errMsg = "エラー!!";
}
if ($errFlg) {
?>
<html>
  <body>
    <form method="post" action="<?php $_SERVER["PHP_SELF"] ?>">
      氏名 <input type="text" name="myName" value="<?= $_POST["myName"] ?>"><?= $errStr["myName"] ?>
      <input type="hidden" name="myID" value="<?= $_POST["myID"] ?>">
    </form>
    <input type="submit" name="reg" value="登録">
  </body>
</html>
<?php
} else {
    $sql = "update mytable set myID = 'xxxx'";
    $rst = mysql_query($sql, $con);
    header("Location: mypage.php");
}
?>

<input type="hidden" value="myID">みたいな隠しフォームで
行く先々の画面に値をPOSTで渡してきました。

他方、 header("Location: mypage.php")
のように画面を遷移させる場合、遷移先の画面に
$_POST["myID"]のように値を渡すことはできませんか?

この場合session_start();を使って、$_SESSION["myID"]のように値を
渡す(保持する)のが王道なのでしょうか?
セッションと聞くと何かとトラブルになりやすそうなイメージがあり、
できれば使いたくないのです。

具体的に説明しますと、前にこ...続きを読む

Aベストアンサー

結局「sessionの真似事」を自前でするようなことになりそうです。

・ランダムなファイル名を作成して、そのファイルにアドレスを書き込む。
・GETでファイル名を渡す。
・ファイル名を元にそのファイルからアドレスを取り出す。
・ファイルを削除する

何らかのトラブルで残ってしまったファイルは「一定時間以上経過したファイルは定期的に削除」というGCの真似事までしないといけなくなりますけど。

hidden(POST)で持ち回るということからも「セキュリティ」はまったく考慮しなくていいシステムのようなので、そうであれば「復号可能な暗号化」という手もありかもしれません。



>セッションと聞くと何かとトラブルになりやすそうなイメージがあり、
>できれば使いたくないのです。

普通に使いますけどねぇ・・。

Qリンクをクリックした時にformからPOST送信したい。

HTML、PHP、JavaScript等でサイトを作っているのですが・・・。

【実現出来ている例】
<form name="form1" method="post" action="Next.php" onSubmit="return InputCheck()">
 <input type="submit" value="送信">
</form>
 submitボタンを一つ置いて、それがクリックされた場合に
formの内容をPOSTで送信する。

【実現したい例】
<form name="form1 method="post">
 <a href="Next.php" onClick="???">???</a>
</form>
 formの中のリンクをクリックされた場合に、formの内容を
POSTで送信したいのですが、その実現方法がわかりません。
GETで送るという手もあり得ますが、今回はどうしてもPOST
したいのですが。

Aベストアンサー

<form name="form1" method="post" action="Next.php">
<a href="#" onClick="document.form1.submit();">???</a>
</form>

onclick内の対象がform1としてあてているので、
アンカータグは別にform内に記述しなくても大丈夫です

form内にhidden等でnameとvalueを持ったパラメータがあればそれも送られます

アンカータグから動的にvalueを変更したい場合は、
document.form1.hogename.value = 'hoge';
等をsubmit()の前に行えば可能です

ただしform内に
<input type="hidden" name="hogename" value="">
を記述する等、変更先パラメータの元を用意する必要がありますのでご注意下さい

Q別ファイルの変数を呼び出したいのですが?

初めて質問させて頂くPHP初心者の者です。
例えば、
(a.php)というファイル内で導き出された変数の値($a)を、(b.php)というファイル内に呼び出したいのですが、関数等を利用して呼び出す事は出来るでしょうか?

-----a.php-------------------------
<?php
$a=xxxx; //導き出された変数$a(の値)
?>
-----------------------------------
-----b.php-------------------------
<?php
$a=△△△△; //このファイル内で変数$a(の値)を呼び出したい
?>
------------------------------------

よろしくお願い致します

Aベストアンサー

質問があいまいなので回答が微妙です。

たんにa.phpを再利用する場合、a.phpをincludeやrequire
する#1さんの回答が妥当です。
a.phpの中でprintやechoをしているのが気に入らないなら
出力をバッファリングして捨ててしまえばよいでしょう。

//a.php
<?PHP
print "a_html";
$a_value="a_value";
?>

//b.php
<?PHP
ob_start();
include("a.php");
ob_clean();
print $a_value;
?>

関数の再利用を前提とするならインクルードするわけ
ですからclass化して標準出力をしないのが普通だと
思いますが・・・・

また、別の観点でa.phpからリンクされるb.phpに
移動する際に値を持って移りたいというなら、
単純にpostやgetというformのデータでわたすか、
クッキーやセッションを使うことになります。

Qフォントの色を変えるには?

こんにちは。PHPでのフォントの色の変更について質問があります。
任意の文字列の色だけを変更したいのですが、下のコードではエラーになってしまいます。
どこがまずいのかご指摘いただければ幸いです。
------------------------------
<HTML>
<HEAD>
<TITLE>TEST</TITLE>
</HEAD>

<BODY>

<?PHP
ECHO "<FONT COLOR="BLUE"> HELLO </FONT>";
ECHO "<FONT COLOR="RED"> GOOD BYE </FONT>";
?>

</BODY>
</HTML>

Aベストアンサー

BLUEやREDについてるダブルクォーテーションがエスケープされてないですね。
いろいろやりかたはありますが以下のどちらかがよいでしょう。

<?PHP
ECHO "<FONT COLOR=\"BLUE\"> HELLO </FONT>";
ECHO "<FONT COLOR=\"RED\"> GOOD BYE </FONT>";
?>

もしくは

<?PHP
ECHO '<FONT COLOR="BLUE"> HELLO </FONT>';
ECHO '<FONT COLOR="RED"> GOOD BYE </FONT>';
?>

Qinputタグでphpを呼び出す際、ページ遷移せずに実行結果を呼び出す方法が分かりません

phpのプログラムで数点詰まってしまった所がございましたので、アドバイスいただける方がいらっしゃいましたら、よろしくお願いします。

【やりたいこと】
1. index.phpのactionというボタン(inputタグ)を押すと、action.phpの中身を実行したい(これは出来ています)。
2. その際、ブラウザのURLはaction.phpではなく、index.phpにしたい(これは出来ていません。index.phpにaction.phpの実行結果を読み込めばよいのかなと思いましたが、その方法が分かりませんでした)。
3. index.phpのactionというボタンを押すと表示される画面に、「戻る」ボタンを表示したい(これは出来ていません。action.php内に「戻る」ボタンを記述した所、action.phpを正常に実行した際は「戻る」ボタンが表示されましたが、異常時には「戻る」ボタンが表示されませんでした。なおindex.phpに最初にアクセスした際には「戻る」ボタンは表示させたくありません)。

【ソースコード】
※phpが動作するサーバの同一階層内に、下記のindex.php、action.phpをアップしていただければ、動作を確認していただけると思います。
★index.php
<html>
<head>
<title>action</title>
</head>
<body>
<form action="action.php" method="post" enctype="application/x-www-form-urlencoded">
<input type="submit" name="Submit" value="action" />
</form>
</body>
</html>

★action.php
<?php
phpinfo();
?>

どこか一箇所でもアドバイスいただけるようでしたら、アドバイスいただければと思います。
以上、よろしくお願いします。

phpのプログラムで数点詰まってしまった所がございましたので、アドバイスいただける方がいらっしゃいましたら、よろしくお願いします。

【やりたいこと】
1. index.phpのactionというボタン(inputタグ)を押すと、action.phpの中身を実行したい(これは出来ています)。
2. その際、ブラウザのURLはaction.phpではなく、index.phpにしたい(これは出来ていません。index.phpにaction.phpの実行結果を読み込めばよいのかなと思いましたが、その方法が分かりませんでした)。
3. index.phpのactionというボタンを...続きを読む

Aベストアンサー

>異常時には「戻る」ボタンが表示されませんでした。
この異常時というのがよくわかりませんが、、、。
POSTデータの内容で条件分岐させて、index.phpの中でaction.phpの処理をさせてしまえばいいだけです。

★index.php
<html>
<head>
<title>action</title>
</head>
<body>
<?php
if($_POST['Submit']){
phpinfo();
echo "<a href=\"".$_SERVER['PHP_SELF']."\">戻る </a>";
exit;
}
?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<input type="submit" name="Submit" value="action" >
</form>
</body>
</html>

QPHPの関数実行

<?php
function disp(){
echo "hello world";
}
?>

<form>
<input type="text">
<input type="button" onclick="<?php disp() ?>">
</form>

といったソースを書いてみたのですが、ボタンを押してみるのですが作動しません。
どこか間違えているのでしょうか、それとも作動しないのでしょうか・・・。
当方としては、formのinputボタンを押したらPHPの関数が実行させるようにしたいのですが・・・。
どなたかご助言をお願いします。

Aベストアンサー

ウソつきました
出来ましたー

<?php

if($_REQUEST[submit] == TRUE){
function disp(){
echo "hello world";
}
}

else{
function disp(){
echo "";
}
}

?>

<form method="post" action="">
<input type="text" value="<?php disp(); ?>">
<input name="submit" type="submit"value="押せ">
</form>


人気Q&Aランキング