質問編集履歴

2 タグを追加

engine3

engine3 score 7

2017/09/30 20:00  投稿

PHPのheader("Location:の挙動について
###前提・実現したいこと
PHPとJavascriptでWebシステムを作っています。
  ログイン画面でHTMLのformを用いPOSTし、その値を別のPHPファイルで受け取りログイン判定可否をし、PHPのheader("Location: ・・・);でURLを書き換え、画面遷移させたいです。
###発生している問題・エラーメッセージ
スマートフォンでも動作させる必要があるので、動かしてみたところ、Androidのみ10回に1回の割合でURLが書き換わらず、最初からやり直すはめになってしまいます。何度もパソコンやスマートフォンで動かしていますが、Androidのみ(タブレットと携帯型スマホで動作確認しました)この様な動作をしてしまいます。
###該当のソースコード
PHP
login.php
<?php
$msg="";
session_start();
$loginId=$_SESSION['id'];
$loginPwd= $_SESSION['pwd'];
$cheak="";
$msg = $_SESSION['msg'];
?>
<body>
<div data-role="page" id="login">
<form method="POST" action="signin.php">
<h3 id="header">ログイン</h3>
<h3 id="errorHeader">
<?php
//空("")でなければ実行
if(!empty($msg)){
echo $msg;
}
?>
</h3>
<table>
<tr>
<td>ID</td>
</tr>
<tr>
<td>
<input type="text" name="loginId" class="loginInput" value="<?php echo $loginId;?>">
</td>
</tr>
<tr>
<td>PWD</td>
</tr>
<tr>
<td>
<input type="password" name="loginPwd" class="loginInput" value="<?php echo $loginPwd;?>">
</td>
</tr>
<?php
session_destroy();
?>
<tr>
<td>
<input type="submit" name="submitLogin" class="loginInput" value="ログイン"class="btn" onClick="submit()">
</td>
</tr>
</table>
</form>
</div>
</body>
post先↓
sigin.php(一部抜粋)
if ($result === true) {
header("Location: Index.php#page6");
exit();
}else {
$_SESSION['id'] = $ID;
$_SESSION['pwd'] = $PWD;
$_SESSION['msg'] = "IDもしくはパスワードに誤りがあります";
header("Location: login.php");
exit();
}
###試したこと
パスを変えて動作させても結果は同じでした。
###補足情報(言語/FW/ツール等のバージョンなど)
  • PHP

    24036 questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • JavaScript

    20399 questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

  • HTML5

    5124 questions

    HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

  • jQuery Mobile

    27 questions

    jQuery Mobileとはスマートフォンとタブレット用に最適化されたフレームワークです。様々な携帯端末にjQueryで作られたユーザーインターフェイスシステムを提供します。

  • MySQL

    7000 questions

    MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

  • Android

    7296 questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

1 ソースの追記

engine3

engine3 score 7

2017/09/28 23:37  投稿

PHPのheader("Location:の挙動について
###前提・実現したいこと
PHPとJavascriptでWebシステムを作っています。
  ログイン画面でHTMLのformを用いPOSTし、その値を別のPHPファイルで受け取りログイン判定可否をし、PHPの     header("Location: ・・・);でURLを書き換え、画面遷移させたいです。
  ログイン画面でHTMLのformを用いPOSTし、その値を別のPHPファイルで受け取りログイン判定可否をし、PHPのheader("Location: ・・・);でURLを書き換え、画面遷移させたいです。
###発生している問題・エラーメッセージ
スマートフォンでも動作させる必要があるので、動かしてみたところ、Androidのみ10回に1回の割合でURLが書き換わらず、最初からやり直すはめになってしまいます。何度もパソコンやスマートフォンで動かしていますが、Androidのみ(タブレットと携帯型スマホで動作確認しました)この様な動作をしてしまいます。
###該当のソースコード
PHP
login.php  
<?php  
 $msg="";  
 session_start();  
 $loginId=$_SESSION['id'];  
 $loginPwd= $_SESSION['pwd'];  
 $cheak="";  
 $msg = $_SESSION['msg'];  
?>  
<body>  
 <div data-role="page" id="login">  
   <form method="POST" action="signin.php">  
   <h3 id="header">ログイン</h3>  
   <h3 id="errorHeader">  
   <?php  
     //空("")でなければ実行  
   if(!empty($msg)){  
       echo $msg;  
   }  
   ?>  
     </h3>  
       <table>  
         <tr>  
           <td>ID</td>  
         </tr>  
         <tr>  
           <td>  
             <input type="text" name="loginId" class="loginInput" value="<?php echo $loginId;?>">  
           </td>  
         </tr>  
         <tr>  
           <td>PWD</td>  
         </tr>  
         <tr>  
           <td>  
             <input type="password" name="loginPwd" class="loginInput" value="<?php echo $loginPwd;?>">  
           </td>  
         </tr>  
         <?php  
          session_destroy();  
         ?>  
         <tr>  
           <td>  
             <input type="submit" name="submitLogin" class="loginInput" value="ログイン"class="btn" onClick="submit()">  
          </td>  
         </tr>  
       </table>  
   </form>  
 </div>  
</body>  
 
post先↓  
sigin.php(一部抜粋)
if ($result === true) {
   header("Location: Index.php#page6");
   exit();
}else {
   $_SESSION['id'] = $ID;
   $_SESSION['pwd'] = $PWD;
   $_SESSION['msg'] = "IDもしくはパスワードに誤りがあります";
   header("Location: login.php");
   exit();
}
###試したこと
パスを変えて動作させても結果は同じでした。
###補足情報(言語/FW/ツール等のバージョンなど)
  • PHP

    24036 questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • JavaScript

    20399 questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

  • MySQL

    7000 questions

    MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

  • HTML5

    5124 questions

    HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

  • phpMyAdmin

    805 questions

    phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

  • jQuery Mobile

    27 questions

    jQuery Mobileとはスマートフォンとタブレット用に最適化されたフレームワークです。様々な携帯端末にjQueryで作られたユーザーインターフェイスシステムを提供します。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る