Mit Button Programm starten

wopu

Mitglied
Hallo zusammen,
Ich habe folgendes Problem:
Ich möchte mittels Button auf einer Webseite die Präsentation auf meinem Raspberry pi starten. Ich verwende folgenden Code:
Code:
<html>
<head>

<?php 
if (isset($_POST['OFF'])) {
shell_exec("sudo -S soffice --show /var/www/html/Archiv/Test.pptx");
}
?>

</head>
<body>
<form method="post">
<td style="text-align: center;"><button type="submit" name="OFF">Pr&auml;sentation starten</button></td>
</form>

</body>
</html>

Leider passiert da nix bekomme auch keine Fehlermeldung. Zum beenden verwende ich den selben Code nur mit einem anderen link und der funktioniert. Kann mir jemand ein wenig auf die Sprünge helfen was ich falsch mache??
 
Hi

als erstes das "sudo -S" weglassen
Openoffice braucht kein Root, ganz im Gegenteil (Root könnte X11 Probleme machen)
 
Hi,

unter welchem Benutzer läuft das Script? (www-data?)
Der kann icht auf deinen Desktop zugreifen, also auch nicht auf X11. Von daher war dein Ansatz mit sudo nicht so falsch, du musst das Ding halt anstatt mit root mit deinem Benutzernamen starten. Zusätzlich muss noch die Umgebungsvariable "DISPLAY" gesetzt werden.

Also sollte dein Command in etwa so aussehen:
DISPLAY=:0 sudo -u pi soffice ...

Grüsse,
BK
 
Zuletzt bearbeitet:
Vielen Dank das funktioniert.
Jetzt hab ich nur noch das Problem das die Endlosschleife nicht funktioniert.
 
Ich habe da noch ein weiteres Problem.
Und zwar möchte ich mir die Dateien aus einem bestimmten Ordner anzeigen lassen und danach auf einen link klicken um die Präsentation zu starten.
Mein bisheriger Code. Leider weiss ich nicht wie ich den Filenamen an den link übergebe das löschen funktioniert.
Code:
<?php
if(isset($_GET['delete']) && !empty($_GET['fileid'])) {
unlink("./Archiv/".$_GET['fileid']);
}


// Auslesen, verlinken
$ordner = "./Archiv"; $handle = opendir($ordner);
while ($file = readdir ($handle)) {     if($file != "." && $file != "..") {       
if(is_dir($ordner."/".$file)) {           
echo "/".$file."<br/>";         }
else {
          
// kompletter Pfad           
$compl = $ordner."/".$file;
$size = filesize($compl);         
echo '    <a href="?delete&amp;fileid='.$file.'"><img src=images/muelleimer.jpg border=0 width=20px height=20px> </a>
    <a href="Dateiupload.php;fileid='.$file.'"><img src=images/praesi.jpg border=0 width=20px height=20px> </a>
    <a href="'.$compl.'">'.$file.'</a>&nbsp;Gr&ouml;&szlig;e:'.$size.' Byte<br/>';
}   
}
}
closedir($handle);


// Präsentation starten
if (isset($_POST['Inhalt'])) {
shell_exec("DISPLAY=:0 sudo -u pi soffice --show -norestore /var/www/html/Archiv/"."?file"]);
}
?>
 
Zurück