3

私のコードは

<?php
if ($_POST['hiddensms']) {
    ini_set("allow_url_fopen", "ON");
    ini_set("allow_url_include", "ON");
    $smsno = explode(',', $_POST['hiddensms']);
    foreach ($smsno as $mono) {
        $baseurl         = "http://api.xxxxxxxxxxxx.com";
        $sql_q           = "select firstname,lastname from tbl_newsletter where phone='" . $mono . "'";
        $resultcount     = mysql_query($sql_q);
        $row_total_count = mysql_fetch_array($resultcount);
        $first_name      = $row_total_count['firstname'];
        $last_name       = $row_total_count['lastname'];
        if ($_POST['sel_name_sms'] == 'FirstName') {
            $setname = $first_name;
        } else {
            $setname = $last_name;
        }
        $smsBodyText = $_POST['sal_sms'] . ' ' . $setname . '\n';
        $text        = urlencode($smsBodyText . $_POST['msg_body']);
        $to          = $mono;
        $url         = "$baseurl/http/auth?user=$user&password=$password&api_id=$api_id";
        // do auth call
        $ret         = file($url);
        // explode our response. return string is on first line of the data returned
        $sess        = explode(":", $ret[0]);
        if ($sess[0] == "OK") {
            $sess_id = trim($sess[1]); // remove any whitespace
            $url     = "$baseurl/http/sendmsg?user=xx&password=xxxxx&api_id=3370743&to=$to&text=$text";
            //ht$ret = file($url);
            $send    = explode(":", $ret[0]);
            if ($send[0] == "ID") {
                echo "success\nmessage ID: " . $send[1];
            } else {
                echo "send message failed";
            }
        } else {
            echo "Authentication failure: " . $ret[0];
        }
    }
}
?>

API で SMS を送信しようとしていますが、このエラーが表示されます

警告: file() [function.file]: 622 行目の /xxxxxxxsubscriber-list.php のサーバー構成で URL ファイル アクセスが無効になっています 警告: file(http://api.xxxxx.com/http/auth?user =xx&xx&api_id=xx) [function.file]: ストリームを開くことができませんでした: /xxxxxx/subscriber-list.php の 622 行目に適切なラッパーが見つかりませんでした 認証エラー:

私は.htaccessのように設定します

<IfModule mod_php5.c>
php_admin_value allow_url_fopen On
php_admin_value allow_url_include On
</IfModule>

しかし、それは機能していません。私は何をすべきかわからない、何かアイデアがあれば、私を助けてください

私は彼らが提案するいくつかのウェブで検索しました php.ini

allow_url_fopen = On
allow_url_include = On

しかし、私はアクセスできないphp.iniので、これを解決する他の方法はありますか?

4

1 に答える 1

1

このエラーは、サーバーで allow_url_fopen がオフになっていることを示しています。Web ルートに配置するユーザー定義の php.ini ファイルを無視するようにサーバーを構成することは可能です。彼らはこの問題を経験したため、おそらく代替のハッキング (htaccess ファイルなど) からもブロックされたのでしょう。

allow_url_fopen は、セキュリティ上の理由からホストによって無効にされています! 無効にする必要があり、無効のままにする必要があります。だから、それをオンにしようとするのをやめてください。彼らは、何を知っている人が実行したり、ハッキングされたり、サーバー上の他の人を危険にさらしたりすることを望んでいません。

これを回避する唯一の方法は、新しいホストを取得するか、root アクセス権を持つ VPS または専用サーバーを取得することです。

allow_url_fopen の代わりに cURL があります。カールでも同じことができます。

cURL の例: http://php.net/manual/en/curl.examples-basic.php

于 2015-01-27T20:35:25.543 に答える