1

PHP ファイルを実行しようとすると、配置できないように見える 2 つの警告が表示されます。警告:

  • PHP の警告: ディレクティブ 'safe_mode' は PHP 5.3 以降では非推奨です 0 行目の不明

  • PHP 警告: mysql_fetch_array() は、パラメーター 1 がリソースであると想定しており、19 行目の /etc/baseconetrial2.php で指定されたブール値です

コード:

<?php


//connectie database


mysql_connect('localhost','heregoestheusername','heregoesthepass');

@mysql_select_db('admin_subscriptions') or die( "Unable to select database");


$type = "proefabonnement";


$checksql = "SELECT * FROM subscriptions where (type_abonnement = '$type' AND  DATE(timestamp) = DATE_SUB( CURDATE( ) , INTERVAL 26))";

$checkresult = mysql_query($checksql);

while ($check = mysql_fetch_array($checkresult)) {





$mail_ontv = "email@emailadress.com"; 

$_POST['onderwerp'] = "Verlopen Trial Account";

    // set datum 
    $datum = date("d.m.Y H:i"); 

    // set ip 
    $ip = $_SERVER['REMOTE_ADDR']; 

    $inhoud_mail .= $_SERVER['SCRIPT_URI'] . "\n\n";

    $inhoud_mail .= "Binnenkort verloopt er een trail account!\n\n\n";  
    $inhoud_mail .= "Bedrijfsnaam: " . $check['bedrijfsnaam'] . "\n\n"; 
    $inhoud_mail .= "Telefoonnummer: " . $check['telefoonnummer'] . "\n\n"; 
    $inhoud_mail .= "E-mail adres: " . $check['email'] . "\n\n"; 
    $inhoud_mail .= "Telefoonnummer contactpersoon: " . $check['telefoonnummercontact'] . "\n\n"; 
    $inhoud_mail .= "E-mail adres contactpersoon: " . $check['emailcontact'] . "\n\n"; 
    $inhoud_mail .= "Hieronder de link voor de klant:\n\n\n";
    $inhoud_mail .= "http://www.basecone.nl/upgrade1?key=".$check['unique']."\n\n"; 

    $inhoud_mail .= "Verstuurd op " . $datum . " via het ip " . $ip . "\n\n"; 

    $headers = "From: BaseconeWizard < wizard@basecone.nl >";

    $headers = stripslashes($headers);
    $headers = str_replace("\n", "", $headers); // Verwijder \n 
    $headers = str_replace("\r", "", $headers); // Verwijder \r 
    $headers = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $headers)); // Slashes van quotes 



    $_POST['onderwerp'] = str_replace("\n", "", $_POST['onderwerp']); // Verwijder \n 
    $_POST['onderwerp'] = str_replace("\r", "", $_POST['onderwerp']); // Verwijder \r 
    $_POST['onderwerp'] = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $_POST['onderwerp'])); // Slashes van quotes 

    mail($mail_ontv, $_POST['onderwerp'], $inhoud_mail, $headers); 







}


?>

みんなありがとう!

4

3 に答える 3

3

PHP警告:mysql_fetch_array()は、パラメーター1がリソースであると想定しています。19行目の/etc/baseconetrial2.phpでブール値が指定されています。

$checksql = "SELECT * FROM subscriptions where (type_abonnement = '$type' AND  DATE(timestamp) = DATE_SUB( CURDATE( ) , INTERVAL 26 DAY))";

DATE_SUBmysql関数のDAYパラメーターに注意してください

また、mysql_real_escape_string()関数を使用して「$type」変数をサニタイズすることをお勧めします

于 2013-03-14T18:18:39.053 に答える
2

コードの一部またはホストがsafe_mode非推奨になっているものを使用しています。

PHP セーフ モードは、共有サーバーのセキュリティ問題を解決するための試みです。この問題を PHP レベルで解決しようとするのはアーキテクチャ的に正しくありませんが、Web サーバーおよび OS レベルでの代替手段はあまり現実的ではないため、多くの人、特に ISP は今のところセーフ モードを使用しています。

@エラー抑制には使用しないでください。エラー ハンドラを使用するか、完全なエラー レポートを有効にします。

mysql_fetch_array()パラメータ 1 はリソースであると想定しています

クエリが失敗したため、ブール値の結果を に渡していmysql_fetch_arrayます。ただし、エラーをキャッチしていないため、わかりません。

$checkresult = mysql_query($checksql) or die(mysql_error());
于 2013-03-14T18:16:45.107 に答える
2

為に

PHP Warning: Directive 'safe_mode' is deprecated in PHP 5.3 and greater in Unknown on line 0

削除またはコメント

safe_mode = "On/Off"あなたのphp.iniから

為にPHP Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /etc/baseconetrial2.php on line 19

使ってください

if (!$checksql) die(mysql_error()); 

クエリで問題が表示されます

于 2013-03-14T18:17:47.003 に答える