Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Sostituzione valore stringa in file di configurazione

    Salve a tutti.
    Ho un problema perchè non riesco a modificare col php il valore di una stringa all'interno del file di configurzazione di uno script.
    In pratica lo script ricevuti i dati da un form, deve accedere al file di configurazione, posizionarsi e sostituire il valore già presente di una variabile con quello nuovo.
    L'utilizzo di fseek non mi viene in aiuto poichè potrei inserire solo un numero limitato di caratteri perima che lo script mangi tutto lo spazio e cominci a sovrascrivere altre variabili.
    Ho provato a inserire la funzione str_replace dentro a fwrite (dopo aver aperto il file con fopen) ma non ottengo il risultato sperato:
    Codice PHP:
    <?php
    include("inc/config.inc.php");
    $username $_POST['username'];
    $password $_POST['password'];
    $nuovonome $_POST['nuovonome'];

    //Controllo autenticazione

    $open fopen("inc/config.inc.php" "r+");
    fwrite($openstr_replace("$nomescript""$nuovonome"$nomescript));
    fclose($open);

    ?>
    dopo aver eseguito il file (senza segnalazioni di errori), apro il file di configurazioni e lo script mi ha sostituito <?php con il valore ricevuto dal form.
    Codice PHP:
    Valorericevuto


    .... 
    Come posso fare?

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    595
    Dovresti fare una cosa del genere
    Codice PHP:
    $open fopen("inc/config.inc.php" "r"); 
    $contenuto fread($open,filesize("inc/config.inc.php"));
    fclose($open);
    // elabori e modifichi la variabile $contenuto
    $open fopen("inc/config.inc.php" "w");
    fwrite($open$contenuto);
    flcose($open); 

  3. #3
    QUindi basta dopo aver letto il contenuto, modificare il valore precedente con quello nuovo con str_replace e incollarlo nel nuovo file?
    Grazie mille dell'aiuto

  4. #4
    per favore mi potete dire come modificare quella variabile una volta letto il file?
    vi scongiuro

  5. #5
    come è strutturato il file in questione? posta un esempio
    Dolcissima è la vita nella totale assenza di senno.

  6. #6
    ecco sarebbe strutturato così:
    Codice PHP:
    <?php
    $variabile1 
    "10";
    $variabileconvaloredamodificare "Prova";
    //Variabili connessione al db
    //Mex di errore
    ?>
    io dovrei modificare il valore Prova con un'altro inserito dall'utente in un form in modo definitivo

  7. #7
    prova così:

    $text = preg_replace("/\$variabile = '(.*)';/i", "\$variabile = '$str';",$text);
    Dolcissima è la vita nella totale assenza di senno.

  8. #8
    Scusa non ho ancora capito.

    Questo è ciò che devo inserire nella parte attiva dellp script:
    Codice PHP:
    <?php
    $open 
    fopen("inc/config.inc.php" "r"); 
    $contenuto fread($open,filesize("inc/config.inc.php")); 
    fclose($open); 
    $text preg_replace("/\$variabile = '(.*)';/i""\$variabile = '$str';",$text);
    $open fopen("inc/config.inc.php" "w"); 
    fwrite($open$contenuto); 
    flcose($open);
    Con questa pagina da modificare:
    Codice PHP:
    <?php
    $numNews 
    '10';
    $nomeNewsBoard 'NewsBoard';
    ...
    per modificare il valore NewsBoard di $nomeNewsBoard con un'altro?

  9. #9
    il avevo usato variabili e nomi d'esempio...
    Codice PHP:
    <?php
    $open 
    fopen("inc/config.inc.php" "r");
    $contenuto fread($open,filesize("inc/config.inc.php"));
    fclose($open);
    $str='NuovoNewsBoard ';
    $contenuto preg_replace("/\\\$nomeNewsBoard = '(.*)';/i""\$nomeNewsBoard = '$str';",$contenuto);
    $open fopen("inc/config.inc.php" "w");
    fwrite($open$contenuto);
    flcose($open);
    Dolcissima è la vita nella totale assenza di senno.

  10. #10
    Ti ringrazio infinitamente.

    Ho dovuto fare qualche modifica ma ci sono riuscito comunque:
    Codice PHP:
    <?php
    include("inc/config.inc.php");

    $open fopen("inc/config.inc.php" "r");
    $contenuto fread($open,filesize("inc/config.inc.php"));
    fclose($open);
    $nome "\$nomeNewsBoard";
    $str "Nuovo";
    $contenuto preg_replace("/\\$nome = '$nomeNewsBoard';/i""\$nomeNewsBoard = '$str';",$contenuto);
    $open fopen("inc/config.inc.php" "w");
    fwrite($open$contenuto);
    fclose($open); 
    ?>

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.