Dieser Artikel stellt hauptsächlich die Sitzungssteuerung von Single Sign-On vor. Er hat einen gewissen Referenzwert. Jetzt können Freunde in Not darauf verweisen.
Einfach die Sitzung verwenden 🎜>Bevor Sie die Sitzung verwenden, müssen Sie die Sitzung mit session_start() öffnen
Schreiben Sie eine Demo, um sie zu implementieren
<?php session_start(); //使用时必须开启,如果你在php.ini里头修改了配置那么就无需在开启session了 $_SESSION['username'] = 'admin'; //存储session信息为键为username值为admin的一对数据 ?>
<?php session_start(); //使用时必须开启,如果你在php.ini里头修改了配置那么就无需在开启session了 echo $_SESSION['username']; //取出在session里存的username的值 ?>
Ich verwende den Google-Browser, um auf session.php zuzugreifen und dann generieren Wenn eine Sitzung erstellt wird, kann ich den Wert abrufen, wenn ich mit demselben Browser auf session.php zugreife. Wenn ich erneut mit dem Firefox-Browser auf session.php zugreife, wird eine Sitzung neu generiert und ich kann den Wert abrufen, wenn Ich greife erneut auf den Wert von getsession.php zu, aber Sie werden feststellen, dass der Wert nicht derselbe ist, da die beiden Browser unterschiedliche Sitzungs-IDs haben. Wenn Sie die Sitzungs-ID von Firefox ändern, werden Sie feststellen, dass dies der Fall ist Sie sind zwei. Die Werte sind gleich, da der Sitzungswert nur die Sitzungs-ID erkennt.
Wenn wir unseren eigenen virtuellen Host auf unserem eigenen Apache/Nginx-Server konfigurieren.
Meiner ist ein Apache-Server, und Nginx ändert auch die Konfigurationsdatei ----vhost.conf.
<VirtualHost *:80> DocumentRoot "H:\myphp_www\PHPTutorial\WWW\sessoin" ServerName www.test.com ServerAlias <Directory "H:\myphp_www\PHPTutorial\WWW\sessoin"> Options FollowSymLinks ExecCGI AllowOverride All Order allow,deny Allow from all Require all granted </Directory> </VirtualHost>
Lassen Sie uns eine Demo schreiben, um es zu implementieren (ohne zuerst Sicherheit und Leistung zu berücksichtigen)
<?php session_start(); //一定要先开启session $sid = session_id(); //获取到当前的sessionID ?> <a href="http://www.test.com/getsession.php?sid= <?php echo $sid;?> ">跳转</a>
<?php if (isset($_GET['sid'])){ //setcookie('名字','值','有效期','域名'); $sid = $_GET['sid']; //setcookie('PHPSESSID' , $sid); //设置sessionID //或者我们还可以用另一种方式 session_id($sid); //开启session之前 指定一个sessionid } session_start(); echo $_SESSION['username']; ?>
Eine domänenübergreifende Anfrage kann nicht mit Ajax erreicht werden. Für eine domänenübergreifende Anfrage muss Jsonp verwendet werden.
Erstellen Sie eine lokale Datei im Verzeichnis auf derselben Ebene des Sitzungsordners, um die beiden Domänen besser unterscheiden zu können
Was wir jetzt erreichen wollen, ist, dass localhost und www.test.com miteinander kommunizieren können ----- Die Voraussetzung ist die Erstellung einer api.php unter der Sitzung auf einem Server
<?php ?>
Erstellen Sie eine index.html unter lokal
<script src="www.test.com/api.php"></script> <!-- JS代码在浏览器端执行 -->
Ändern Sie die Datei getsession.php unter Sitzung in den folgenden Inhalt:
<?php session_start(); if(isset($_SESSION['uid'])){ echo "用户已登录,id是".$_SESSION['uid']; } else { echo "没有登录"; } ?>
<?php session_start(); $_SESSION['uid'] = 18; //存储session数据键为uid值为18的一对数据 ?>
Ändern Sie die Datei login.php unter localhost in den folgenden Code:
<?php session_start(); $_SESSION['uid'] = 18; //存储session数据键为uid值为18的一对数据 $uid = $_SESSION['uid']; ?> <script src="www.test.com/api.php?uid=<?php echo $uid;?>" ></script>
<?php session_start(); $uid = $_GET['uid']; $_SESSION['uid'] = $uid; ?>
Auf diese Weise verwenden wir Jsonp, um Cross- zu implementieren. Domain-Anfragen. Wenn Sie sich bei einer Website anmelden, meldet sich gleichzeitig eine andere Website an zur chinesischen PHP-Website!
Verwandte Empfehlungen:
So lösen Sie das Problem, dass PHP danach zurückbleibt foreach-Schleife Array-Referenzproblem
So lösen Sie das Problem, dass das Mui-Silder-Plug-In in Vue+Mui fehlschlägt und nicht gezogen werden kann
Das obige ist der detaillierte Inhalt vonSitzungssteuerung für Single Sign-On in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!