[PHP] shell_exec geeft geen uitvoer

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • wackmaniac
  • Registratie: Februari 2004
  • Laatst online: 19-09 18:02
Ik zit met een beetje vreemd probleem. Ik probeer vanuit php een bericht te signen met GnuPG. Beetje gezocht op internet en op de site van Zend kwam ik het volgende voorbeeld tegen:

PHP:
1
echo shell_exec("echo $passphrase | $gpg --passphrase-fd 0 -o $unencrypted_file -d $encrypted_file");


Dit even aangepast zodat er gesigned wordt ipv encrypt. Echter, ik krijg geen uitvoer. Ik heb gezocht naar mogelijke problemen en geen van de aangedragen oplossingen werken; safe-mode staat uit en ook met het volledige pad werkt dit niet. Als ik ditzelfde uitvoer maar dan "ls" als commando neem, werkt het perfect. Wanneer ik het commando laat uitvoeren in de shell, dan werkt het wonder boven wonder wel. Het ligt ook niet aan de usergroup, want als ik als dezelfde groep als php het commando uitvoer in de shell werkt het perfect.

zelfs

PHP:
1
2
3
<?php
shell_exec("gpg");
?>


Geeft geen uitvoer.

Iemand een idee?

[ Voor 4% gewijzigd door wackmaniac op 09-01-2007 12:42 ]

Read the code, write the code, be the code!


Acties:
  • 0 Henk 'm!

  • Mafkees
  • Registratie: Oktober 2003
  • Niet online
Zijn die variabelen ($passphrase, $gpg, etc.) uit PHP zijn het variabelen in de shell? Ik denk dat PHP het namelijk interpreteert als variabelen voor PHP dus als het voor de shell is moet je ze escapen.

En bestaan alle variabelen ook?

Acties:
  • 0 Henk 'm!

  • wackmaniac
  • Registratie: Februari 2004
  • Laatst online: 19-09 18:02
Het gaat om onderstaande tutorial waar ik dit uit heb:
http://devzone.zend.com/node/view/id/1265#Heading6

Het vreemde is dat
PHP:
1
2
3
<?php
echo ( exec_shell( 'gpg --help' ) );
?>

Wel uitvoer geeft.

Read the code, write the code, be the code!


Acties:
  • 0 Henk 'm!

  • wackmaniac
  • Registratie: Februari 2004
  • Laatst online: 19-09 18:02
Nou, om de mensen die ditzelfde probleem ook hebben een mogelijke oplossing:

gebruik PECL package GnuPG.

Gegroet!

Read the code, write the code, be the code!