Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Sostituzione corretta funzione deprecata eregi();

    Salve, non riesco a comprendere bene come sostituire la funzione deprecata eregi(); inserita in questo pezzo di codice ottenendo come risultato il solito funzionamento:

    codice:
    if (eregi("impostazioni.inc.php", $_SERVER['PHP_SELF'])){  
    	die ("You can't access this file directly...");  
    }
    Qualcuno mi da una mano o mi suggerisce la strada corretta?

    Grazie!
    Il mondo è diviso in 10 gruppi di persone... chi capisce il binario e chi no!

    http://www.pratesi.net

  2. #2

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    ... e devi fare anche una piccola modifica alla regex (di cui non sono esperto)
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  4. #4

    Re: Sostituzione corretta funzione deprecata eregi();

    Originariamente inviato da Felixfree
    Salve, non riesco a comprendere bene come sostituire la funzione deprecata eregi(); inserita in questo pezzo di codice ottenendo come risultato il solito funzionamento:

    codice:
    if (eregi("impostazioni.inc.php", $_SERVER['PHP_SELF'])){  
    	die ("You can't access this file directly...");  
    }
    Qualcuno mi da una mano o mi suggerisce la strada corretta?

    Grazie!
    Pero' potresti fare anche cosi' come segue, in modo che non sia necessario modificare il nome file per ogni pagina di script.

    codice:
    <?php
    // questa riga serve per dare compatibilita' con windows
    $str = str_replace('\\\', '/', __FILE__);
    
    // il confronto
    if($str == $_SERVER['SCRIPT_FILENAME'])
    
    {
         header("location: ../index.html");
         exit('
    Vietato accedere direttamente al file
    ') ;
    }
    ........
    occhio che i backslashes devono essere 2 . se quoti lo script ne vedrai 3 perche' altrimenti se ne fuma uno come carattere di escape. Nello script devono essere solo 2 \\

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    719
    Originariamente inviato da oly1982
    ... e devi fare anche una piccola modifica alla regex (di cui non sono esperto)
    La modifica alla regex è la seguente:

    Codice PHP:
    preg_match('/impostazioni\\.inc\\.php/'$_SERVER['PHP_SELF']); 
    Spiegazione in poche parole:
    Gli "/", uno all'inizio l'atro alla fine, delimitano la regex.
    Il "." viene escapato con "\" poichè normalmente corrisponderebbe a un qualunque carattere.

    Comunque invece di usare una regex puoi usare un strpos:

    Codice PHP:
    strpos("impostazioni.inc.php"$_SERVER['PHP_SELF']); 
    Il quale è più veloce rispetto a un preg_match e più semplice da scrivere.


  6. #6
    Tutto molto chiaro ed efficiente... vi ringrazio del gentile aiuto!

    Saluti
    F
    Il mondo è diviso in 10 gruppi di persone... chi capisce il binario e chi no!

    http://www.pratesi.net

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.