ホームページ > バックエンド開発 > PHPチュートリアル > PHP の session_start() が require_once と競合する場合はどうすればよいですか?

PHP の session_start() が require_once と競合する場合はどうすればよいですか?

WBOY
リリース: 2016-06-23 14:16:54
オリジナル
847 人が閲覧しました

PHP セッション Baidu App Engine require require_once

Baidu の BAE プラットフォームでデバッグしました。 。 BCMS-SDKを使用してメールエフェクトを作成したいと考えています。 。
現在問題があります:
session_start(); と require_once ("Bcms.class.php"); の 2 つのステートメントがあり、どちらが前に書かれていても、後者で停止します。 。
たとえば、
echo "01";
$secretKey = '';
$host = 'bcms.api.duapp.com'; echo "2";
require_once ( "Bcms.class.php" ) ;
echo "4";
echo "3";
出力 0124、
php
echo "01";
$accessKey = '';
$host = 'bcms.api.duapp.com'; 2";
require_once ("Bcms.class.php");
echo "4";
出力 012、プログラムは require_once でハングします。
しかし、次のように書くと:
require_once ( "Bcms.class.php" );
echo "01";
コードはエラーを報告しません。ページで、500 エラーが表示され、サーバーが直接ハングアップします。 。
その理由と解決方法?


ディスカッションへの返信 (解決策)

session_start(); あなたが言及した 500 エラーについては、php エラー プロンプトを開いて何が問題かを知ることができます。

しかし、前のコードは規則に反しています: session_start(); の前に echo があります...当然、エラーが報告されます
それを避けるためにプログラムの先頭で ob_start(); を使用することができます

それ以上のコードですが、少なくともローカルでデバッグをパスする必要があります ローカル環境がない場合は、まずファイル名 Bcms.class.php が正しく記述されているかどうか、特に大文字と小文字が正しく記述されているかどうかを確認してから、ファイルが存在するかどうかを確認してください
問題がない場合は、コードを投稿してください

equire_once ( "Bcms.class.php" ) ;session_start();echo "01";session_start()前面不能有输出。
ログイン後にコピー
ログイン後にコピー

session_start(); あなたが言及した 500 エラーについては、php エラー プロンプトを開いて何が問題だったのかを知ることができます。 額。 。 BAE をリモートでデバッグしていますが、どうすれば有効にできますか? 。

しかし、前のコードは規則に反しています: session_start(); の前に echo があります...当然、エラーが報告されます
それを避けるためにプログラムの先頭で ob_start(); を使用することができます

それ以上のコードですが、少なくともローカルでデバッグをパスする必要があります
ローカル環境がない場合は、まずファイル名 Bcms.class.php が正しく記述されているかどうか、特に大文字と小文字が正しく記述されているかどうかを確認してから、ファイルが存在するかどうかを確認してください

問題がない場合は、コードを投稿してください。ローカルでデバッグします。問題ありません。 。ハングすることはなく、require後の出力は表示できるのですが、BAE上でこう書くと、012

<?phpsession_start();//require_once ( "Bcms.class.php" ) ;//session_start();echo "01";$accessKey = '';$secretKey = '';$queueName = '';//消息队列名$host = 'bcms.api.duapp.com';echo "2";require_once ( "Bcms.class.php" ) ;echo "4";
ログイン後にコピー

equire_once ( "Bcms.class.php" ) ;session_start();echo "01";session_start()前面不能有输出。
ログイン後にコピー
ログイン後にコピー
としか出力されません(実際、ローカルでは問題ありません)。 、ローカルでは常に問題はありませんでしたが、BAEにエラーを報告してもまだ機能しません。 。エラーメッセージの開き方がわかりません。 。


echo "2";
var_dump(file_exists('Bcms.class.php'));


Bcms.class.php で何が行われているかを説明する必要がありますね。

in

echo "2";

var_dump(file_exists('Bcms.class.php'));


Bcms.class.php で何が行われているかを説明する必要がありますね。 それが、Baidu が提供するメッセージング サービスのカプセル化クラスです。 。電子メール/テキスト メッセージの送信などの効果を実現するために使用します。 。おそらくPHPmailerに似たものと思われます。 。
Baidu Cloud Message Service (以下、BCMS) は、2011 年 7 月に Baidu によって設計および開発され、2011 年末に開始された中国初のメッセージング サービス プラットフォームです。メッセージ サービスのすべての操作は、BaiduBcms クラスにカプセル化されます。このクラスの簡単な初期化を通じて、Baidu メッセージ サービスを使用するためのさまざまな内部メソッドを呼び出すことができます。
あなたと同じように変更すると、確かにメールが送信され、bool true という文が出力されました。
しかし、file_exists は require_once を置き換えることができます。これはなぜでしょうか。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート