PHP初心者です

PHPのセッションハイジャック対策で挙げられている

session_regenerate_id(TRUE);

って必要なんでしょうか

というのも自分でセッションを使った簡易なログインシステムを作りまして、
index.phpからユーザー名とパスワードを入力してDBからユーザー名とパスワードが取り出せたらlogin.phpにいけるというシステムなんですが

ヘッダー情報を閲覧するツールを使いまして。
ログインした際にヘッダー情報に流れるPHPSESSIDを使って
curl --cookie "PHPSESSID=セッションID" localhost/login.php
みたいな感じにクッキー情報にセッションIDを入れてcurlを打ったらログイン画面の内容が表示されました
○○○さん(ユーザー名)こんにちは。 みたいな感じです

session_regenerate_id(TRUE);
を使っていたのでPOSTする際にセッションIDを毎度発行してくれると思ったのですが
同じセッションIDをヘッダー情報に混ぜてもログインできたのでこれはつまり対象がログインしている状態であれば何らかの形でセッションIDを盗みさえできれば乗っ取りも容易ってことですよね?

session_regenerate_id(TRUE);の意味ってなんなんでしょうか
何か根本的な事を理解してない事は自覚してるのですがパっとしません。・。・・

ockeghem氏

index.phpの一部のコードです

if ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    session_regenerate_id(TRUE);
    $_SESSION['username'] = $row['username'];
    header('Location: http://127.0.0.1/login.php');

のようにレコードを取り出せたらsession_regenerate_id(TRUE);を宣言してセッション変数に取り出したユーザー名を入れてlogin.phpに飛ばすという大雑把な流れなんですが、ここら辺に問題があるのでしょうか?