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

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

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

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

Q&A

解決済

2回答

1964閲覧

文字化けを直したいです

kuroneko96

総合スコア16

PHP

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

0グッド

0クリップ

投稿2018/04/20 13:29

編集2018/04/20 13:50

前提・実現したいこと

PHPでショッピングカートを作っています。
テストとして商品の数量入力欄に数字以外を入れたところ文字化けが発生しました。
(※参考書の指示により「こんにちは」と入れています。)

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

文字化け

該当のソースコード

PHP

1<?php 2 session_start(); 3 session_regenerate_id(true); 4 5 require_once('../common/common.php'); 6 7 $post=sanitize($_POST); 8 9 $max=$post['max']; 10 for($i=0;$i<$max;$i++) 11 { 12 if(preg_match("/^[0-9]+$/", $post['kazu'.$i])==0) 13 { 14 print ' 数量に誤りがあります。 '; 15 print '<a href="shop_cartlook.php"> カートに戻る </a>'; 16 exit(); 17 } 18 $kazu[]=$post['kazu'.$i]; 19 } 20 21 $cart=$_SESSION['cart']; 22 23 for($i=$max;0<=$i;$i--) 24 { 25 if(isset($_POST['sakujo'.$i])==true) 26 { 27 array_splice($cart,$i,1); 28 array_splice($kazu,$i,1); 29 } 30 } 31 32 $_SESSION['cart']=$cart; 33 $_SESSION['kazu']=$kazu; 34 35 header('Location: shop_cartlook.php'); 36?>

試したこと

コードの見直し
コードの書き直し

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

参考書 「気付けばプロ並みPHP ショッピングカート作りにチャレンジ!」内 P209

※お客様には見えないページの為、必要がないとのことでユニコード(UTF-8)は削除しています。

数字の入力欄にこんにちはと入れてます

数量変更ボタン→文字化け

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

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

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

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

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

m.ts10806

2018/04/20 13:32

画像はコードブロック内では添付できません。質問編集画面ではプレビューがでるのでそちらを見ながら想定通りなっているか確認して調整してください。
kuroneko96

2018/04/20 13:41

失礼しました。確認してきます。
kuroneko96

2018/04/20 13:51

画像を追加しました。よろしくお願いします。
guest

回答2

0

HTMLのことが書かれていませんが、文字コードは統一されているのでしょうか?

例えば、HTMLがSJISでPHPがUTF-8なら当然文字化けは発生します。

投稿2018/04/20 15:49

icegreen

総合スコア96

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

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

kuroneko96

2018/04/20 16:24

回答ありがとうございます。 下記のコードは入れていないです。 理由は参考書に下記のコードは削除の指示があったからです。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>PHP基礎</title> </head> <body> </body> </html> それとPHPはTeraPadというツールを使っていて、 文字コードはUTF-8に変更しております。 もしかして それが原因なのでしょうか?
kuroneko96

2018/04/20 16:26

※副読本にて誤りの有無を確認済みです。
kuroneko96

2018/04/20 17:02

返信が遅くなりすいません。 おかげ様で解決できました。そして 勉強させて頂きました。 ありがとうございました。 また、何かありましたらよろしくお願い致します。
guest

0

ベストアンサー

他のサイトのHTMLソースを見ると、先頭のほうに下記のようなHTMLコードがあります。

<meta http-equiv="content-type" content="text/html; charset=utf-8">

同じようにしてください。

投稿2018/04/20 16:44

py4s-tnk

総合スコア201

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

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

kuroneko96

2018/04/20 16:58

回答ありがとうございます。 頂いたコードを入力してみたところエラーが出ました。 しかし、その後入れたコードを抜いて上書き保存しテストしてみたところ、 正常に表記されるようになりました!
kuroneko96

2018/04/20 17:04

ありがとうございます。 おかげ様で先に進めそうです! また、何かありましたらよろしくお願い致します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問