2016-06-19 9 views
-1

オープンカートのサイトに問題があります。私はダイレクト・アドミニストレーターを通してcron-jobを実行したい。そして私は私の電子メールでこれを取得する:PHP Notice:未定義のインデックス:SERVER_PORT in /xxx/xxx/xxx/domain.com/public_html/system/startup.php on line 59

if ((isset($_SERVER['HTTPS']) && (($_SERVER['HTTPS'] == 'on') || ($_SERVER['HTTPS'] == '1'))) || (isset($_SERVER['SERVER_PORT'])) && ($_SERVER['SERVER_PORT'] == 443)) {

説明:あなたのように思える

PHP Notice: Undefined index: SERVER_PORT in /xxx/xxx/xxx/domain.com/public_html/system/startup.php on line 59

コード:これまで

// Check if SSL 
if ((isset($_SERVER['HTTPS']) && (($_SERVER['HTTPS'] == 'on') || ($_SERVER['HTTPS'] == '1'))) || $_SERVER['SERVER_PORT'] == 443) { 
    $_SERVER['HTTPS'] = true; 
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https' || !empty($_SERVER['HTTP_X_FORWARDED_SSL']) && $_SERVER['HTTP_X_FORWARDED_SSL'] == 'on') { 
    $_SERVER['HTTPS'] = true; 
} else { 
    $_SERVER['HTTPS'] = false; 
} 
+0

[PHP: "通知:未定義変数"と "通知:未定義インデックス"](http://stackoverflow.com/questions/4261133/php-notice-undefined-variable-and-notice-undefined- index) – andrewsi

+0

あなたのcronジョブに関する情報はあまりありませんが、 'SERVER_PORT'(他のいくつかのキーと一緒に' $ _SERVER'と一緒に)はコマンドラインで意味をなさないので存在しません。 –

答えて

0

変更このif ((isset($_SERVER['HTTPS']) && (($_SERVER['HTTPS'] == 'on') || ($_SERVER['HTTPS'] == '1'))) || $_SERVER['SERVER_PORT'] == 443) {

$_SERVERアレイ、SERVER_PORTは利用できません - PHPが通知を表示しています。あなたは埋めることになる(Webサーバーから、私は本当の問題は、コマンドがcronで呼ばれていることであると信じていたキーが値が443

+0

こんにちはムハンマド、 私はそれを置き換えました。今すぐ次のエラーが表示されます。: PHP解析エラー:構文エラー、予期しない 'if'(T_IF)in /xxx/xxx/domain.com/public_html/system/system/startup.php on line 59 –

+0

こんにちはムハンマド、返信のおかげで再び、私はコードを置き換えると、ウェブサイト全体はもはや働いていない。だから私はこれも動作していないと思う。 –

1

に等しいかどうかをチェックする前に、アレイ内に存在するかどうかをチェックすることにより、それを修正することができず、 _SERVERアレイ)。 PHPファイルでは、SERVER_PORT(例:_SERVER['DOCUMENT_ROOT']など)以外のすべてのキーは、設定されていない場合は妥当な値で埋められます。

if (!isset($_SERVER['SERVER_PORT'])) { 
    $_SERVER['SERVER_PORT'] = getenv('SERVER_PORT'); 
} 

とPHPのコマンドを実行する前に環境変数としてSERVER_PORTを定義する:問題の一方(59)の前に次の行を追加

してみてください。ポートが常に80または443の場合は、環境から取得する代わりに直接設定することもできます。

1

system/startup.phpのopencartコードのバグのようです。 あなたは私のためのソリューション行った作業の後に未解決の問題here

を見ることができます:
変更ライン

if ((isset($_SERVER['HTTPS']) && (($_SERVER['HTTPS'] == 'on') || ($_SERVER['HTTPS'] == '1'))) || $_SERVER['SERVER_PORT'] == 443) { 

if ((isset($_SERVER['HTTPS']) && (($_SERVER['HTTPS'] == 'on') || ($_SERVER['HTTPS'] == '1'))) || (isset($_SERVER['HTTPS']) && $_SERVER['SERVER_PORT'] == 443)) { 

あなたはこのようにあなたがドンvqmodを使用しない場合、それは良いでしょうとコアファイルを変更しないでください。

関連する問題