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

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

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

INSERTとは、行を追加する、コンピュータのデータベース言語SQLにおけるデータ操作言語(DML)ステートメントの1つである

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

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

Q&A

解決済

1回答

1877閲覧

さくらvpsへ移行したら会員登録ができなくなった。php mysql

RESKY420

総合スコア14

INSERT

INSERTとは、行を追加する、コンピュータのデータベース言語SQLにおけるデータ操作言語(DML)ステートメントの1つである

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

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

0グッド

0クリップ

投稿2017/04/30 10:39

編集2017/04/30 12:24

###前提・実現したいこと

vagrant環境で会員登録したらdatabaseへ書き込みができるファイルをそのまま、
さくらvpsへ移行したら、databaseへ書き込みをしなくなりました。
どうすれば解決できるのかがわかりません。同じような症状になった方いましたらおしえてください。

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

登録画面の情報をusersテーブルに Insertしてくれなく解決できなくて困っています。 機能を実装中にエラーメッセージ等はでてきません。 該当テーブルへinsertが止まっている状況です。 database内の内容は閲覧できていて、表示できています。 パーミッションも書き込みはできるuserです。

###該当のソースコード

会員登録画面(php) <?php include 'app/config/database.php'; include 'app/functions/user.php'; include 'public/view/header.php'; ?> <?php // 送信ボタンが押された時に下記を実行 if ( $_POST ) { // 必須項目に情報が入っているかを確認する if ( !empty( $_POST['user_name']) && !empty( $_POST['user_email']) && !empty( $_POST['user_loca']) && !empty( $_POST['user_style']) && !empty( $_POST['user_password']) && !empty( $_POST['user_pass_check']) ) { // 2回入力したEmailがマッチしているかを確認する if ( $_POST['user_password'] === $_POST['user_pass_check']) { // エラーがない場合 $user_name = $_POST['user_name']; $user_email = $_POST['user_email']; $user_loca = $_POST['user_loca']; $user_style = $_POST['user_style']; $user_password = $_POST['user_password']; // 会員登録する save_user($user_name, $user_email, $user_loca, $user_style, $user_password, $mysqli); } else { echo "パスワードが一致しません"; } } else { echo "エラーがあります"; } } ?> <br> <div class="row"> <div class="text-center"> <h2>会員ID登録</h2> </div> </div> <br> <form action="" method="post"> <div class="row"> <div class="large-12 columns"> <label for="user_name">ニックネーム</label> <input type="text" class="form-control" id="user_name" name="user_name"> </div> <div class="large-12 columns"> <label for="user_email">Email</label> <input type="email" class="form-control" id="user_email" name="user_email"> </div> <div class="large-12 columns"> <label for="user_loca">ロケーション</label> <input type="radio" class="form-control" id="user_loca" name="user_loca" value="ストリート">ストリート <input type="radio" class="form-control" id="user_loca" name="user_loca" value="パーク">パーク </div> <div class="large-12 columns"> <label for="user_style">スタンス</label> <input type="radio" class="form-control" id="user_style" name="user_style" value="レギュラー">レギュラー <input type="radio" class="form-control" id="user_style" name="user_style" value="グーフィー">グーフィー </div> <div class="large-12 columns"> <label for="user_password">パスワード</label> <input type="password" class="form-control" id="user_password" name="user_password"> </div> <div class="large-12 columns"> <label for="user_pass_check">パスワードの確認</label> <input type="password" class="form-control" id="user_pass_check" name="user_pass_check"> </div> <div class="text-center"> <button type="submit" class="button large">登録する</button> </form> </div> </div> <?php include 'public/view/footer.php'; --------app/functions/user.php------------- <?php function save_user($user_name, $user_email, $user_loca, $user_style, $user_password, $mysqli) { $user_name = $mysqli->real_escape_string($user_name); $user_email = $mysqli->real_escape_string($user_email); $user_loca = $mysqli->real_escape_string($user_loca); $user_style = $mysqli->real_escape_string($user_style); $user_password = password_hash($user_password, PASSWORD_DEFAULT); $query = "INSERT INTO users( user_name, user_email, user_loca, user_style, user_password ) VALUES( '$user_name', '$user_email', '$user_loca', '$user_style', '$user_password' )"; $result = $mysqli->query($query); echo "<div class='alert alert-success'> <a href='#' class='close' data-dismiss='alert' aria-label='close'>&times;</a> 会員登録が完了しました。</div>"; } function login_user($user_email, $user_password, $mysqli) { $user_email = $mysqli->real_escape_string($user_email); $user_password = $mysqli->real_escape_string($user_password); $query = "SELECT user_id, user_email, user_password FROM users WHERE user_email = '$user_email'"; $result = $mysqli->query($query); // パスワード(暗号化済み)とユーザーIDの取り出し while ($row = $result->fetch_assoc()) { $db_hashed_pwd = $row['user_password']; $user_id = $row['user_id']; } // ハッシュ化されたパスワードがマッチするかどうかを確認 if (password_verify($user_password, $db_hashed_pwd)) { $_SESSION['user'] = $user_id; echo "<div class='alert alert-success'> <a href='#' class='close' data-dismiss='alert' aria-label='close'>&times;</a> ログインが完了しました</div>"; } else { echo "エラーが発生しました"; } }

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

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

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

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

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

yuki84web

2017/04/30 11:17 編集

PHPのerror_reportingのレベル設定の見直し、クエリ実行部分に例外をキャッチして出力するような処理を付ける等を行い、エラー取得を試みて下さい
RESKY420

2017/04/30 12:25

ありがとうございます。上記調べてみます。
guest

回答1

0

自己解決

自己解決いたしました。

投稿2017/04/30 15:02

RESKY420

総合スコア14

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

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

kei344

2017/04/30 15:07

どのように解決したか回答欄に追記いただけませんか?このページに辿り着いた同じ疑問を持つ人のために、ぜひお願いします。
RESKY420

2017/05/03 12:02

ご指摘ありがとうございます。 そもそもphpのバージョンが違ったので合わせて、mysqli拡張がないと駄目だったみたいなのでインストールしたら解決しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問