Table des matières
回复讨论(解决方案)
Maison développement back-end tutoriel php 关于ucenter通讯过程的代码的!CSDN大神多!慕名而来!请多指教!

关于ucenter通讯过程的代码的!CSDN大神多!慕名而来!请多指教!

Jun 23, 2016 pm 01:56 PM
代码 大神 通讯

调试ucenter的时候在/control/admin/app.php中遇到了这样一段代码
if($app['extra']['apppath'] && @include $app['extra']['apppath'].'./api/'.$app['apifilename'])
{
//code
}
请问 这个if 后面 include 进来的文件 是执行的结果还是文件本身,还是仅仅返回一个ture or false?
include 进来的是一个.php的文件。
分割线----------------------------------------------------------------------------------------------------------------
运行下面这个文件中的 onping函数

<?php	function onping() {		$ip = getgpc('ip');		$url = getgpc('url');		$appid = intval(getgpc('appid'));		$app = $_ENV['app']->get_app_by_appid($appid);		$status = '';		if($app['extra']['apppath'] && @include $app['extra']['apppath'].'./api/'.$app['apifilename']) {			echo 'in if='.$app['extra']['apppath'].'./api/'.$app['apifilename'];			$uc_note = new uc_note();			$status = $uc_note->test($note['getdata'], $note['postdata']);		} else {			echo 'in else';			$this->load('note');			$url = $_ENV['note']->get_url_code('test', '', $appid);			$status = $_ENV['app']->test_api($url, $ip);		}		if($status == '1') {			echo 'document.getElementById(\'status_'.$appid.'\').innerHTML = "<img  src=\'images/correct.gif\' border=\'0\' class=\'statimg\' \/ alt="关于ucenter通讯过程的代码的!CSDN大神多!慕名而来!请多指教!" ><span class=\'green\'>'.$this->lang['app_connent_ok'].'</span>";testlink();';		} else {			echo 'document.getElementById(\'status_'.$appid.'\').innerHTML = "<img  src=\'images/error.gif\' border=\'0\' class=\'statimg\' \/ alt="关于ucenter通讯过程的代码的!CSDN大神多!慕名而来!请多指教!" ><span class=\'red\'>'.$this->lang['app_connent_false'].'</span>";testlink();';		}	}?>
Copier après la connexion


其中include $app['extra']['apppath'].'./api/'.$app['apifilename'] 这个文件是 其他目录里面的 uc.php文件,前部代码如下!这个文件是utf8版的HDwiki5.1自带的!

<?phperror_reporting(0);define('UC_CLIENT_VERSION', '1.5.1');define('UC_CLIENT_RELEASE', '20100501');define('API_DELETEUSER', 1);			//用户删除 APIdefine('API_RENAMEUSER', 1);            //用户改名 APIdefine('API_GETTAG', 1);                //获取标签 APIdefine('API_SYNLOGIN', 1);              //同步登录 APIdefine('API_SYNLOGOUT', 1);             //同步登出 APIdefine('API_UPDATEPW', 1);              //更改用户密码define('API_UPDATEBADWORDS', 1);        //更新关键字列表define('API_UPDATEHOSTS', 1);           //更新域名解析缓存define('API_UPDATEAPPS', 1);            //更新应用列表define('API_UPDATECLIENT', 1);          //更新客户端缓存define('API_UPDATECREDIT', 1);          //更新用户积分define('API_GETCREDITSETTINGS', 1);     //向 UCenter 提供积分设置define('API_GETCREDIT', 1);             //获取用户的某项积分define('API_UPDATECREDITSETTINGS', 1);  //积分设置define('API_RETURN_SUCCEED', '1');define('API_RETURN_FAILED', '-1');define('API_RETURN_FORBIDDEN', '-2');define('HDWIKI_ROOT', substr(dirname(__FILE__),0,-4));define('UC_CLIENT_ROOT',HDWIKI_ROOT.'/api/uc_client/');define('MAGIC_QUOTES_GPC', get_magic_quotes_gpc());require_once HDWIKI_ROOT.'/api/ucconfig.inc.php';$get = $post = array();$code = @$_GET['code'];parse_str(authcode($code, 'DECODE', UC_KEY), $get);if(MAGIC_QUOTES_GPC) {	$get = _stripslashes($get);}$timestamp = time();if(empty($get)){	exit('Invalid Request');}elseif($timestamp - $get['time'] > 3600){	exit('Authracation has expiried');}
Copier après la connexion


那为什么输出了一个'Invalid Request 呢?这个输出结果对吗?


回复讨论(解决方案)

对于 @include $app['extra']['apppath'].'./api/'.$app['apifilename']
当文件 $app['extra']['apppath'].'./api/'.$app['apifilename'] 不存在时,反对 false
存在时返回 1
这种写法完全没有问题!

如果你的程序出现了问题,请在其他的地方找原因

对于 @include $app['extra']['apppath'].'./api/'.$app['apifilename']
当文件 $app['extra']['apppath'].'./api/'.$app['apifilename'] 不存在时,反对 false
存在时返回 1
这种写法完全没有问题!

如果你的程序出现了问题,请在其他的地方找原因



请问,这样的用法和file_exists的功能有什么区别呢?include进来的内容 对本地程序有影响吗?还是 单纯的判读文件是否存在?

include 进来的肯定是有内容的了,从你贴出的片段不也能看到很多定义吗?
你当然可以先判断文件存在,然后再include
但这样写不是很简洁吗?至少在编译器件要少分析一个语句吧?

问题找到了
是301跳转的问题
换了主机空间原来的独立Ip没有了!
301跳转方面可能有点问题!
多谢各位大神了!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment résoudre le code 28 du pilote Win7 Comment résoudre le code 28 du pilote Win7 Dec 30, 2023 pm 11:55 PM

Certains utilisateurs ont rencontré des erreurs lors de l'installation du périphérique, provoquant le code d'erreur 28. En fait, cela est principalement dû au pilote. Il nous suffit de résoudre le problème du code de pilote Win7 28. Voyons ce qu'il faut faire. . Que faire avec le code 28 du pilote Win7 : Tout d'abord, nous devons cliquer sur le menu Démarrer dans le coin inférieur gauche de l'écran. Ensuite, recherchez et cliquez sur l'option "Panneau de configuration" dans le menu contextuel. Cette option est généralement située en bas ou près du bas du menu. Après avoir cliqué, le système ouvrira automatiquement l'interface du panneau de configuration. Dans le panneau de configuration, nous pouvons effectuer divers paramètres système et opérations de gestion. C'est la première étape du niveau de nettoyage nostalgique, j'espère que cela aidera. Ensuite, nous devons continuer et entrer dans le système et

Que faire si le code d'écran bleu 0x0000001 apparaît Que faire si le code d'écran bleu 0x0000001 apparaît Feb 23, 2024 am 08:09 AM

Que faire avec le code d'écran bleu 0x0000001. L'erreur d'écran bleu est un mécanisme d'avertissement en cas de problème avec le système informatique ou le matériel. Le code 0x0000001 indique généralement une panne de matériel ou de pilote. Lorsque les utilisateurs rencontrent soudainement une erreur d’écran bleu lors de l’utilisation de leur ordinateur, ils peuvent se sentir paniqués et perdus. Heureusement, la plupart des erreurs d’écran bleu peuvent être dépannées et traitées en quelques étapes simples. Cet article présentera aux lecteurs certaines méthodes pour résoudre le code d'erreur d'écran bleu 0x0000001. Tout d'abord, lorsque nous rencontrons une erreur d'écran bleu, nous pouvons essayer de redémarrer

Résoudre le problème « erreur : initialiseur attendu avant le type de données » dans le code C++ Résoudre le problème « erreur : initialiseur attendu avant le type de données » dans le code C++ Aug 25, 2023 pm 01:24 PM

Résolvez le problème « erreur : initialiseur attendu avant le type de données » dans le code C++. Dans la programmation C++, nous rencontrons parfois des erreurs de compilation lors de l'écriture du code. L'une des erreurs courantes est « erreur : initialiseur attendu avant le type de données ». Cette erreur se produit généralement dans une déclaration de variable ou une définition de fonction et peut empêcher le programme de se compiler correctement ou

L'ordinateur affiche fréquemment des écrans bleus et le code est différent à chaque fois L'ordinateur affiche fréquemment des écrans bleus et le code est différent à chaque fois Jan 06, 2024 pm 10:53 PM

Le système Win10 est un très excellent système à haute intelligence. Sa puissante intelligence peut apporter la meilleure expérience utilisateur aux utilisateurs. Dans des circonstances normales, les ordinateurs du système Win10 des utilisateurs n'auront aucun problème ! Cependant, il est inévitable que divers défauts se produisent sur d'excellents ordinateurs. Récemment, des amis ont signalé que leurs systèmes Win10 rencontraient fréquemment des écrans bleus ! Aujourd'hui, l'éditeur vous proposera des solutions aux différents codes qui provoquent des écrans bleus fréquents sur les ordinateurs Windows 10. Jetons un coup d'œil. Solutions aux écrans bleus fréquents de l'ordinateur avec des codes différents à chaque fois : causes des différents codes d'erreur et suggestions de solutions 1. Cause de l'erreur 0×000000116 : Il se peut que le pilote de la carte graphique soit incompatible. Solution : Il est recommandé de remplacer le pilote d'origine du fabricant. 2,

Résoudre l'erreur du code 0xc000007b Résoudre l'erreur du code 0xc000007b Feb 18, 2024 pm 07:34 PM

Code de terminaison 0xc000007b Lors de l'utilisation de votre ordinateur, vous rencontrez parfois divers problèmes et codes d'erreur. Parmi eux, le code de terminaison est le plus inquiétant, notamment le code de terminaison 0xc000007b. Ce code indique qu'une application ne peut pas démarrer correctement, provoquant des désagréments pour l'utilisateur. Tout d’abord, comprenons la signification du code de terminaison 0xc000007b. Ce code est un code d'erreur du système d'exploitation Windows qui se produit généralement lorsqu'une application 32 bits tente de s'exécuter sur un système d'exploitation 64 bits. Cela signifie que ça devrait

Programme de codes à distance universels GE sur n'importe quel appareil Programme de codes à distance universels GE sur n'importe quel appareil Mar 02, 2024 pm 01:58 PM

Si vous devez programmer un appareil à distance, cet article vous aidera. Nous partagerons les meilleurs codes de télécommande universelle GE pour programmer n’importe quel appareil. Qu'est-ce qu'une télécommande GE ? GEUniversalRemote est une télécommande qui peut être utilisée pour contrôler plusieurs appareils tels que les téléviseurs intelligents, LG, Vizio, Sony, Blu-ray, DVD, DVR, Roku, AppleTV, lecteurs multimédias en streaming et plus encore. Les télécommandes GEUniversal sont disponibles en différents modèles avec différentes caractéristiques et fonctions. GEUniversalRemote peut contrôler jusqu'à quatre appareils. Les meilleurs codes de télécommande universels à programmer sur n'importe quel appareil. Les télécommandes GE sont livrées avec un ensemble de codes qui leur permettent de fonctionner avec différents appareils. vous pouvez

Explication détaillée des causes et des solutions du code d'écran bleu 0x0000007f Explication détaillée des causes et des solutions du code d'écran bleu 0x0000007f Dec 25, 2023 pm 02:19 PM

L'écran bleu est un problème que nous rencontrons souvent lors de l'utilisation du système. Selon le code d'erreur, il existe de nombreuses raisons et solutions différentes. Par exemple, lorsque nous rencontrons le problème d'arrêt : 0x0000007f, il peut s'agir d'une erreur matérielle ou logicielle. Suivons l'éditeur pour découvrir la solution. Raison du code d'écran bleu 0x000000c5 : Réponse : La mémoire, le processeur et la carte graphique sont soudainement overclockés ou le logiciel ne fonctionne pas correctement. Solution 1 : 1. Continuez à appuyer sur F8 pour entrer lors du démarrage, sélectionnez le mode sans échec et appuyez sur Entrée pour entrer. 2. Après être entré en mode sans échec, appuyez sur win+r pour ouvrir la fenêtre d'exécution, entrez cmd et appuyez sur Entrée. 3. Dans la fenêtre d'invite de commande, saisissez « chkdsk /f /r », appuyez sur Entrée, puis appuyez sur la touche y. 4.

Que représente le code écran bleu 0x000000d1 ? Que représente le code écran bleu 0x000000d1 ? Feb 18, 2024 pm 01:35 PM

Que signifie le code d'écran bleu 0x000000d1 ? Ces dernières années, avec la popularisation des ordinateurs et le développement rapide d'Internet, les problèmes de stabilité et de sécurité du système d'exploitation sont devenus de plus en plus importants. Les erreurs d’écran bleu sont un problème courant, le code 0x000000d1 en fait partie. Une erreur d'écran bleu, ou « Écran bleu de la mort », est une condition qui se produit lorsqu'un ordinateur subit une panne système grave. Lorsque le système ne parvient pas à récupérer de l'erreur, le système d'exploitation Windows affiche un écran bleu avec le code d'erreur à l'écran. Ces codes d'erreur

See all articles