第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP SESSION 未定義變量

PHP SESSION 未定義變量

PHP
嚕嚕噠 2023-07-08 17:27:38
晚上好,我正在開發(fā)一個小型大學(xué)項目。我正在創(chuàng)建一個網(wǎng)站,人們可以使用 PHP 發(fā)布他們用過的物品來出售它們或與另一個對象交換它們(一種 eBay,但簡單 100000 倍),這對我來說是新的。為了簡單起見,填寫連接表單(connexion.php)后,用戶會被重定向到他自己的個人資料(profil.php),其中顯示他的用戶名和電子郵件(從數(shù)據(jù)庫獲取后)。如下所示:///////////connexion.php : //////////<?phpsession_start();?try{? ? $bdd = new PDO('mysql:host=localhost;dbname=espace_membre;charset=utf8', 'root', '');}catch (Exception $e){? ? ? ? die('Erreur : ' . $e->getMessage()); //message d'erreur au cas o&ugrave; la connexion &eacute;choue}if(isset($_POST['formconnect']))? //v&eacute;rifie que le bouton pour se connecter est enclench&eacute;?{? $mailconnect = htmlspecialchars($_POST['mailconnect']);?? $mdpconnect = sha1($_POST['mdpconnect']);? if(!empty($mailconnect) AND !empty($mdpconnect))? {? ? ?$requser=$bdd->prepare("SELECT * FROM membres WHERE email = ? AND mdp= ?");??? ? ?$requser->execute(array($mailconnect,$mdpconnect));? ? ?$userexist=$requser->rowcount();?? ? ?if($userexist==1)? ? ?{? ? ? ? ? $userinfo=$requser->fetch();? ? ? ? ? $_SESSION['id']=$userinfo['id'];? ? ? ? ? $_SESSION['pseudo']=$userinfo['pseudo'];? ? ? ? ? $_SESSION['email']=$userinfo['email'];? ? ? ? ? header("Location: profil.php?id=".$_SESSION['id']);? ? ?}? ? ?else? ? ?{? ? ? $erreur="password or mail not valid" ;?? ? ?}? }? else? {? ? $erreur =" please complete all inputs " ;?? }}??>每當(dāng)我想打印類似的東西? <h2>welcome to your profile,<?php echo $userinfo['pseudo']?> </h2>變量 $userinfo['pseudo'] 變成我的用戶的昵稱,這就是我想要的。但是,由于我不知道,我無法讓這些變量在任何其他頁面上工作,并且我不斷收到此錯誤:** 注意:未定義的變量:C:\wamp\www\projet2\formulaireajout.php 第 64 行的 userinfo**我創(chuàng)建了另一個頁面,供用戶填寫表單來發(fā)布內(nèi)容
查看完整描述

1 回答

?
搖曳的薔薇

TA貢獻1793條經(jīng)驗 獲得超6個贊

在連接頁面上,您將 URL 中的 id 傳遞到配置文件頁面,如下所示:header("Location: profil.php?id=".$_SESSION['id']);配置文件頁面上查找要設(shè)置的 $_GET['id'] 的函數(shù)得到滿足,因為 id 是在 URL 中設(shè)置的。

但是,如果我是用戶并單擊這些鏈接:

  • 版本配置文件.php

  • 修改器mdp.php

  • 斷開連接.php

  • 添加表單.php

id 不會在 URL 或頁面請求中傳遞,但您的代碼仍在尋找要在這些頁面上設(shè)置的值以及下面的代碼片段:

if(isset($_GET['id']) AND $_GET['id'] > 0)

{

  $getid=intval($_GET['id']);

  $requser= $bdd -> prepare('SELECT * FROM membres WHERE id= ?');

  $requser->execute(array($getid));

  $userinfo=$requser->fetch();

}

由于未設(shè)置 $_GET['id'] ,因此$userinfo未定義此變量以便稍后在代碼中使用。僅當(dāng) $_GET['id'] 設(shè)置且大于 0 時才會設(shè)置。


我的建議是,由于您已經(jīng)在會話中設(shè)置了用戶 ID,因此請在其他頁面上調(diào)用 $_SESSION 變量。因此,只要您繼續(xù)啟動會話,就像現(xiàn)在位于文件頂部一樣,并且不結(jié)束或銷毀會話,您應(yīng)該能夠訪問其他頁面上 $_SESSION 數(shù)組的值:


      $_SESSION['id']=$userinfo['id'];

      $_SESSION['pseudo']=$userinfo['pseudo'];

      $_SESSION['email']=$userinfo['email'];

對于您已在會話中設(shè)置的值,只需稍后在其他頁面上的代碼中回顯這些值即可。所以調(diào)用它應(yīng)該可以在其他頁面上工作:


<?php echo $_SESSION['pseudo']?></h3>


當(dāng)然,如果您想在用戶“注銷”時銷毀會話和/或取消設(shè)置值。此外,由于值位于會話中,因此您不需要在每個頁面上對相同值進行數(shù)據(jù)庫查找,除非它們將要更改或者您正在查找尚未存儲在會話中的新數(shù)據(jù)。


希望這可以幫助。


查看完整回答
反對 回復(fù) 2023-07-08
  • 1 回答
  • 0 關(guān)注
  • 155 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號