
PHPの学習として、会員制の簡易な交流サイトを作成しているのですが、エラーが発生してしまい、原因が分からない為、ご質問させていただきました。
php
1<?php 2error_reporting(E_ALL); 3ini_set("display_errors",1); 4 5if(isset($_POST['name']) && isset($_POST['pass'])){ 6 7 //pwハッシュ化 8 $hash_pass = password_hash($_POST['pass'], PASSWORD_DEFAULT); 9 $name = $_POST['name']; 10 $dsn = 'mysql:host=localhost;dbname=online_bbs;charset=utf8'; 11 $user = 'root'; 12 $password = ''; 13 14 try{ 15 $db = new PDO($dsn,$user,$password); 16 $db->setAttribute(PDO::ATTR_EMULATE_PREPARES,false); 17 $db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); 18 $stmt = $db->prepare(" 19 INSERT INTO users(name,password) 20 VALUES(:name,:pass) 21 "); 22 $stmt->bindValue(':name',$name,PDO::PARAM_STR); 23 $stmt->bindValue(':pass',$hash_pass,PDO::PARAM_STR); 24 $stmt->execute(); 25 /*$stmt = $db->prepare(" 26 SELECT * FROM users WHERE name = :name AND password=:pass 27 "); 28 $stmt->bindValue(':name',$_POST['name'],PDO::PARAM_STR); 29 $stmt->bindValue(':pass',$hash_pass,PDO::PARAM_STR); 30 stmt->execute();*/ 31 32 //正しく追加されていた場合セッション追加 33 34 if($_SESSION['id'] = $db->lastinsertid()){ 35 session_regenerate_id(true); 36 37 38 39 40 41 }else{ 42 echo '登録に失敗しました'; 43 } 44 45 46 47 48 }catch(PDOExcption $e){ 49 die('エラー:' . $e->getMessage()); 50 } 51 52} 53 54?> 55 56 57<!DOCTYPE html> 58<html> 59<head> 60 <meta charset="utf-8"> 61 <title>user_create</title> 62</head> 63<body> 64 <form action="create_user.php" method="post"> 65 <p>名前:<input type="text" name="name"></p> 66 <p>パスワード:<input type="password" name="pass"></p> 67 <input type="submit" value="登録"> 68 </form> 69</body> 70</html>
上記コードは、ユーザーの新規登録処理の部分なのですが、実行しますと、以下のエラーが発生してしまいます。
「Warning: session_regenerate_id(): Cannot regenerate session id - session is not active in C:\xampp\xampp\htdocs\online_bbs\create_user.php on line 35」
どなたか、ご助言頂けましたら幸いです。よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー