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

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

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

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

解決済

2回答

1424閲覧

phpで昨日できていたことができなくなって焦っています。

Gnr4A

総合スコア30

PHP

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

0クリップ

投稿2021/05/19 05:18

編集2021/05/19 06:02

前提・実現したいこと

php、データベースについて質問します。昨日にphpの表示部分に入力した値がデータベースに登録できるというシステムを作り、昨日は実行できました、しかし、今日こちらの事情によりxamppを消し、再インストールをして、データをすべて移し終えました、そしてphpとデーターベースが使用可能となり、追加しようとして昨日作っておいたプログラムを作動させたところ追加されなかったです。
データベースにsampleと言うプログラムをあらかじめ作成してそこに昨日作っておたphpプログラムで追加するというものです。

該当のソースコード

昨日作っておいたコードです。

php

1index.php(処理部分) 2<?php 3$local='localhost'; 4$user_name='root'; 5$pass=''; 6$db_name='ph23_sample'; 7$sql=''; 8 9 if(isset($_GET['botton'])){ 10 $name=$_GET['name']; 11 $age=$_GET['age']; 12 13 $link=mysqli_connect($local,$user_name,$pass,$db_name); 14 mysqli_set_charset($link,'utf8'); 15 //これがベース!! 16 $sql=mysqli_query($link,"INSERT INTO sample(name,age)VALUES('".$name."',".$age.")"); 17 mysqli_close($link); 18 require_once 'index2.php'; 19 20 exit; 21 }else{ 22 require_once 'index1.php'; 23 24 exit; 25 } 26 ?> 27//$sqlの中にはtrueが入っています。

php

1index1(最初に画面が出る入力部分) 2<!DOCTYPE html> 3<html lang="en"> 4<head> 5 <meta charset="UTF-8"> 6 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 7 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 8 <title>Document</title> 9</head> 10<body> 11<form action="index.php" nethod="get"> 12 氏名<input type="text" name="name"><br> 13 年齢<input type="text" name="age"><br> 14 15 <input type="submit" name='botton' value='登録'> 16</form> 17 18</body> 19</html>

php

1index2.php(index1.phpのボタンが押された際に飛ぶ表示部分) 2<!DOCTYPE html> 3<html lang="en"> 4<head> 5 <meta charset="UTF-8"> 6 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 7 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 8 <title>Document</title> 9</head> 10<body> 11 <p>登録完了</p> 12</body> 13</html>

試したこと

昨日の時点でできてたことが急にできなくなったからなぜだか理由がわかりません。何を試したらいいかわかりません。教えてほしいです。
昨日できていたことはすべて試しました。

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

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

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

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

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

K_3578

2021/05/19 05:20

とりあえずソースコードはMarkDownでコードブロック化してご提示ください。 ```PHP コード ``` 上記みたいな感じでバッククォートでソースコードを囲んで下さい
Gnr4A

2021/05/19 05:22

付けました!あっているのでしょうか、、
K_3578

2021/05/19 05:25

コードブロック化自体は問題ないのですが、出来れば処理部分毎にブロックを分けて 頂いたほうが見やすくなりますね。 分割する場合はブロック間で1行以上スペースを空けてあげないと一つのブロックと認識されるので 画面右に表示されているプレビューを見ながら調整してみてください。
Gnr4A

2021/05/19 05:59

K_3578 本当にすいません、、今分けました!これで見易くなったでしょうか、、、 m.ts10806 すいません。これ業務用とかではなく課題として出されているものなのでそういうのは考えてません。
date

2021/05/19 06:09

この前にされている質問でxamppのインストールができてなかったようですが、xamppのインストールは終わっていますか?
Gnr4A

2021/05/19 06:26

もうインストール済みでphpもデーターベースもエラーが出ないで触れるような状態です。
m.ts10806

2021/05/19 06:33 編集

質問が受付中のままだとそのように指摘されても仕方ないですね。 業務でなくてもセキュリティ対応はやって当然のものなので、それを教えないカリキュラムなのであればなんの役にも立たない、こなすだけの時間を過ごしていることを忠告しておきます。 エラーハンドリングしてないのも同様。問題を隠したままになるので、臭いものに蓋をしたたままとなります。 いわば「プログラミングとしての基本実装」が欠けているということです。業務関係ありません。
退会済みユーザー

退会済みユーザー

2021/05/19 06:34

獅子は兎を捕らえるにも全力を尽くす。脆弱性を見逃す癖がつかないことを祈ります。
K_3578

2021/05/19 06:35 編集

>課題として出されているものなのでそういうのは考えてません。 課題だからこそやるべきものだと思うんですけど。課題として提出するものに欠陥があったら それは課題としてどうなんだと私は思います。
Gnr4A

2021/05/19 06:56 編集

m.ts10806 質問が受付中になってたのはすいません。今後はしっかりと忘れずに解決した回答に関しましてはベストアンサーに選ぼうと思います。 また、練習ですのでそういうのは考えていません。また改めてセキュリティを導入しようと思ったら勉強します。なので今回は大目に見てください。 m6u ありがとうございます。頑張ります。 K_3578 セキュリティよりもシステム構築を優先にしているのではないでしょうか。それにセキュリティよりもまず課題の仕様をしっかりしないといけないと思います。 気遣いありがとうございました!
m.ts10806

2021/05/19 14:56

最初やらなかったらずっとやりません。習慣ですから。
guest

回答2

0

nethod="get"

method="GET"

GETは小文字でも動くとは思うけど。
methodのスペルミスだけは直さないとなぁ。

action="sql.php"

sql.phpはどれですか?


一度デバッグ環境の整理の話で締めくくる。
コードの転記ミスとか、とても付き合いきれないので。

●php.iniの設定変更
PHPのエラー表示設定について - Qiita

php.iniファイルを特定して、
display_errorsとerror_reportingを設定することで、
webブラウザ上にエラーメッセージを表示してくれるようになる。
teratailでアドバイスを貰いたかったら、まずやる。

●デバッグ用関数
var_dump
var_export

実行時点の変数にどんな値が入っているのかをwebブラウザ上に表示するデバッグ用関数。
通常var_dump()でいいけど、teratail上に再現用コードを貼り付けるときにはむしろvar_export()の方が都合が良かったりもする。
この時点で、この変数に、こういう値が入ってるはず、っていうのを
細かくチェックしていったほうが初学者向き。

●XDebugは、興味があればぜひ
Xdebug: Support — Tailored Installation Instructions

phpinfo()あるいは、コマンドライン上でphp -iで出力される情報を貼り付けるだけで、
適切なXDebugモジュールを示してくれインストール方法も教えてくれるもの。
リモートデバッグという手法で原因追求するのに必要なXDebugは
必須ではないけど、使えると理解が深まりやすくて初学者の域を脱するのが早くなるかもしれない。

投稿2021/05/19 05:58

編集2021/05/19 06:32
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2021/05/19 05:59

何人かからもらったアドバイスを放置しておくから、こうなるんだよ。
Gnr4A

2021/05/19 06:01

回答ありがとうございます。 それをしなければ中身のデータが見えてしまえと思うのですが、今はそれを考えていなく、データベースに値を追加したい。それだけを考えているのでそこのご指摘はありがたいのですが解決方法にはなっていません。
退会済みユーザー

退会済みユーザー

2021/05/19 06:02

仕事の合間に割り込み的にteratailを見ているので、何度も回答を書き直してます。
Gnr4A

2021/05/19 06:03

sql.phpは普通のミスです、、書き直しました、、すいません、、
m.ts10806

2021/05/19 06:28

個人的な意見ですが、デフォルトはgetなのでpostのときだけ指定する派。
退会済みユーザー

退会済みユーザー

2021/05/19 06:30

まぁ何事も、エラーメッセージをwebブラウザ上に表示するように設定変更してからだなー。
guest

0

ベストアンサー

"INSERT INTO sample(name,age)VALUES('".$name."',".$age.")"

これをechoで出力してできたSQLを直接MySQLに入れてみてどうなるか試してみてどうか

投稿2021/05/19 06:00

date

総合スコア1820

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

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

Gnr4A

2021/05/19 06:06

回答ありがとうございます。その行を変数に入れてvar_dumpしてみたのですがtrueしか返ってきません。var_dumpよりもechoの方がいいのでしょうか?
date

2021/05/19 06:15

INSERTの部分だけ別の行においてechoして出てきたSQLをMySQLに入れてみる
Gnr4A

2021/05/19 06:27

改行するということでしょうか
Gnr4A

2021/05/19 06:58

できました!改行してINSERT文を変数に代入してそれをechoしたらsql文が出てきました!それを張り付けたらいけました!ありがとうございました!ベストアンサーに選ばせてもらいたいと思います!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問