質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

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

JavaScript

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

Q&A

1回答

1896閲覧

php headerでページ移管後にjavascriptのalertを使用したい

Ms.yy

総合スコア83

PHP

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

JavaScript

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

0グッド

0クリップ

投稿2019/10/28 22:29

前提・実現したいこと

ログイン後に移管されたページにて「ログインしました」というメッセージをjavascriptのアラートを用いたいのですが、どのように記述したら良いのでしょうか?

login.php

<?php session_start();?> <?php unset($_SESSION["customer"]); $pdo=new PDO("mysql:host=localhost;dbname=shop7;charset=utf8","staff","password"); $sql=$pdo->prepare("select*from customer where login=? and password=?"); foreach($sql->fetchAll() as $row){ $_SESSION["customer"]=[ "id"=>$row["id"],"name"=>$row["name"], "address"=>$row["address"],"login"=>$row["login"], "password"=>$row["password"] ]; } if (isset($_SESSION["customer"])){ echo "いらっしゃいませ",$_SESSION["customer"] ["name"],"さん"; header('Location: list.php'); //ここの移管先にてアラートを表示させたいです。 exit(); } ?>

list.php(ダイレクト先)

<form action="update_output.php" method="post" name="test"> name:<input type="text" name="name"> price:<input type="text" name="price"> id:<input type="text" name="id"> <input type="submit" value="更新する"> </form>

試したこと

これではアラートすら表示されませんでした。

if (isset($_SESSION["customer"])){ echo "いらっしゃいませ",$_SESSION["customer"] ["name"],"さん"; echo <<<EOM <script type="text/javascript"> alert( "TEST" ) </script> EOM; header('Location: list.php'); exit(); }

補足情報(FW/ツールのバージョンなど)

OS:mac

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

list.phpに表示させたいのでしたら list.phpにsession_start()とif (isset($_SESSION["customer"])){の流れを書けば良いのではと。
Locationはリダイレクトを行う指定なので画面表示前に指定先へのリダイレクトされます。
出力をブラウザ確認できるのは全ての処理が終わったあとです。

蛇足ですが、header()の前に出力を書いてはいけません。(PHPマニュアル参照)

あと更に蛇足ですが環境は扱ってるコンピュータのOSよりPHPやデータベースの種類やバージョンのほうが良いです。

投稿2019/10/28 22:47

m.ts10806

総合スコア80765

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Ms.yy

2019/10/28 23:38

ありがとうございます。 一応表示はできましたが,javasriptのアラートの様な一回きりの表示までは行かなかったです。 もうちょっと試してみます。
m.ts10806

2019/10/28 23:50

どこかでセッションをクリアする必要はありますね。 あとはアクセス回数もセッションにとっておくとか(ログアウト時に必ずセッション破棄) ログイン処理自体をAjaxにして成功した結果をもってアラート表示し、JavaScriptで画面遷移させるやり方もあります。 前者は私も昔はよくやりましたがあまりセッションで回数に制限のあるJavaScriptの出力はやらないほうがいいかなと思います
Ms.yy

2019/10/29 11:03

セッションクリアですかリセットですね。 ajaxとかむっ難しいですね汗 つまりJSしなくても一回きりの表示は可能ということですね。
Ms.yy

2019/10/29 11:06

一旦ログアウトしてセッションリセットしてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問