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

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

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

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

1858閲覧

php うまく表示されない

Jojostyle

総合スコア11

PHP

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/06/05 13:41

前提・実現したいこと

次のフォームに必要事項をご記入ください
ニックネーム必須

としか表示されない

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

該当のソースコード

session_start(); if(!empty($_POST)){ //エラー項目の確認 if($_POST['name']==''){ $error['name']='blank'; } if($_POST['email']==''){ $error['email']='blank'; } if(strlen($_POST['password'])<4){ $error['password']='length'; } if($_POST['password']==''){ $error['password']='blank'; } if(empty($error)){ $SESSION['join']=$_POST; header('Location: join_check.php'); exit(); } } ?> <p>次のフォームに必要事項をご記入ください</p> <form action="" method="post" enctype="multipart/form-data"> <dl> <dt>ニックネーム<span class="required">必須</span></dt> <dd><input type="text" name="name" size="35" maxlength="255" value="<?php echo htmlspecialchairs($_POST['name'],ENT_QUOTES,'UTF-8');?>"> <?php if($error['name']=='blank'):?> <p class="error">*ニックネームを入力してください</p> <?php endif; ?> </dd> <dt>メールアドレス<span class="required">必須</span></dt> <dd><input type="text" name="email" size="35" maxlength="255" value="<?php echo htmlspecialchairs($_POST['email'],ENT_QUOTES,'UTF-8');?>"></dd> <?php if($error['email']=='blank'):?> <p class="error">*メールアドレスを入力してください</p> <?php endif; ?> <dt>パスワード<span class="required">必須</span></dt> <dd><input type="password" name="password" size="10" maxlength="20" value="<?php echo htmlspecialchairs($_POST['email'],ENT_QUOTES,'UTF-8');?>"> <?php if($error['password']=='blank'):?> <p class="error">パスワードを入力してください</p> <?php endif; ?> <?php if($error['password']=='length'):?> <p class="error">パスワードは4文字以上で入力してください</p> <?php endif; ?> </dd> <dt>写真など<span class="required">必須</span></dt> <dd><input type="file" name="image" size="35" > </dd> </dl> <div><input type="submit" value="入力内容を確認する"></div> </form>

試したこと

拡張子htmlにしたら作用はしないが表示されはする

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

ローカル(MAMP)使用

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

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

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

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

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

guest

回答2

0

ベストアンサー

とりあえずセッションとファイル処理はいったん置いておくとして
こんな感じにするとよいでしょう

PHP

1<?PHP 2session_start(); 3$err=["name"=>"","email"=>"","password"=>""]; 4$name=filter_input(INPUT_POST,"name",FILTER_VALIDATE_REGEXP,["options"=>["regexp"=>"/./"]]); 5$h["name"]=htmlspecialchars($name); 6if(!is_null($name) and $name===false){ 7 $err["name"]='<p class="error">*ニックネームを入力してください</p>'; 8} 9$email=filter_input(INPUT_POST,"email",FILTER_VALIDATE_REGEXP,["options"=>["regexp"=>"/./"]]); 10if(!is_null($email) and $email===false){ 11 $err["email"]='<p class="error">*メールアドレスを入力してください</p>'; 12} 13$h["email"]=htmlspecialchars($email); 14$password=filter_input(INPUT_POST,"password",FILTER_VALIDATE_REGEXP,["options"=>["regexp"=>"/^.{4,20}$/"]]); 15if(!is_null($password) and $password===false){ 16 $err["password"]='<p class="error">*パスワードは4文字以上20文字以内です</p>'; 17} 18 19?> 20<style> 21.required{color:red} 22.error{background-color:red} 23</style> 24<p>次のフォームに必要事項をご記入ください</p> 25<form action="" method="post" enctype="multipart/form-data"> 26<dl> 27<dt>ニックネーム<span class="required">必須</span></dt> 28<dd> 29<input type="text" name="name" size="35" maxlength="255" value="<?=$h["name"];?>" required> 30<?=$err["name"];?> 31</dd> 32<dt>メールアドレス<span class="required">必須</span></dt> 33<dd> 34<input type="text" name="email" size="35" maxlength="255" value="<?=$h["email"];?>" required> 35<?=$err["email"];?> 36</dd> 37<dt>パスワード<span class="required">必須</span></dt> 38<dd> 39<input type="password" name="password" size="10" minlength="4" maxlength="20" placeholder="4文字以上20文字以下" value="" required> 40<?=$err["password"];?> 41</dd> 42<dt>写真など<span class="required">必須</span></dt> 43<dd><input type="file" name="image" size="35" required></dd> 44</dl> 45<div><input type="submit" value="入力内容を確認する"></div> 46</form>

投稿2020/06/06 05:59

yambejp

総合スコア114572

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

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

Jojostyle

2020/06/07 07:18

filter_inputという関数を知らんかったので教えていただきうれしいです inputタグの最後のrequiredはなにをしているのか教えていただきたいです<(_ _)>
Jojostyle

2020/06/07 07:24

<?=$err["password"];?> の意味も教えていただきたいですお願いします。。。
guest

0

teratailでよく見るコードなのできっと同じ書籍なんだろうなと思います。よく質問されるコードなので、本来やるべきことをすっ飛ばしてるような、あまり参考にすべきではない書籍であると私は認識してます。

とりあえず気になったところを2つだけ
コード冒頭に<?phpがない

$SESSION

$_SESSION

PHPマニュアルも必ず確認のこと。

※あくまで、2つだけ、です。細かいところまで全て指摘してたらキリがありません。

が、もう1つ念のため。
エラー表示はONにしたほうが良いですね。
明らかなエラー(コピペで探してみて)があります。

投稿2020/06/05 13:50

編集2020/06/05 14:44
m.ts10806

総合スコア80765

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問