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

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

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

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

Q&A

解決済

4回答

1758閲覧

php

queen_vermuus

総合スコア7

PHP

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

0グッド

0クリップ

投稿2017/01/06 09:29

編集2017/01/06 10:19

PHPで問い合わせフォームの様なものを参考書のサンプル通り作ったのですがある箇所が分からないです。まだ途中まで作ったのですがその箇所の意味が分からなく先に進むことができません。

PHP

1<!DOCTYPE HTML> 2<html lang="ja"> 3<head> 4<meta http-equiv="Content-type" content="text/html; charset=UTF-8"> 5<title>PHP基礎</title> 6</head> 7<body> 8<?php 9$staff_name=$_POST['name']; 10$staff_pass=$_POST['pass']; 11$staff_pass2=$_POST['pass2']; 12 13$staff_name=htmlspecialchars($staff_name); 14$staff_pass=htmlspecialchars($staff_pass); 15$staff_pass2=htmlspecialchars($staff_pass2); 16 17if($staff_name==''){ 18 print 'スタッフ名が入力されていません。<br />'; 19}else{ 20 print 'スタッフ名:'; 21 print $staff_name; 22 print '<br />'; 23} 24 25if($staff_pass==''){ 26 print 'パスワードが入力されていません。<br />'; 27} 28 29if($staff_pass2==''){ 30 print 'パスワードが一致しません。<br />'; 31} 32 33if($staff_name=="||$staff_pass==" || $staff_pass!=$staff_pass2){ 34 print '<form>'; 35 print '<input type="button" onclick="history.back()" value="戻る">'; 36 print '</form>'; 37}else{ 38 $staff_pass=md5($staff_pass); 39 print '<form method="post" action="staff_add_done.php">'; 40 print '<input type="hidden" name="name" value="'.$staff_name.'">'; 41 print '<input type="hidden" name="pass" value="'.$staff_pass.'">'; 42 print '<br />'; 43 print '<input type="button" onclick="history.back()" value="戻る">'; 44 print '<input type="submit" value="OK">'; 45 print '</form>'; 46} 47?> 48</body> 49</html>

if($staff_name=="||$staff_pass==" || $staff_pass!=$staff_pass2)

上記のif分は意味としては入力に誤りがあったら戻るボタン、問題なければelseを実行するというものですが、
論理演算子があるためどう捉えればいいのか分かりません。最後の方はpassとpass2が違ったらというのは分かるのですが最初の二つ目の論理演算子までの意味が分かりません。ダブルクォーテーションの内と外にある意味がどうしても理解できません。ifの中にあるこの論理演算子2つはどういう役割があるのか教えてください。

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

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

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

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

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

toutou

2017/01/06 09:34

タイトルは内容が分かりやすいものに
退会済みユーザー

退会済みユーザー

2017/01/06 10:02

phpMyAdmin 関係ないです。タグから外しておいて下さい。
guest

回答4

0

ベストアンサー

多分参考書にはダブルクォーテーション(")ではなくシングルクォーテーション×2('')が書かれているのでは?

投稿2017/01/06 09:33

kei344

総合スコア69407

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

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

0

問題の箇所は他の人も言っているようにシングルクォーテーションX2とダブルクォーテーションの取り違いだと思いますが、それ以外の箇所で、突っ込みどころが大量にあります。

これ、本当に参考書のサンプルなんでしょうか?
古い参考書を読まれていますか?

参考書を変えた方が良い気がします。

投稿2017/01/06 09:42

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2017/01/06 09:46

ざっとおかしく感じるところをあげておきますね。 ・$_POSTの取り扱い方 ・htmlspecialchars を使用する場所 ・if文の評価の仕方 ・printでの出力 あまり今時のスクリプトで、サンプルのような表現は見ません。
queen_vermuus

2017/01/06 10:21

参考書を見たら発行は2013年に発売したものでした。
退会済みユーザー

退会済みユーザー

2017/01/06 10:30

そこまで古くはないですけど、ちょっと変えた方が良い気がします。 変なクセがついちゃいますよ。 それか、さくっと卒業して、実践的なスクリプトを学習するか。 学習の方法は、最近こちらにコメントしました。 https://teratail.com/questions/60995
guest

0

解答してくださった方ありがとうございました。
参考書を見るとシングルクォーテーションなら意味が通じる為私の初歩的な勘違いでした。
発売したのが2013年のもので古いようなので違う参考書を探したいと思います。

投稿2017/01/06 10:24

queen_vermuus

総合スコア7

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

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

0

''は大きく言えば ' ' こういうこと。中身が空っぽです。

投稿2017/01/06 09:36

toutou

総合スコア2050

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問