Jadual Kandungan
php使用session来保存用户登录信息
Msimatch - Log In
Rumah pembangunan bahagian belakang tutorial php php使用session回保存用户登录信息

php使用session回保存用户登录信息

Jun 13, 2016 pm 12:26 PM
gt lt session

php使用session来保存用户登录信息

php使用session来保存用户登录信息

使用session保存页面登录信息

1、数据库连接配置页面:connectvars.php

<?php//数据库的位置define('DB_HOST', 'localhost');//用户名define('DB_USER', 'root');//口令define('DB_PASSWORD', '19900101');//数据库名define('DB_NAME','test') ;?>
Salin selepas log masuk

2、登录页面:logIn.php

<?php//插入连接数据库的相关信息require_once 'connectvars.php';//开启一个会话session_start();$error_msg = "";//如果用户未登录,即未设置$_SESSION['user_id']时,执行以下代码if(!isset($_SESSION['user_id'])){    if(isset($_POST['submit'])){//用户提交登录表单时执行如下代码        $dbc = mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME);        $user_username = mysqli_real_escape_string($dbc,trim($_POST['username']));        $user_password = mysqli_real_escape_string($dbc,trim($_POST['password']));        if(!empty($user_username)&&!empty($user_password)){            //MySql中的SHA()函数用于对字符串进行单向加密            $query = "SELECT user_id, username FROM mismatch_user WHERE username = '$user_username' AND "."password = SHA('$user_password')";            //用用户名和密码进行查询            $data = mysqli_query($dbc,$query);            //若查到的记录正好为一条,则设置SESSION,同时进行页面重定向            if(mysqli_num_rows($data)==1){                $row = mysqli_fetch_array($data);                $_SESSION['user_id']=$row['user_id'];                $_SESSION['username']=$row['username'];                $home_url = 'loged.php';                header('Location: '.$home_url);            }else{//若查到的记录不对,则设置错误信息                $error_msg = 'Sorry, you must enter a valid username and password to log in.';            }        }else{            $error_msg = 'Sorry, you must enter a valid username and password to log in.';        }    }}else{//如果用户已经登录,则直接跳转到已经登录页面    $home_url = 'loged.php';    header('Location: '.$home_url);}?><html>    <head>        <title>Mismatch - Log In</title>        <link rel="stylesheet" type="text/css" href="style.css" />    </head>    <body>        <h3 id="Msimatch-Log-In">Msimatch - Log In</h3>        <!--通过$_SESSION['user_id']进行判断,如果用户未登录,则显示登录表单,让用户输入用户名和密码-->        <?php        if(!isset($_SESSION['user_id'])){            echo '<p class="error">'.$error_msg.'</p>';        ?>        <!-- $_SERVER['PHP_SELF']代表用户提交表单时,调用自身php文件 -->        <form method = "post" action="<?php echo $_SERVER['PHP_SELF'];?>">            <fieldset>                <legend>Log In</legend>                <label for="username">Username:</label>                <!-- 如果用户已输过用户名,则回显用户名 -->                <input type="text" id="username" name="username"                value="<?php if(!empty($user_username)) echo $user_username; ?>" />                <br/>                <label for="password">Password:</label>                <input type="password" id="password" name="password"/>            </fieldset>            <input type="submit" value="Log In" name="submit"/>        </form>        <?php        }        ?>    </body></html>
Salin selepas log masuk

3、登入页面:loged.php

<?php//使用会话内存储的变量值之前必须先开启会话session_start();//使用一个会话变量检查登录状态if(isset($_SESSION['username'])){    echo 'You are Logged as '.$_SESSION['username'].'<br/>';    //点击&ldquo;Log Out&rdquo;,则转到logOut页面进行注销    echo '<a href="logOut.php"> Log Out('.$_SESSION['username'].')</a>';}/**在已登录页面中,可以利用用户的session如$_SESSION['username']、 * $_SESSION['user_id']对数据库进行查询,可以做好多好多事情*/?>
Salin selepas log masuk

4、注销session页面:logOut.php(注销后重定向到lonIn.php)

<?php//即使是注销时,也必须首先开始会话才能访问会话变量session_start();//使用一个会话变量检查登录状态if(isset($_SESSION['user_id'])){    //要清除会话变量,将$_SESSION超级全局变量设置为一个空数组    $_SESSION = array();    //如果存在一个会话cookie,通过将到期时间设置为之前1个小时从而将其删除    if(isset($_COOKIE[session_name()])){        setcookie(session_name(),'',time()-3600);    }    //使用内置session_destroy()函数调用撤销会话    session_destroy();}//location首部使浏览器重定向到另一个页面$home_url = 'logIn.php';header('Location:'.$home_url);?>
Salin selepas log masuk

  

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah perbezaan antara Huawei GT3 Pro dan GT4? Apakah perbezaan antara Huawei GT3 Pro dan GT4? Dec 29, 2023 pm 02:27 PM

Ramai pengguna akan memilih jenama Huawei apabila memilih jam tangan pintar Antaranya, Huawei GT3pro dan GT4 adalah pilihan yang sangat popular. Apakah perbezaan antara Huawei GT3pro dan GT4? 1. Rupa GT4: 46mm dan 41mm, bahan cermin kaca + badan keluli tahan karat + cangkang belakang gentian resolusi tinggi. GT3pro: 46.6mm dan 42.9mm, bahannya ialah kaca nilam + badan titanium/badan seramik + cangkerang belakang seramik 2. GT4 yang sihat: Menggunakan algoritma Huawei Truseen5.5+ terkini, hasilnya akan lebih tepat. GT3pro: Penambahan elektrokardiogram ECG dan saluran darah serta keselamatan

Bagaimana untuk menetapkan tamat masa sesi dalam Sesi SpringBoot Bagaimana untuk menetapkan tamat masa sesi dalam Sesi SpringBoot May 15, 2023 pm 02:37 PM

Masalah ditemui dalam masa tamat masa pengeluaran projek springboot Masalahnya diterangkan di bawah: Dalam persekitaran ujian, sesi keluar telah dikonfigurasikan dengan menukar aplikasi.yaml Selepas menetapkan masa yang berbeza untuk mengesahkan bahawa konfigurasi keluar sesi berkuat kuasa, masa tamat tempoh ditetapkan terus kepada 8 jam untuk dilepaskan. Walau bagaimanapun, saya menerima maklum balas daripada pelanggan pada waktu tengah hari bahawa masa tamat projek ditetapkan menjadi singkat Jika tiada operasi dilakukan selama setengah jam, sesi akan tamat tempoh dan memerlukan log masuk berulang. Selesaikan masalah pengendalian persekitaran pembangunan: projek springboot mempunyai Tomcat terbina dalam, jadi sesi keluar yang dikonfigurasikan dalam application.yaml dalam projek adalah berkesan. Persekitaran pengeluaran: Keluaran persekitaran pengeluaran ialah

Bagaimana untuk menyelesaikan kegagalan sesi Bagaimana untuk menyelesaikan kegagalan sesi Oct 18, 2023 pm 05:19 PM

Kegagalan sesi biasanya disebabkan oleh tamat tempoh seumur hidup sesi atau penutupan pelayan. Penyelesaian: 1. Memanjangkan hayat sesi; 2. Gunakan storan berterusan;

Apakah yang perlu saya lakukan jika sesi php hilang selepas menyegarkan? Apakah yang perlu saya lakukan jika sesi php hilang selepas menyegarkan? Jan 18, 2023 pm 01:39 PM

Penyelesaian kepada masalah bahawa sesi php hilang selepas menyegarkan: 1. Buka sesi melalui "session_start();" 2. Tulis semua konfigurasi awam dalam fail php 3. Nama pembolehubah tidak boleh sama dengan subskrip tatasusunan; 4. Dalam Hanya semak laluan penyimpanan data sesi dalam phpinfo dan semak sama ada sesio dalam direktori fail berjaya disimpan.

Penyelesaian kepada masalah merentas domain Sesi PHP Penyelesaian kepada masalah merentas domain Sesi PHP Oct 12, 2023 pm 03:00 PM

Penyelesaian kepada masalah silang domain PHPSession Dalam pembangunan pemisahan front-end dan back-end, permintaan merentas domain telah menjadi kebiasaan. Apabila menangani isu merentas domain, kami biasanya melibatkan penggunaan dan pengurusan sesi. Walau bagaimanapun, disebabkan oleh sekatan dasar asal penyemak imbas, sesi tidak boleh dikongsi secara lalai merentas domain. Untuk menyelesaikan masalah ini, kita perlu menggunakan beberapa teknik dan kaedah untuk mencapai perkongsian sesi merentas domain. 1. Penggunaan kuki yang paling biasa untuk berkongsi sesi merentas domain

Apakah masa tamat lalai sesi php? Apakah masa tamat lalai sesi php? Nov 01, 2022 am 09:14 AM

Masa tamat lalai PHP sesi ialah 1440 saat, iaitu 24 minit, yang bermaksud bahawa jika pelanggan tidak memuat semula selama lebih daripada 24 minit, sesi semasa akan tamat tempoh jika pengguna menutup penyemak imbas, sesi akan tamat dan Sesi tidak akan wujud lagi.

Bagaimana untuk menyelesaikan masalah bahawa tetapan tamat masa sesi Springboot2 adalah tidak sah Bagaimana untuk menyelesaikan masalah bahawa tetapan tamat masa sesi Springboot2 adalah tidak sah May 22, 2023 pm 01:49 PM

Masalah: Hari ini, kami menghadapi masalah tamat masa tetapan dalam projek kami dan perubahan pada application.properties SpringBoot2 tidak pernah berkuat kuasa. Penyelesaian: Pelayan.* sifat digunakan untuk mengawal bekas terbenam yang digunakan oleh SpringBoot. SpringBoot akan mencipta contoh bekas servlet menggunakan salah satu contoh ServletWebServerFactory. Kelas ini menggunakan sifat pelayan.* untuk mengkonfigurasi bekas servlet terkawal (tomcat, jeti, dsb.). Apabila aplikasi digunakan sebagai fail perang kepada contoh Tomcat, pelayan.* sifat tidak digunakan. Mereka tidak memohon,

Bagaimana untuk melaksanakan log masuk SMS dalam aplikasi sesi kongsi Redis Bagaimana untuk melaksanakan log masuk SMS dalam aplikasi sesi kongsi Redis Jun 03, 2023 pm 03:11 PM

1. Melaksanakan log masuk SMS berdasarkan sesi 1.1 Carta alir log masuk SMS 1.2 Melaksanakan penghantaran kod pengesahan SMS Perihalan permintaan hujung hadapan: Penerangan kaedah permintaan POST laluan permintaan/pengguna/kod parameter permintaan telefon (nombor telefon) nilai pulangan Tiada antara muka belakang pelaksanaan: @Slf4j@ ServicepublicclassUserServiceImplextendsServiceImplimplementsIUserService{@OverridepublicResultsendCode(Stringphone,HttpSessionsession){/1

See all articles