2010-02-07 8 views
51

Ricevo questo messaggio quando provo a eseguire uno script php che devo usare ma che non ho scritto.Come posso sostituire il deprecato set_magic_quotes_runtime in php?

Deprecated: Function set_magic_quotes_runtime() is deprecated in /opt/lampp/htdocs/webEchange/SiteWeb_V5/inc/fpdf.php on line 1810 

Ecco linea 1810:

set_magic_quotes_runtime(0); 

Se questa è una funzione deprecata, cosa posso sostituirla con?

Grazie mille!

risposta

6

Poiché Magic Quotes è ora disattivato per impostazione predefinita (e programmato per la rimozione), è sufficiente rimuovere quella chiamata di funzione dal codice.

+2

Vedere la mia risposta sul perché questo non può essere una buona idea (http://stackoverflow.com/questions/2217955/how-can-i-replace-the-deprecated-set-magic-quotes-runtime-in-php/2218021#2218021) – philfreo

3

Non è necessario sostituirlo con nulla. L'impostazione magic_quotes_runtime è removed in PHP6 pertanto la chiamata della funzione non è necessaria. Se si vuole mantenere la compatibilità può essere saggio di avvolgerla in un'istruzione if verifica phpversion utilizzando version_compare

+1

E di eseguire il backup con codice: 'if (version_compare (PHP_VERSION, '5.3.0', '<')) set_magic_quotes_runtime (0);' –

4
ini_set('magic_quotes_runtime', 0) 

immagino.

+0

l'opzione magic_quotes_runtime per ini_set è anche Rimosso in PHP 6.0.0 – Shawn

64

Controlla se è il primo. Questo dovrebbe sbarazzarsi dell'avvertimento e farà in modo che se il tuo codice viene eseguito su versioni precedenti di PHP, le citazioni magiche siano effettivamente disattivate.

Non basta rimuovere quella riga di codice come suggerito da altri, a meno che non si sia sicuri al 100% che il codice non verrà mai eseguito su qualcosa prima di PHP 5.3.

<?php 
// Check if magic_quotes_runtime is active 
if(get_magic_quotes_runtime()) 
{ 
    // Deactivate 
    set_magic_quotes_runtime(false); 
} 
?> 

get_magic_quotes_runtime NON è obsoleto in PHP 5.3.
Fonte: http://us2.php.net/get_magic_quotes_runtime/

+0

+1 da me, bella spiegazione. –

+0

@stereofrog - sei sicuro? Non ho provato ma la funzione get non lo mostra nella documentazione, mentre la funzione set lo fa chiaramente. – philfreo

4

Aggiornamento alla versione 1.6 di FPDF.

14

Ho utilizzato FPDF v. 1.53 e non ho voluto aggiornarlo a causa dei possibili effetti collaterali. Ho usato il seguente codice secondo Yacoby:

Linea 1164:

if (version_compare(PHP_VERSION, '5.3.0', '<')) { 
    $mqr=get_magic_quotes_runtime(); 
    set_magic_quotes_runtime(0); 
} 

Linea 1203:

if (version_compare(PHP_VERSION, '5.3.0', '<')) { 
    set_magic_quotes_runtime($mqr); 
} 
+0

Questa è davvero la soluzione migliore. +1 –

2

Gust aggiungere il prefisso "@" prima della funzione di essere @set_magic_quotes_runtime (0) ; Non più supportato in PHP 5.4, e non rimuovere o disabilitare la funzione

1

aggiungere questi codice nella parte superiore dello script per risolvere il problema

@set_magic_quotes_runtime(false); 
ini_set('magic_quotes_runtime', 0); 
Problemi correlati