Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
PHP - shell_exec().. ?
Forum - PHP - shell_exec().. ?

Avatar
TheWorm (Member)
Rookie


Messaggi: 24
Iscritto: 13/09/2009

Segnala al moderatore
Postato alle 21:48
Venerdì, 23/04/2010
Ciao, sto provando questo semplice codice PHP:

Codice sorgente - presumibilmente PHP

  1. <?php
  2. $output = "No results found.";
  3. if ($_GET['q']) {
  4.         $query = $_GET['q'];
  5.         $output = shell_exec("youp $query");
  6. }
  7. ?>
  8.  
  9. <form>
  10.         <input type="text" name="q">
  11.         <input type="submit" value="Search!">
  12. </form>
  13.  
  14. <?php echo $output; ?>



Quello che voglio fare è semplice: L'utente ha un campo di testo dove inserire una query che viene salvata in $query. Questa viene passata ad un programma che la usa per ricavare un URL. Quindi in teoria $output dovrebbe contenere l'URL generato tramite shell_exec().
Il problema è che non mi funziona qualcosa. Il programma "youp" stampa un messaggio di errore mentre se lo eseguo da una normale shell unix funziona correttamente. Quindi ho pensato che $query non contenesse il testo giusto. Però se sostituisco "youp" con "echo" viene stampato proprio quello che dovrebbe essere stampato. In pratica non dovrebbe andare in errore... Non mi sono spiegato bene eh?
Non capisco cosa ci sia di sbagliato nel codice! Forse shell_exec() esegue il comando passato con certe limitazioni? Perchè restituisce un valore diverso da quello che ho con una shell unix?

CIOE' il problema è questo: perchè se eseguo "youp qualcosa" su una shell di sistema funziona mentre se provo in PHP shell_exec("youp qualcosa") non funzia??

Il problema è il codice PHP o il programma youp?


Grazie

PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2305
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 9:45
Lunedì, 26/04/2010
sinceramente no sò cosa sia questo youp.

ma se fossi in tè per testare proverei prima a passare un semplice argomento al programma manualmente per testarlo se funziona, e dopo eseguirlo tramite shell.

di norma io utilizzo

Codice sorgente - presumibilmente Plain Text

  1. echo exec('programma.exe parametro');



poi dipende da chi è come e stato scritto quel programma
e come sia impostato per ricevere gli argomenti.


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
TheWorm (Member)
Rookie


Messaggi: 24
Iscritto: 13/09/2009

Segnala al moderatore
Postato alle 23:12
Lunedì, 26/04/2010
Grazie per la risposta. Manualmente funziona, come avevo cercato di spiegare. E' evidente che il problema risiede allora in "youp". Il problema è che mi sfugge cosa ci sia di sbagliato se manualmente, da shell, youp funziona. In PHP no.

PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2305
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 16:55
Mercoledì, 28/04/2010
in pratica questo youp cosa dovrebbe fare?


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
TheWorm (Member)
Rookie


Messaggi: 24
Iscritto: 13/09/2009

Segnala al moderatore
Postato alle 18:44
Mercoledì, 28/04/2010
youp è un semplice script in bash che usa l'input dato per risputare fuori degli URL. In pratica con

"youp qualche argomento qui"

restituisce:

"www.qualcheargomentoqui.com"

PM Quote