• 締切済み

リンクしたPHPへ変数をわたしたい

今 サンプルをくっつけようとしています。 *1つのサンプルはログイン認証(PHP)で、ユーザー($username)を認証してから他のメニュー(ここではアップロード・ダウンロード,PHP)へ飛ぶようにテンプレート(TPL)上でPHPのリンクをつけてあります。 *TPLファイルでは、以下のような部分を付加してありますが、 画面上でログインしているユーザー名($username)が表示されます。 <P> {$username|escape:"html"} <BR> <BR> <A href="storage.php?{$username}={$username|escape:"html"}">"{$username|escape:"html"}"ファイルのアップロード・ダウンロード</A> <BR> <BR> 画面上に表示されたリンクをクリックしてstorage.phpへ飛ぶと、 storage.php内で 表示できるように設定した$usernameが表示されません。 storage.phpではユーザー別のフォルダをつくりそこにアップロード・ダウンロードさせたいのですが $usernameがわたらないために どのユーザーでも同じフォルダーにアクセスすることになってる現状です。 storage.phpでは 以下のような内容 function listup($username,$key) { global $dirname; print $dirname; $dir="./data/$dirname"; ............... $username さんのファイル一覧 インターネットや本をみたのですが、わかりません。 すみませんが お気づづきのかたいらっしゃいましたら アドバイスお願いいたします。

  • PHP
  • 回答数1
  • ありがとう数2

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

ページ間の変数の受け渡しにはセッションを使うのが一般的です http://www.php.net/manual/ja/ref.session.php

ASHINOKO
質問者

補足

回答ありがとうございます。 セッションによる受け渡しと、パラメーター渡しでもできるようなので、 パラメーター渡しでやってみました(手軽にできそうだったので)。 $dirname = $_GET["username"]; このユーザー名を使って、最初の一覧表を出すときには うまく出るのですが、storage.phpのメニューで再度一覧表を出そうとすると $dirnameの値が 消えてしまって 表示ができません。 このあたりは セッションによる受け渡しと パラメーターによる受け渡しで 効果の違いがあるのでしょうか? 目的は単に認証を行った ユーザー名を使って 他のモジュール(phpファイル)で ファイルのアップロードダウンロード処理(フォルダー作成含め)を行いたいだけなのですが。。。 もし適当なサンプルプログラムがありましたら ご紹介いただけると 非常に助かります。 よろしくお願いいたします。

関連するQ&A

  • 変数を他の変数に代入したいが。。

    こんにちは。 やりたいことは 以下のことです。 1.サンプルを他のサンプル(TPLもしくはPHP)から起動。サンプルは別途添付。 2.ユーザー名を渡してやる(今回パラメーター渡しでやってみました) 3.サンプルで以下のことを行いたい htdocs\data\ユーザー名 のフォルダーを作成 htdocs\data\ユーザー名 のフォルダーにファイルを アップロード・ダウンロード htdocs\data\ユーザー名 のフォルダーにファイルの一覧を表示 問題点     パラメーター渡しで行ってみましたがうまくいきませんでした。     下記のサンプルでは認証の部分をコメントにして、     ユーザー名をサンプル内で便宜上固定してみましたが、うまくいきません。     以下のようになります。 1.最初に起動 data/ユーザー名フォルダーにいく ( ok ) 2.一覧表示 data/ユーザー名フォルダーを見に行く( ok ) 3.アップロード data フォルダーを見てしまう (なぜユーザーのフォルダーを見に行かない?) サンプル単体で動かしたときに どうしてユーザーのフォルダへアップロードできないのか いろいろ見たのですが わかりません。 単純に $userを $usernameに入れればすむと思ったのですが。。。 もしわかる方いらっしゃいましたら アドバイスいただけると ありがたいです。 また、他のtplもしくは phpから このサンプルを起動する場合、 セッションとパラメーター渡しでの違いはあるのでしょうか? 実際 渡す必要があるのはユーザー名だけなのと、 私自身がセッション渡しにする場合のやり方を まだ理解できていないもので。。よろしくお願いいたします。

    • 締切済み
    • PHP
  • セッションについて

    現在phpとMysqlで認証後、認証時に入力したID名のディレクトリを自動で作るシステムを作っています。 しかし、ID名のディレクトリにファイルをアップロードしたいのですが、なぜか指定よりひとつ上の階層にファイルが保存されてしまいます。 考えられることを以下に記します。 1、セッションがうまく渡ってきておらず、指定先のセッション変数が空である。 2、関数の使い方が間違っている。 この他に理由があるのかもしれません。 アップロード指定ディレクトリは以下のように指定しています。 $username = $_POST['user']; $_SESSION['username'] = $_POST['user']; $file_dir = "c:/xampp/htdocs/report/$username"; ちなみに認証時のID名のディレクトリを作るプログラムは以下の通りです。 <?php session_start(); $dirname = $_POST['user']; $_SESSION['dirname'] = $_POST['user']; $path = "c:/xampp/htdocs/report/$dirname"; if(!file_exists($path)){mkdir($path);} ?> こちらもセッション変数を利用しているので同じようにしたら 大丈夫だと思っていたのですが・・・ お分かりになる方ご回答お願いいたします。

    • 締切済み
    • PHP
  • PHP4 LINUXサーバー

    「PHP4でカンタンWebDB構築ガイド」を見て、ファイルのアップロードのプログラムを書いてみましたが、参照..→送信の後に表示される筈のuserfile,user_file_name,user_file_size,user_file_typeの情報が表示されません。 また、このサンプルソフトでは、サーバーにアップロードされた筈のファイルが、具体的に何処のフォルダにアップロードされたのか分かりません。何処かデフォルトで保存される場所でもあるのでしょうか? <FORM ENCTYPE="multipart/form-data" ACTION="upload.php" METHOD=POST> <INPUT TYPE ="hidden" name="MAX_FILE_SIZE" value="1000"> <INPUT NAME="userfile" TYPE="file"> <INPUT TYPE="submit" VALUE="送信"> </FORM> <?php print "\$userfile = ". $userfile . "<BR>"; print "\$userfile_name = ". $userfile_name . "<BR>"; print "\$userfile_size = ". $userfile_size . "<BR>"; print "\$userfilei_type = ". $userfile_type . "<BR>"; ?>

    • ベストアンサー
    • PHP
  • sitemixでのPHP設置

    sitemixにログイン認証PHPをアップロードし、私が運営するサイトのTOPページから相対パスでそのPHPのファイルを見ようとしたら、真っ白なページが表示されてしまいました。 PHPを提供してくださったサイト、またPHPファイルのダウンロードの際付いていたファイルにも詳しいことは書いておらず、PHPファイル、データファイルをアップロードしてくださいとしかありませんでした。 パーミッションの値もいろいろ調べて試してみましたが、やはり真っ白なページのままです。 PHPプログラムについては初心者なので、苦戦です。 ご回答お願いします。

  • BASIC認証のユーザー名をPHPで取得したい

    とあるレンタルサーバで、 BASIC認証のホームページを作成しております。 BASIC認証は「.htaccess」で AuthType Basic AuthName "メンバー専用ページ" AuthUserFile "ファイルパス" require valid-user ログイン後のページにアクセス解析機能をつけたいと思っていますが、BASICで入力したログインのユーザ名が取得できなくて困っております。 echo "test1:" . $_REQUEST['PHP_AUTH_USER']. "<br />\n"; echo "test2:" . $_SERVER['PHP_AUTH_USER']. "<br />\n"; echo "test3:" . $PHP_AUTH_USER . "<br />\n"; と書いて画面に出力してみましたが、正しくログインしていても 空又はNULLの状態です。 Apacheの設定?phpの設定?ソースコードの間違え? などわからない状態になっています。 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • PHPのmysql_queryの変数について

    PHPのmysql_queryの変数について 全くの初心者です。 ログイン情報のチェックに使うクラスを調べているのですが、 mysql_queryの結果が表示されなく、原因が分かりません。 ご存知の方がおられましたら、ご教授頂けませんでしょうか。 よろしくお願い致します。 以下が全体のコードです。(1)(2)の問題があります。 <?php require_once "BaseDB.class.php"; // ログインをするクラス class Settings extends BaseDB { // ユーザ認証 public function isValidUser( $id, $pass ) { //var $qstring; // SQL文 //var $qresult; // mysql_query関数の結果 //var $fresult; // mysql_fetch_arrayの結果 $this->errors = 0; // MySQLにデータがあるか調べる $qstring = "select passwd from b_settings where username='$id'"; //クエリを実行 echo "setting class:<br>"; echo "qstring:<br>"; echo "$qstring<br />";//select passwd from b_settings where username=unknown $qresult = mysql_query($qstring); echo "qresult:<br>"; ////// (1)ココが表示されない。 echo "$qresult<br>"; if(!$qresult) { echo $qresult; $this->errorm = "ユーザ名が違います。table Error";////////// (2)このエラーが出てしまいます。 $this->errors++; return false; } if(!$fresult = mysql_fetch_array($qresult)) { $this->errorm = "ユーザ名が違います。"; $this->errors++; return false; } //echo "$pass /" . $fresult['passwd'] . "<br>"; if( $pass == $fresult['passwd'] ) { //echo "$pass /" . $fresult['passwd'] . "<br>"; return true; } else { $this->errorm = "パスワードが違います。"; $this->errors++; return false; } }//関数終了 public function loadSettings( $id='' ) { $qstring = "select maintitle,subtitle,maxtopics," . "username,passwd,mailaddr from b_settings where id=1"; //クエリを実行 $qresult = mysql_query($qstring); if(!$qresult){ $this->errorm = "DB Error:[$qstring]"; $this->errors++; return false; } if(!$fresult = mysql_fetch_array($qresult)) { $this->errorm = "設定情報がありません。"; $this->errors++; return false; } $this->maintitle = $fresult['maintitle']; $this->subtitle = $fresult['subtitle']; $this->maxtopics = $fresult['maxtopics']; $this->username = $fresult['username']; $this->passwd = $fresult['passwd']; $this->mailaddr = $fresult['mailaddr']; return true; } public function saveSettings( $id='' ) { $qstring = "update b_settings set ". "maintitle = '$this->maintitle', ". "subtitle = '$this->subtitle', ". "maxtopics = '$this->maxtopics', ". "username = '$this->username', ". "passwd = '$this->passwd', ". "mailaddr = '$this->mailaddr' ". " where id=1"; //クエリを実行 $qresult = mysql_query($qstring); if(!$qresult){ $this->errorm = "DB Error:[$qstring]"; $this->errors++; return false; } return true; } // プロパティ参照 function __get( $property ) { return $this->$property; } // プロパティセット function __set( $property, $value ) { $this->$property = $value; } } //クラス終了 ?>

    • ベストアンサー
    • PHP
  • ホームページにphpを入れたのですが・・・

    この前ホームページにアンケートをつけるためにアンケートのサンプルプログラムをダウンロードしました。その中にはhtmlとphpと2つのファイルが入っていました説明には2つともアップロードすればいいと書いてあったのでアップロードしたのですが、アンケートフォームから送信すると Method Not Allowed The requested method POST is not allowed for the URL /h/u/k/huk/php1/sendmail.php. とエラーメッセージが出てきました。 サンプルはここでダウンロードしました。 http://php.eweb-design.com/1301_mail.html ダウンロードファイルは ダウンロード(Ver0.96),2004/09/21:Zip形式 です。 見てくださったら分かるかと思います。 初心者なのでよく分からないので初歩的なミスでも丁寧にご指導いただければありがたいです よろしくお願いします

    • ベストアンサー
    • PHP
  • PHPでBasic認証付HPからファイルをダウンロード

    Basic認証のあるHPからZIPなどのファイルをダウンロードしたいのですがいろいろと調べても分かりませんでした。どなたか教えていただきたいです。 やりたいことはPHPでユーザー管理し特定のユーザーにのみファイルをダウンロードさせたいのです。 よろしくお願いします

    • 締切済み
    • PHP
  • PHPファイルについて

    サル検と言うPHP自動相互リンクに登録して「PHPファイルをアップロードしリンク集を作ります」と表記されていたのでPHPファイルをダウンロードしてデスクトップに保存したのですが「このファイは開けません」と表示されます。またホームページ上にURLをUPしたんですがページがエラーになって表示されません。PHPファイルのアップロードとはどうすれば出来ますか?初心者でわかりませんのでお願い致します。

  • PHPでcookieのみを使ったログインページ

    学校で「PHPでタイムカードを作成せよ」という課題がでました。 そこで、まずログインページを作ろうと思い、 検索をかけてサンプルプログラムを見たり、 分からない命令を調べてみたりしているのですが プログラミングが大の苦手でありまして・・ 残念なぐらいにわかりません。 実際に http://ml.php.gr.jp/pipermail/php-users/2004-July/023371.html にあったプログラムを動かしてみても、 ログインフォームの次のページ(認証ページ)で 「idが未入力です」と表示されてしまいます。 (idとpwは何度も確認して入力しています) どなたか簡単なログインページのサンプルを作っていただけないでしょうか 出来ればセキュリティー面などは考慮せずに、 クッキーのみを使った簡易なものをお願いしたいです。 それを拝見して勉強したいと思います・・ よろしくお願いします。

    • 締切済み
    • PHP