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

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

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

HTTPにおけるCookieとは、クライアントのウェブブラウザ上に保存された一時的なデータを指します。クライアント側のJavaScriptでも、サーバー側のHTTPヘッダーでもクッキーの読み書き・修正・削除が可能です。

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

PHP

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

Q&A

1回答

4199閲覧

本番環境、chromeのみでsetcookieが無効になる

kumaco

総合スコア6

Cookie

HTTPにおけるCookieとは、クライアントのウェブブラウザ上に保存された一時的なデータを指します。クライアント側のJavaScriptでも、サーバー側のHTTPヘッダーでもクッキーの読み書き・修正・削除が可能です。

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

PHP

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

0グッド

0クリップ

投稿2018/03/30 03:09

前提・実現したいこと

ロリポップのレンタルサーバー上でphpによる検索サイトを作成中なのですが、本番環境
のwindows7のchromeでのみ、setcookie()でクッキーを保存することができません。

setcookie()の一文だけであれば本番環境のchromeでも問題なくクッキーは保存されるのですが、リロードでクッキーの削除⇔保存ができる様に、if文とisset()を使って「クッキーが存在する場合は削除する」と言う記述を加えると、本番環境のchromeでだけクッキーを保存することができなくなります。
本番環境であってもwindows7のfirefox、IE及びiOSのchrome,safariなら問題なく動きますし、またXAMPPのローカル開発環境であればwindows7のchromeであっても動きます。
しかし、本番環境のwindows7のchromeでだけ何故か動作しません。

当方プログラミング初心者なので、基本的なプログラムの記述方法自体に問題があるのでしょうか?
ただ、chrome以外のブラウザでは問題なく動作するので、よくわかりません。
ブラウザ毎の仕様の違いによるものと思い検索してみましたが、はっきりした原因に行き当たりません。

みなさんのお力添えをいただけないでしょうか?

宜しくお願いします。

発生している問題・エラーメッセージ

下記の記述の場合にsetcookie()が動作しない

該当のソースコード

php

1 2<?php 3if(isset($_COOKIE['name'])) { 4 setcookie('name'); 5} else { 6setcookie('name','クッキー'); 7} 8 9echo $_COOKIE['name'];

試したこと

if文無しで

<?php setcookie('name','クッキー'); echo $_COOKIE['name'];

だけならwindows7のchromeでもクッキーは保存される

上記記述の場合
本番環境:chrome → 動作不可
本番環境:firefox、IE、iOSのchrome、iOSのsafari → 正常

ローカル開発環境(XAMPP):→ いずれのブラウザでも正常

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

ここにより詳細な情報を記載してください。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2018/03/30 03:12

クッキーを制限してるだけじゃ(ブラウザレベル)
deadjupiter

2018/03/30 03:15

https使ってたりする?
kumaco

2018/03/30 06:06

「Cookieデータの保存と読み取りを許可する」になってますし、ブロックもしていません。httpsも使ってないです。
guest

回答1

0

特に問題なさそうですが、これでどうでしょう?

PHP

1$name=filter_input(INPUT_COOKIE,"name"); 2if(!is_null($name)) { 3 setcookie('name'); 4} else { 5 setcookie('name','クッキー'); 6} 7 8echo $name?:"nodata";

投稿2018/03/30 03:26

yambejp

総合スコア114777

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

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

kumaco

2018/03/30 06:32

ご回答ありがとうございます。 でも挙動は変わらないです。 <?php $hoge=filter_input(INPUT_COOKIE,"hoge"); setcookie('hoge','フガ'); $name=filter_input(INPUT_COOKIE,"name"); if(!is_null($name)) { setcookie('name'); } else { setcookie('name','クッキー'); } echo $hoge?:"nohoge"; echo $name?:"nodata"; 上記の様にしてみたところ、'hoge'はちゃんと保存されるのに'name'は保存されません。もちろんchromeのみですが。何故でしょう?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問