PHP Script ändern damit mysqli / PHP 7.2 funktioniert

Status
Dieses Thema wurde gelöst! Zur Lösung gehen…
Also ich habe das mysql_real_escape_string entfernt, dann funktioniert das Skript.
Das ist ein fataler Fehler!
Übersetzt aus der PHP-Doku:
mysqli_real_escape_string - Bricht Sonderzeichen in einer Zeichenkette für die Verwendung in einer SQL-Anweisung um, wobei der aktuelle Zeichensatz der Verbindung berücksichtigt wird
Ohne das Escape wirst du Probleme bekommen, wenn z.B. Zeichen wie ' vorkommen
 
Das ist ein fataler Fehler!
Übersetzt aus der PHP-Doku:

Ohne das Escape wirst du Probleme bekommen, wenn z.B. Zeichen wie ' vorkommen
<br />
<b>Warning</b>: mysqli_real_escape_string() expects exactly 2 parameters, 1 given in <b>/www/htdocs/guestcal8/admin/pages/entries.php</b> on line <b>71</b><br />

Ich weiß nicht wie ich diesen Fehler beheben kann. :(
 
PHP:
function kill_magic_quotes()

{

    if (get_magic_quotes_gpc())

    {

        $in = array(&$_GET, &$_POST, &$_COOKIE);

        while (list($k,$v) = each($in)) {

            foreach ($v as $key => $val) {

                if (!is_array($val)) {

                    $in[$k][$key] = stripslashes($val);

                    continue;

                }

                $in[] =& $in[$k][$key];

            }

        }

        unset($in);

    }

}

Diese Funktion ist unter PHP 8 auch nicht mehr ausführbar?
Was wäre eine Alternative?
 
Zuletzt bearbeitet:
Ich würde das komplette Script fachgerecht entsorgen und neu schreiben. Wer weiß, was da noch alles für Fallen drin stecken.
 
Aus der Doku zu each
Warnung
Diese Funktion ist seit PHP 7.2.0 als DEPRECATED (veraltet) markiert und wurde in PHP 8.0.0 ENTFERNT. Von der Verwendung dieser Funktion wird dringend abgeraten.
Aus der Doku zu get_magic_quotes_gpc
Warnung
Diese Funktion ist seit PHP 7.4.0 als DEPRECATED (veraltet) markiert und wurde in PHP 8.0.0 ENTFERNT. Von der Verwendung dieser Funktion wird dringend abgeraten.
Mit anderen Worten: die komplette Funktion ist sinnlos.

Und bitte immer die Formatierungsmöglichkeiten des Forum nutzen, wenn du Quellcode postest:
1682162235157.png
 
PHP:
$nr=rand(1, 1000000);
$err_msg='<p>Der Fehler Nr. '.$nr.' ist aufgetreten. <a href="mailto:'.$admin_mail.'?subject=Fehler '.$nr.'">'.$admin_mail.'</a></p>';

switch ($type)
{
    case 'mysql':
    if (true==isset($sql))
    {
        error_log($nr." ".mysqli_error($link)." ".$sql." ".session_id());
    }
    else
    {
        error_log($nr." ".mysqli_error($link)." ".session_id());
    }
    die(head("Fehler").$err_msg.foot());
    break;

    case 'mail':
    error_log($nr." ".$mail->ErrorInfo." ".session_id());
    die(head("Fehler").$err_msg.foot()); 
    break;

    case 'input':
    $data="";
    foreach ($_POST AS $key=>$val)
    {
        $data.=$key."=".$val."|"; 
    }
    $e_msg=str_replace("&nbsp;", "", $error_msg);
    error_log($site.": ".$e_msg.PHP_EOL.$data."|".session_id());
    break;

    case 'custom':
    error_log($nr." ".$error_msg." ".session_id());
    die(head("Fehler").$err_msg.foot()); 
}
 
Status
Dieses Thema wurde gelöst! Zur Lösung gehen…
Zurück