前提・実現したいこと
自分の投稿した日記を自分だけが閲覧できるシステムを作っています。
MySQLでSQL文を書いているのですが、下記の条件でのINSERT文が書けなくて困っています。
現状のSQL文だとcontents列のどの行にも何も反映されずにいます。
(条件)
ログイン時のメールアドレスの行(contents列)に投稿内容をDBに保存する。
例えば、画像のようにemail:iii@iii,password:123、でログインした場合、それらをキーとして該当のcontentsに記事を保存するようにしたいです。
MySQLを実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージは特にありません。
ブラウザにはエラーメッセージは表示されず、SQL文がスルーされている状態になっています。
###該当のソースコード(homework.phpからafterLogin.phpに遷移するようになっています。)
afterLogin.php↓
<?php session_start(); $link = mysqli_connect("localhost","root","root","memberapp"); if(mysqli_connect_error()){ die("DBへの接続失敗!"); } echo "このユーザーは".$_SESSION['email']."でログインしています。"; //テキストボックスに入力された内容をメールアドレスのidに紐づけてcontentsカラムに登録。 if(!empty($_POST['text'])){ $contents = $_POST['text']; //以下の$sqlが問題です。 $sql = 'INSERT INTO users(contents) VALUES($contents)'; echo "投稿されました。".$_POST['text']; } ?> <form method="post"> <input type="text" name="text" placeholder="Please fill in the blank"> <input type="submit" name="submit" value="投稿"> </form>
homework.php↓
<?php session_start(); $link = mysqli_connect("localhost","root","root","memberapp"); if(mysqli_connect_error()){ die("DBへの接続失敗!"); } //$query = "SELECT * FROM users WHERE name = '".mysqli_real_escape_string($link,$name)."'"; if(array_key_exists('email',$_POST) OR array_key_exists('password',$_POST)){ if($_POST['email'] == ''){ echo "Eメールアドレスを入力してください"; } elseif($_POST['password'] == '') { echo "パスワードを入力してください"; } else { $query = "SELECT password FROM `users` WHERE email = '".mysqli_real_escape_string($link,$_POST['email'])."'"; $result = mysqli_query($link,$query); $row = $result->fetch_assoc(); if(mysqli_num_rows($result) > 0){ if($row["password"] == $_POST['password']){ $_SESSION["email"] = $_POST['email']; header("Location:afterLogin.php"); }else{ echo "入力されたパスと値が一致しません。"; } } else { $query = "INSERT INTO `users` (`email`,`password`) VALUES ('".mysqli_real_escape_string($link,$_POST['email'])."','".mysqli_real_escape_string($link,$_POST['password'])."')"; if(mysqli_query($link,$query)){ echo "登録されました!"; } else { echo "登録に失敗しました!"; } } } } ?> <form method="post"> <input type="email" name="email" placeholder="email"> <input type="password" name="password" placeholder="password"> <input type="submit" name="submit" value="signin"> </form>
補足情報(FW/ツールのバージョンなど)
MySQL
MAMP
分かる方、ご教示お願いいたします。
回答2件
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2018/09/20 02:01