Oppure

Loading
23/04/10 19:48
TheWorm
Ciao, sto provando questo semplice codice PHP:

<?php
$output = "No results found.";
if ($_GET['q']) {
	$query = $_GET['q'];
	$output = shell_exec("youp $query");
}
?>

<form>
	<input type="text" name="q">
	<input type="submit" value="Search!">
</form>

<?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
aaa
26/04/10 7:45
Thejuster
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


echo exec('programma.exe parametro');



poi dipende da chi è come e stato scritto quel programma
e come sia impostato per ricevere gli argomenti.
mire.forumfree.it/ - Mire Engine
C# UI Designer
26/04/10 21:12
TheWorm
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.
aaa
28/04/10 14:55
Thejuster
in pratica questo youp cosa dovrebbe fare?
mire.forumfree.it/ - Mire Engine
C# UI Designer
28/04/10 16:44
TheWorm
youp è un semplice script in bash che usa l'input dato per risputare fuori degli URL. In pratica con

"youp qualche argomento qui"

restituisce:

"qualcheargomentoqui.com";
aaa