Heim Backend-Entwicklung PHP-Tutorial phpcms源码 参数param配备

phpcms源码 参数param配备

Jun 13, 2016 pm 12:42 PM
config cookie get post route

phpcms源码 参数param配置

上节说到了application.class.php,当application类加载时,就会对路由进行初始化。

其中调用了param.class.php中的一些函数。

?

现在就来看一下param.class.php这个类

此类中,首先是定义了一个私有变量,用来接收路由配置。

//路由配置
	private $route_config = '';
Nach dem Login kopieren

?看一下它的构造函数吧。

	public function __construct() {
		if(!get_magic_quotes_gpc()) {
			$_POST = new_addslashes($_POST);
			$_GET = new_addslashes($_GET);
			$_REQUEST = new_addslashes($_REQUEST);
			$_COOKIE = new_addslashes($_COOKIE);
		}

		//初始化私有变量$route_config,从系统配置文件route.php中获取
		$this->route_config = pc_base::load_config('route', SITE_URL) ? pc_base::load_config('route', SITE_URL) : pc_base::load_config('route', 'default');
		
		//若route.php中配置了$_POST全局变量,则读取,键值对依依对应
		if(isset($this->route_config['data']['POST']) && is_array($this->route_config['data']['POST'])) {
			foreach($this->route_config['data']['POST'] as $_key => $_value) {
				if(!isset($_POST[$_key])) $_POST[$_key] = $_value;
			}
		}
		//若route.php中配置了$_GET全局变量,则读取,键值对依依对应
		if(isset($this->route_config['data']['GET']) && is_array($this->route_config['data']['GET'])) {
			foreach($this->route_config['data']['GET'] as $_key => $_value) {
				if(!isset($_GET[$_key])) $_GET[$_key] = $_value;
			}
		}
		//get传参方式中传递了分页(page),则对其进行处理
		if(isset($_GET['page'])) {
			$_GET['page'] = max(intval($_GET['page']),1);
			$_GET['page'] = min($_GET['page'],1000000000);
		}
		return true;
	}
Nach dem Login kopieren

?route.php 原始文件

<?php
/**
 * 路由配置文件
 * 默认配置为default如下:
 * 'default'=>array(
 * 	'm'=>'phpcms', 
 * 	'c'=>'index', 
 * 	'a'=>'init', 
 * 	'data'=>array(
 * 		'POST'=>array(
 * 			'catid'=>1
 * 		),
 * 		'GET'=>array(
 * 			'contentid'=>1
 * 		)
 * 	)
 * )
 * 基中“m”为模型,“c”为控制器,“a”为事件,“data”为其他附加参数。
 * data为一个二维数组,可设置POST和GET的默认参数。POST和GET分别对应PHP中的$_POST和$_GET两个超全局变量。在程序中您可以使用$_POST['catid']来得到data下面POST中的数组的值。
 * data中的所设置的参数等级比较低。如果外部程序有提交相同的名字的变量,将会覆盖配置文件中所设置的值。如:
 * 外部程序POST了一个变量catid=2那么你在程序中使用$_POST取到的值是2,而不是配置文件中所设置的1。
 */
return array(
	'default'=>array('m'=>'content', 'c'=>'index', 'a'=>'init'),
);
Nach dem Login kopieren

?

上面讲到了application类初始化中调用了param类中的函数,下面来看一下

获取模型

	/**
	 * 获取模型
	 */
	public function route_m() {
		$m = isset($_GET['m']) && !empty($_GET['m']) ? $_GET['m'] : (isset($_POST['m']) && !empty($_POST['m']) ? $_POST['m'] : '');
		$m = $this->safe_deal($m);
		if (empty($m)) {
			return $this->route_config['m'];
		} else {
			if(is_string($m)) return $m;
		}
	}
Nach dem Login kopieren

?

获取控制器

	/**
	 * 获取控制器
	 */
	public function route_c() {
		$c = isset($_GET['c']) && !empty($_GET['c']) ? $_GET['c'] : (isset($_POST['c']) && !empty($_POST['c']) ? $_POST['c'] : '');
		$c = $this->safe_deal($c);
		if (empty($c)) {
			return $this->route_config['c'];
		} else {
			if(is_string($c)) return $c;
		}
	}
Nach dem Login kopieren

?

获取事件

	/**
	 * 获取事件
	 */
	public function route_a() {
		$a = isset($_GET['a']) && !empty($_GET['a']) ? $_GET['a'] : (isset($_POST['a']) && !empty($_POST['a']) ? $_POST['a'] : '');
		$a = $this->safe_deal($a);
		if (empty($a)) {
			return $this->route_config['a'];
		} else {
			if(is_string($a)) return $a;
		}
	}
Nach dem Login kopieren

?

该类中还定义了三个函数,供调用

	/**
	 * 安全处理函数
	 * 处理m,a,c
	 */
	private function safe_deal($str) {
		return str_replace(array('/', '.'), '', $str);
	}
Nach dem Login kopieren

?cookies函数

	/**
	 * 设置 cookie
	 * @param string $var     变量名
	 * @param string $value   变量值
	 * @param int $time    过期时间
	 */
	public static function set_cookie($var, $value = '', $time = 0) {
		$time = $time > 0 ? $time : ($value == '' ? SYS_TIME - 3600 : 0);
		$s = $_SERVER['SERVER_PORT'] == '443' ? 1 : 0;
		$var = pc_base::load_config('system','cookie_pre').$var;
		$_COOKIE[$var] = $value;
		if (is_array($value)) {
			foreach($value as $k=>$v) {
				setcookie($var.'['.$k.']', sys_auth($v, 'ENCODE'), $time, pc_base::load_config('system','cookie_path'), pc_base::load_config('system','cookie_domain'), $s);
			}
		} else {
			setcookie($var, sys_auth($value, 'ENCODE'), $time, pc_base::load_config('system','cookie_path'), pc_base::load_config('system','cookie_domain'), $s);
		}
	}
Nach dem Login kopieren

?

	/**
	 * 获取通过 set_cookie 设置的 cookie 变量 
	 * @param string $var 变量名
	 * @param string $default 默认值 
	 * @return mixed 成功则返回cookie 值,否则返回 false
	 */
	public static function get_cookie($var, $default = '') {
		$var = pc_base::load_config('system','cookie_pre').$var;
		return isset($_COOKIE[$var]) ? sys_auth($_COOKIE[$var], 'DECODE') : $default;
	}
Nach dem Login kopieren

?

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wo befinden sich die Cookies auf Ihrem Computer? Wo befinden sich die Cookies auf Ihrem Computer? Dec 22, 2023 pm 03:46 PM

Cookies auf Ihrem Computer werden je nach verwendetem Browser und Betriebssystem an bestimmten Orten in Ihrem Browser gespeichert: 1. Google Chrome, gespeichert unter C:\Benutzer\IhrBenutzername\AppData\Local\Google\Chrome\User Data\Default \Cookies usw.

Wo werden Cookies gespeichert? Wo werden Cookies gespeichert? Dec 20, 2023 pm 03:07 PM

Cookies werden normalerweise im Cookie-Ordner des Browsers gespeichert. Wenn Sie die Cookie-Datei direkt öffnen, wird möglicherweise ein verstümmelter oder unleserlicher Inhalt angezeigt. Verwenden Sie daher am besten die von Ihrem Browser bereitgestellte Cookie-Verwaltungsoberfläche zum Anzeigen und Verwalten von Cookies.

So automatisieren Sie Aufgaben mit PowerShell So automatisieren Sie Aufgaben mit PowerShell Feb 20, 2024 pm 01:51 PM

Wenn Sie ein IT-Administrator oder Technologieexperte sind, müssen Sie sich der Bedeutung der Automatisierung bewusst sein. Insbesondere für Windows-Benutzer ist Microsoft PowerShell eines der besten Automatisierungstools. Microsoft bietet eine Vielzahl von Tools für Ihre Automatisierungsanforderungen, ohne dass Sie Anwendungen von Drittanbietern installieren müssen. In diesem Leitfaden erfahren Sie, wie Sie PowerShell zur Automatisierung von Aufgaben nutzen können. Was ist ein PowerShell-Skript? Wenn Sie Erfahrung mit PowerShell haben, haben Sie möglicherweise Befehle zum Konfigurieren Ihres Betriebssystems verwendet. Ein Skript ist eine Sammlung dieser Befehle in einer .ps1-Datei. .ps1-Dateien enthalten von PowerShell ausgeführte Skripte, z. B. grundlegende Get-Help

Wo sind die mobilen Cookies? Wo sind die mobilen Cookies? Dec 22, 2023 pm 03:40 PM

Cookies auf dem Mobiltelefon werden in der Browseranwendung des Mobilgeräts gespeichert: 1. Auf iOS-Geräten werden Cookies unter Einstellungen -> Safari -> Erweitert -> Website-Daten des Safari-Browsers gespeichert. 2. Auf Android-Geräten werden Cookies gespeichert in Einstellungen -> Site-Einstellungen -> Cookies des Chrome-Browsers usw.

Wie Cookies funktionieren Wie Cookies funktionieren Sep 20, 2023 pm 05:57 PM

Das Funktionsprinzip von Cookies besteht darin, dass der Server Cookies sendet, der Browser Cookies speichert und der Browser Cookies verarbeitet und speichert. Detaillierte Einführung: 1. Der Server sendet ein Cookie und der Server sendet einen HTTP-Antwortheader mit dem Cookie an den Browser. Dieses Cookie enthält einige Informationen, wie z. B. die Identitätsauthentifizierung des Benutzers, Präferenzen oder den Inhalt des Warenkorbs. Nachdem der Browser dieses Cookie erhalten hat, wird es auf dem Computer des Benutzers gespeichert. 2. Der Browser speichert Cookies usw.

Detaillierte Erklärung, wo Browser-Cookies gespeichert werden Detaillierte Erklärung, wo Browser-Cookies gespeichert werden Jan 19, 2024 am 09:15 AM

Mit der Popularität des Internets ist die Verwendung von Browsern zum Surfen im Internet zu einer Lebensweise geworden. Bei der täglichen Verwendung von Browsern stoßen wir häufig auf Situationen, in denen wir Kontokennwörter eingeben müssen, z. B. beim Online-Shopping, bei sozialen Netzwerken, bei E-Mails usw. Diese Informationen müssen vom Browser aufgezeichnet werden, damit sie bei Ihrem nächsten Besuch nicht erneut eingegeben werden müssen. Was sind Cookies? Bei einem Cookie handelt es sich um eine kleine Datendatei, die vom Server an den Browser des Benutzers gesendet und lokal gespeichert wird. Sie enthält das Benutzerverhalten einiger Websites.

Hat das Löschen von Cookies irgendwelche Auswirkungen? Hat das Löschen von Cookies irgendwelche Auswirkungen? Sep 20, 2023 pm 06:01 PM

Zu den Auswirkungen des Löschens von Cookies gehören das Zurücksetzen von Personalisierungseinstellungen und -präferenzen, die Beeinträchtigung des Werbeerlebnisses sowie die Zerstörung von Anmeldestatus- und Passwortspeicherfunktionen. Detaillierte Einführung: 1. Wenn Cookies gelöscht werden, wird der Warenkorb auf leer zurückgesetzt und Produkte müssen erneut hinzugefügt werden. Das Löschen von Cookies führt auch dazu, dass der Anmeldestatus auf der Social-Media-Plattform verloren geht Geben Sie den Benutzernamen und das Passwort erneut ein. 2. Dies wirkt sich auf das Werbeerlebnis aus. Wenn die Cookies gelöscht werden, kann die Website unsere Interessen und Präferenzen nicht erkennen und zeigt irrelevante Anzeigen usw. an.

Welche Gefahren birgt das Auslaufen von Cookies? Welche Gefahren birgt das Auslaufen von Cookies? Sep 20, 2023 pm 05:53 PM

Zu den Gefahren von Cookie-Lecks gehören der Diebstahl persönlicher Identitätsinformationen, die Verfolgung des persönlichen Online-Verhaltens und der Diebstahl von Konten. Detaillierte Einführung: 1. Persönliche Identitätsinformationen wie Name, E-Mail-Adresse, Telefonnummer usw. wurden gestohlen. Diese Informationen können von Kriminellen für illegale Aktivitäten wie Identitätsdiebstahl und Betrug verwendet werden. 2. Persönliches Online-Verhalten wird verfolgt und mithilfe von Cookies analysiert werden, können Kriminelle mehr über den Browserverlauf, die Einkaufspräferenzen, Hobbys usw. des Benutzers erfahren. 3. Das Konto wird gestohlen, indem die Anmeldebestätigung umgangen wird und direkt auf das Konto des Benutzers zugegriffen wird.

See all articles