Visualizzazione dei risultati da 1 a 3 su 3

Discussione: problema con exec()

  1. #1

    problema con exec()

    ciao a tutti, ho questa riga

    exec('wget -O /dev/null http://'.$site_host.'/DB_backup/step_2.php?db_host='.$db_host.'&db_user='.$db_user .'&db_pass='.$db_pass.'&db_name='.$db_name);

    che funziona a metà....

    ossia il valore di $site_host e di $db_host vengono correttamente riportati e recuperati con un get al passo successivo mentre $db_user, $db_pass e $db_name vengono ignorati.

    C'è forse qualche errore di sintassi? Qualcuno sa dirmi qualcosa?
    Grazie mille.
    Alessandra

  2. #2
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Hai provato a stampare la stringa ed eseguire il risultato manualmente per vedere se ti venga accettato? C'è forse uno spazio nella password (-> virgolette)?

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  3. #3
    ciao neroux, grazie mille per la risposta ma alla fine sono riuscita a risovere in un altro modo.
    Posto il codice corretto, magari può servire a chi incontra lo stesso problema.

    Ho trovato un post con problema identico al mio e questo è quello che si dice: posto il testo originale per chiarezza

    Does your URL contain the & character? If so, your wget might be going into the background and shell_exec() might be returning right away. For example, if $url is
    codice:
    "http://www.example.com/?foo=1&bar=2"
    you would need to make sure that it is single-quoted when passed on a command line:
    codice:
    shell_exec("wget '$url'");
    Otherwise the shell would misinterpret the &.
    Escaping command line parameters is a good idea in general. The most comprehensive way to do this is with escapeshellarg():
    codice:
    shell_exec("wget ".escapeshellarg($url));
    Per cui alla fine io ho risolto così:
    codice:
    $escaped_path = "?db_host='.$db_host.'&db_user='.$db_user.'&db_pass='.$db_pass.'&db_name='.$db_name.'&site_host='.$site_host";
    codice:
     shell_exec('wget -O /dev/null http://'.$site_host.'/DB_backup/step_2_script_remoto.php'.escapeshellarg($escaped_path));
    e funziona egregiamente! spero possa essere di aiuto a qualcuno
    Alessandra

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.