• 締切済み

if文について

$a = $_GET['b']; if ($_COOKIE['hogeFlag'] != hoge) && (!isset($a)) {  処理1 } あるページから画面遷移したときに遷移前に食わせたcookieの値とgetで送られてくる値を元にある処理を行いたいのですが、どうもうまく処理1に入ってくれません。 個々にすればちゃんと処理されるのですが、それだと非効率だと思うので、一行で書きたいのですがどうもうまくいきません。 前提 遷移前ページでcookieに値を食わせてかつ別の値をgetで送ってくるようになっているが、cookieの値が食わせた値と違う場合かつgetで送ってこなかった場合に処理1を実行したい。

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

みんなの回答

回答No.2

if()文自体に対する()がありませんね。 個々の場合は、()で括ってるやつがif()文自体の()として解釈されたから 正常に動作するのでは?

  • Tasuke22
  • ベストアンサー率33% (1799/5383)
回答No.1

if(($_COOKIE['hogeFlag'] != hoge) && (!isset($a))) {  処理1 } これで如何でしょうか。

関連するQ&A

  • if文の$_COOKIEの処理について

    if文の「$_COOKIE」の処理について質問させてください。 3つのif文の処理は同じだと思いそれぞれ使いって みると多少違いがあるようなのですが、その違い がよく分かりません。PHP4の場合はとはちょっと 様子が違うみたいです。 (1) if($_COOKIE['XXXXXXX']) (2) if(isset($_COOKIE['XXXXXXX'])) (3) if($_COOKIE['XXXXXXX']!="") 環境:PHP5 よろしくお願いします。

    • ベストアンサー
    • PHP
  • テキストリンクをPOST送信したい

    「自由に入力できる任意の値」ではなく、「常に固定な値」をPOST送信するにはどうすればよいでしょうか? ■現状 <a href="index.php?hoge=1">hoge</a> ・テキストリンク形式 ・このままだと、GET送信で、URLにパラメータが表示されてしまう。  ↓ ■やりたいこと ・URLにパラメータを表示させたくない ・クリックした時点で、常に「hoge=1」をパラメータとして送りたい ■知りたいこと ・遷移前(パラメータを送る側のページ)の書き方を教えてください

    • ベストアンサー
    • PHP
  • isset関数の動作と入力チェックについて

    issetの動作について疑問に思った事があるので、質問させて下さい。 以下のようなテスト用のphpを作成しました。 issettest.php <?php $a = $_GET["a"]; if(isset($_GET["a"])){ echo "\$GETに[".$_GET["a"]."]が入っています。<br>"; } if(isset($a)){ echo "\$aに[".$a."]が入っています。<br>"; } if(!isset($_GET["a"])){ echo "\$GETは空です。<br>"; } if(!isset($a)){ echo "\$aは空です。<br>"; } ?> ./issettest.php と実行すると、 $GETの値は空です。 $aの値は空です。 ./issettest.php?a=test と実行すると $GETに[test]が入っています。 $aに[test]が入っています。 ./issettest.php?a= と実行すると $GETに[]が入っています。 $aに[]が入っています。 となります。 これがissetの正常な動作なのでしょうか? 例えば、入力フォームを使いGETやPOSTでの値を送信する場合、入力フォームに値が入力されたかどうかを判定するにはissetは使えないのでしょうか? わかりづらい質問で申し訳ありませんが、先輩方の回答お待ちしています。 質問に不備などありましたらご指摘下さい。

    • ベストアンサー
    • PHP
  • COOKIEを用いたセッション管理

    PHPでCOOKIEを用いたセッションチェックをしようとしています。 トップページを表示する関数とセッション管理の関数に分けて処理をしています。 function index(){ session_start(); if($this->CheckSession()) ログインのページ else ログオフのページ } function CheckSession(){ if(!$_COOKIE["hoge"]) DBにセッションID(COOKIE["hoge"]の値)を入れる setcookie("hoge",session_id()); return false; else  return true; } このとき更新ボタンを押すたびにCOOKIEの値が変わります。 なぜでしょうか?

    • ベストアンサー
    • PHP
  • 【PHP】ひとつ前のURLを常時得る方法は?

    レンタルのPHP5使用者です。 自分が作ったサイト内リンクだけでの話なのですが、ひとつ前に見たページが何かによって処理を分岐させたいことがあります。 はじめは $_SERVER[HTTP_REFERER] を見ればOK!と考えていたのですが、リダイレクト遷移の場合は取得不可能なことがわかりました。 では一体どうすれば… 3時間ほど考えた結果は以下の通りです。 $_GET[ ] 使用 → 値を容易に改ざんされるので×。 $_POST[ ] 使用 → $_SERVER[HTTP_REFERER]同様リダイレクト時に無理。 SESSION 使用 → 直前のURLとは限らない(直前が、静的ページ/リダイレクト/ブックマーク の場合さらに古いURLを得てしまう) Cookie  使用 → 同上 <条件> *停止させている方も多いため、勝手ながら今回javascriptは使わないことを前提にさせてください。 *直前が静的ページ/ブックマーク等なら値なしでOKです。 一見簡単そうに見えた問題があまりに難しいので悩みました。「あきらめろ」という回答でもOKです。よろしくお願いいたします。

    • 締切済み
    • PHP
  • 遷移前のページのクエリを取得したい

    PHPについての質問です。 ブラウザに、 ttp://hogehoge.com/hoge1.php?hoge=moge というページを表示している状態で、そのページ内のリンクをクリックし、そのリンク先は、 ttp://hogehoge.com/hoge2.php というページだとして、この hoge2.php で直前のページ(hoge1.php)の「hoge=moge」という情報を取得したいです。 $_SERVER["QUERY_STRING"] で現在のページのクエリを取得できますよね。 また、 $_SERVER["HTTP_REFERER"] で遷移してくる前のページのアドレスを取得できますよね。 こういう感じで、遷移してくる前のページのクエリを取得する方法はありますか? cookieとかを使うしかないのでしょうか?

    • 締切済み
    • PHP
  • if文の判定に変数をつかって

    とりあえず、 $action['click'] = $_GET['login']; if($action['click']) { ログインの認証処理    および ログイン後の処理 } else { <form aciton="このファイル" method=get> ログイン画面 <input type=submit name=login value="ログイン"> } と書いた場合、初回アクセス時には$action['click']には何もないのでfalseでログイン画面が表示され、 ログインボタンを押下したら$action['click']には"ログイン"が入っているので(実際にこの場合、何が入っててもよいんですが・・・)trueなのでログイン認証に入るという動きを期待しているのですが、perlではこのような動きをします。ですがphpの場合、このような動きをしたりしなかったりします。 気づいた限りでは連想配列で書くと動いてるような気がします。 $click = $_GET['login']だと動きません。(絶対とはいえませんが) emptyという関数があるが個人的には上記の方法で行いたいのですが、phpの仕様上この書き方は認められてないのでしょうか? だからempty()があるのでしょうか? (issetは=''でtrueを返すので今回は却下)

    • ベストアンサー
    • PHP
  • $ENV{'HTTP_COOKIE'}について

    windowsサーバーのcgi(※)にて「$ENV{'HTTP_COOKIE'}」でcookieの値が正常に取得できてましたが、 linuxサーバーにそのソースをそのまま移行し、動作確認したところ「$ENV{'HTTP_COOKIE'}」でcookieの値が取得できなくなってしましました。 (※)・・・ショッピングカートの処理 ちなみにSSLを使用しているページです。 (1)画面A(http)から「カート入れる」ボタンをクリックし、画面B(https)に遷移 (2)画面Bに遷移した際にcookieに取得、保存 要するにhttpsでセットしたものをhttpsゲットしようとしています。 サーバーの環境は以下となります ■windowsサーバー ・OS : Windows 2003 R2 SP2 ・Perl ver : 5.8.7 ■linuxサーバー ・OS : Red Hat Enterprise Linux 4 ・Perl ver : 5.8.8 ・パーミッション : 757 ロジックは変更していないのでおそらくサーバーのどこかの設定を変更しなければならないのではないかと思われますが、どこに手を付けてよいのかがわかりませんので ご教授していただきたいです。 宜しくお願い致します。

    • ベストアンサー
    • Perl
  • ASPで画面間のパラメタ受け渡し

    こんばんは。ASP初心者です。 ASPでWEBページの作成を行っています。画面遷移をResponse.Redirect()で行っているのですが、遷移前のページと遷移後のページでパラメタを受け渡したい場合はSession("hoge") = "hogehoge"のようにセッションに入れる以外、何か方法はないでしょうか。リクエスト間でパラメタ渡せればがいいので、セッションを通じて保持しておく必要がないのです。クエリを使用するとアドレス欄に変数の値が見えてしまうのでできれば使いたくありません。

  • PHPで変数のデータ受け渡しについて

    HTMLで下記のようにして入力された データを次ページに受け渡し、 issetで変数に値が代入されていれば ifで分岐処理させたいのですが、 elseの処理しかできません。    <FORM action="次ページ.php" method="GET">    キーワード<BR>    <INPUT type="text" name="keyword">    <INPUT type="submit" value="ボタン"> ボタンをクリックしたら次ページで    if (isset($keyword)) {     分岐処理1;     }    else{     分岐処理2;     } と行いたいのですが、$keywordに値が 代入されているにも関わらず elseの処理がされてしまいます。 どこか構文が間違っているのでしょうか。 どうか教えてください。

    • ベストアンサー
    • PHP

専門家に質問してみよう