###前提
現在課題として、会員登録機能を作成しています。
●mysqlバージョン 5.6.41
●PHPバージョン 5.4.45
●実施サーバー : さくらのvps
●FTP : WINSCP
###該当のソースコード
php
1 2 3 4// ログインボタンが押された場合 5// if (isset($_POST["login"])) { 6// 1. ユーザIDの入力チェック 7// if (empty($_POST["userid"])) { // emptyは値が空のとき 8// $errorMessage = '※UserIDまたはPasswordが間違っています。'; 9// } else if (empty($_POST["password"])) { 10// $errorMessage = '※UserIDまたはPasswordが間違っています。'; 11// } else if (!preg_match("/^[A-Za-z0-9]+$/u", $_POST["userid"])){ 12// $errorMessage = '※正規表現外'; 13// } else if (!preg_match("/^[A-Za-z0-9]+$/u", $_POST["password"])){ 14// $errorMessage = '※正規表現外'; 15// } else if (!preg_match("/^.{4,10}$/",$_POST["userid"])){ 16// $errorMessage = '※桁数上'; 17// } else if (!preg_match("/^.{4,10}$/",$_POST["password"])){ 18// $errorMessage = '※桁数上'; 19 20 21// }else{ 22// 23// 24// if (!empty($_POST["userid"]) && !empty($_POST["password"])) { 25// // 入力したユーザIDを格納 26// $userid = $_POST["userid"]; 27// 28// 29// 30// 31// // 2. ユーザIDとパスワードが入力されていたら認証する 32// $dsn = sprintf('mysql:host=%s;dbname=%s;charset=utf8',$db['host'], $db['dbname']); 33// 34// // 3. エラー処理 35// try { 36// $pdo = new PDO($dsn,$db['user'],$db['pass'],array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION)); 37// 38// $stmt = $pdo->prepare('SELECT * FROM userdata WHERE name = ?'); 39// $stmt->execute(array($userid)); 40// 41// $password = $_POST["password"]; 42// 43// if ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 44// // if (password_verify($password, $row['password'])) { 45// if ( $password == $row['password']) { 46// session_regenerate_id(true); 47// 48// //正常に叩かれた場合、SQL実施 49// $sql = "UPDATE userdata SET sdate='$date' WHERE id='1'"; 50// $result = $pdo->query($sql); 51// 52// 53// // 入力したIDのユーザー名を取得 54// $id = $row['id']; 55// $sql = "SELECT * FROM userdata WHERE id = $id"; //入力したIDからユーザー名を取得 56// $stmt = $pdo->query($sql); 57// foreach ($stmt as $row) { 58// $row['name']; // ユーザー名 59// } 60// $_SESSION["NAME"] = $row['name']; 61// header("location: my.php"); 62// exit(); // 処理終了 63// } else { 64// // 認証失敗 65// $errorMessage = '※UserIDまたはPasswordが間違っています。'; 66// } 67// } else { 68// // 4. 認証成功なら、セッションIDを新規に発行する 69// // 該当データなし 70// // $errorMessage = 'ユーザーIDあるいはパスワードに誤りがあります。'; 71// $errorMessage = '※該当データなしUserIDまたはPasswordが間違っています。'; 72// } 73// } catch (PDOException $e) { 74// 75// $errorMessage = header("Location: 500.php"); 76// //$errorMessage = $sql; 77// // $e->getMessage() でエラー内容を参照可能(デバッグ時のみ表示) 78// // echo $e->getMessage(); 79// } 80// } 81// 82// } 83// var_dump($errorMessage);おいおい 84 85
###発生している問題
・ファイル内にコメントアウトをしているソースがない(コメントアウトする)場合
→ページが表示されます
・ファイル内にコメントアウトをしているソースがある(コメントアウトしない)場合
→http 500エラーが発生する
###質問点
●質問1:
ローカルで実施した場合構文エラーは
Parse error: syntax error,~~
として表示される様に、
サーバー上では構文エラーを出すとhttp 500エラーになってしまうのでしょうか?
●質問2:
質問1の様にサーバー上で(Parse error: syntax error,=http 500エラー)の場合
構文が間違っているかの確認はサーバー上ではできないのでしょうか?
確認する方法はありますか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/13 08:45
2019/02/13 08:56