1

我正在尝试运行一个 php 文件,但我收到两个警告,我似乎无法放置。警告:

  • PHP 警告:指令 'safe_mode' 在 PHP 5.3 中已弃用,在第 0 行的 Unknown 和更高版本中已弃用

  • 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_SUB mysql 函数的 DAY 参数

我还建议使用 mysql_real_escape_string() 函数来清理“$type”变量

于 2013-03-14T18:18:39.053 回答
2

您的代码或主机正在使用的某些部分safe_mode已被弃用。

PHP 安全模式是解决共享服务器安全问题的一种尝试。尝试在 PHP 级别解决此问题在架构上是不正确的,但由于 Web 服务器和操作系统级别的替代方案不太现实,许多人,尤其是 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 回答