Php forme i buttoni

poruka: 13
|
čitano: 1.692
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
13 godina
offline
Php forme i buttoni

Pozdrav svima,

 

prvo da kažem da sam početnik. I to ogromni. A trebam napraviti nešto u PHPu, što mi osobno izgleda kao sitnica, ali imam par pitanja.

 

 

Znači, radim na projetku Raspberry Pi i LED matrice. Odnos RPi i LED matrice se radi preko pythona, i to sam napravio, 4 malena python programa.

 

Sada, na RPi sam podignuo Apache server koji će imati samo jedan php index. Radi se o tome da mi treba čisto stranica s 4 buttona, koja bi se zvala Uključi Sve LED diode, Isključi sve LED diode, Tekst, Znakovi.

 

Mislio sam za svaku tipku da pokrene jednu akciju.

 

Kod koji sam do sada testirao jest:

 

<html>
<head>
<title> naslov bla bla</title>
</head>
<body>
<?php echo '<p>test</p>'; ?>
<?php echo exec ('sudo python /var/www/max7219/examples/upali_sve.py'); ?>
</body>
</html>

 

 

 

Sada, kada se ja spojim na server, on pokrene ovaj echo exec i upali mi sve diode Znači kod je ispravan (imao sam problema s davanjem permissiona ali sam sredio to).

 

Sada bilo me zanimalo da napravim znači kada se pokrene samo da stoji ovako stranica:

 

Naslov projekta

 

Button 1 - Uključi sve LED diode (pretiskom na button da on pokrene <?php echo exec ('sudo python /var/www/max7219/examples/upali_sve.py'); ?>

Button 2 - Isključi sve LED diode ((pretiskom na button da on pokrene <?php echo exec ('sudo python /var/www/max7219/examples/izgasi_sve.py'); ?>

Button 3 - Tekst (pretiskom na button da on pokrene <?php echo exec ('sudo python /var/www/max7219/examples/tekst.py'); ?>)

Button 4 - Znakovi (pretiskom na button da on pokrene <?php echo exec ('sudo python /var/www/max7219/examples/znakovi.py'); ?>

 

 

Sada, pošto znam da onclick buttoni su javascript, zanimalo me kako je najednostavniji način za ovo napraviti? Pretpostavljam da je nešto najosnovnije, ali nikada nisam radio u PHPu, a za projekt mi samo fali još to (da mogu znači kontrolirati tj. pozivati te 4 skripte preko apache web servera). U ovom kodu što sam napravio mogu sve kontrolirati ako ručno mijenjam tekst tj. naziv skripte koju treba pokrenuti. Ako može neka kratka pomoć.

 

Mislio sam ovako nekako napraviti:

 

  function UpaliSve()
{
    echo exec ('sudo python /var/www/max7219/examples/upali_sve.py');
}

function IzgasiSve()
{
     echo exec ('sudo python /var/www/max7219/examples/izgasi_sve.py') ;
}

function Tekst()
{
     echo exec ('sudo python /var/www/max7219/examples/tekst.py') ;
}

function Znakovi()
{
     echo exec ('sudo python /var/www/max7219/examples/znakovi.py') ;


} $functions = array('UpaliSve',

                    ('IzgasiSve',

                    ('Tekst',
                   'Znakovi');

                 
foreach ($_POST as $name => $post) {
    if (in_array($name, $functions)) {
        if (function_exists($functions[$name]))
            call_user_func($functions[$name]);
    }

 

 

Nadam se da bi ovako nešto možda moglo raditi, jer je to zadnji dio i nakon toga je cijeli projekt gotov ^^  (s PHP sam se danas prvi put susreo)

 

EDIT:

 

U najgorem (ili najboljem) slučaju, pretpostavljam da je lakše napraviti ovako nešto:

 

Odaberi nešto od navedenog

 

Uključi sve

Isključi sve

Tekst

Znakovi

 

i kada se klikne na neku od njih da otvori drugi .php koji inicira exec specifično za ono što smo odabrali, i da u svakoj postoji lista preostalih 3 stvari pa da se mogu prebacivati. Ovo mi se ne sviđa, radije bih probao s buttonima

Poruka je uređivana zadnji put sri 11.12.2013 4:47 (X-Plosiv).
Moj PC  
0 0 hvala 0
13 godina
offline
Php forme i buttoni

to mozda ovako ? 

<form action="gpio.php" method="get">
   <input type="submit" value="turn on 1" name="on1">
   <input type="submit" value="turn off 1" name="off1">
</form>

 

 

 

 

<?php
if(!empty($_GET['on1'])){
//Turn on 1
}
if(!empty($_GET['off1'])){
//Turn off 1
}
?>

Poruka je uređivana zadnji put sri 11.12.2013 4:40 (g3arv8).
 
1 0 hvala 0
13 godina
offline
Php forme i buttoni

Ne koristim GPIO, nego idem direktno preko SPI (serijsko)

 

Imam 4 malena programa, primjer za upaliti sve LED diode jest ovo

 

 

 

#!/usr/bin/env python
import max7219.led as led
led.init()
led.send_byte(0xFF, 0xFF) 

 

 

 

Znači, 4 mala .py (python, jel) programa koje moram pokrenuti...treba mi samo pomoć oko načina na koji mogu pokretati 4 različita fajla...pokazao sam kako koristim za jedan fajl, ali to je za jedan, pa me zanimalo da li se može napraviti kao buton ili da kliknem na tekst gdje onda on ima akciju echo exec (sudo python .... ... ..) :D

Poruka je uređivana zadnji put sri 11.12.2013 4:45 (X-Plosiv).
Moj PC  
0 0 hvala 0
13 godina
offline
Php forme i buttoni

dali moze ovako 

<?php

   if (isset($_POST['button']))

   {

     exec('sudo python /var/www/max7219/examples/upali_sve.py');

   }

?>

<html>

<body>

   <form method="post">

   <p>

     <button name="button">Upali sve</button>

   </p>

   </form>

</body>

neznam dali moras dodati "&" xec('test.pl &');

Poruka je uređivana zadnji put sri 11.12.2013 4:58 (g3arv8).
 
0 0 hvala 0
11 godina
offline
Php forme i buttoni

Ovo ti neće raditi:

 

<?php echo exec ('sudo python /var/www/max7219/examples/upali_sve.py'); ?>

 

Ovo ti neće raditi jer ne možeš raditi sudo u www folderu preko browsera. Sudo radi isključivo preko terminala i trebaš password za njega.

 

Možeš dati privilegije useru (grupi) www-data da može pokretati upali_sve.py onda ti ne treba python.

 

Treće, zašto ne bi mogao upali_sve.py napisati u php-u pa ne trebaš exec ;)

 

Samomrzeći hrvat
Moj PC  
0 0 hvala 0
17 godina
offline
Php forme i buttoni

A zašto ne bi kompletnu aplikaciju napisao u phytonu? 

 

http://docs.python.org/2/library/simplehttpserver.html

All software has bugs.Any developer who claims that his or her software is always bug-free is living in a fantasy world.
Moj PC  
0 0 hvala 0
13 godina
offline
Re: Php forme i buttoni
g3arv8 kaže...

dali moze ovako 

<?php

   if (isset($_POST['button']))

   {

     exec('sudo python /var/www/max7219/examples/upali_sve.py');

   }

?>

<html>

<body>

   <form method="post">

   <p>

     <button name="button">Upali sve</button>

   </p>

   </form>

</body>

neznam dali moras dodati "&" xec('test.pl &');

 

Budem provjerio...

 

Entry Point kaže...

Ovo ti neće raditi:

 

<?php echo exec ('sudo python /var/www/max7219/examples/upali_sve.py'); ?>

 

Ovo ti neće raditi jer ne možeš raditi sudo u www folderu preko browsera. Sudo radi isključivo preko terminala i trebaš password za njega.

 

Možeš dati privilegije useru (grupi) www-data da može pokretati upali_sve.py onda ti ne treba python.

 

Treće, zašto ne bi mogao upali_sve.py napisati u php-u pa ne trebaš exec ;)

 

 

Radi, jer sam dao privilegije www-data pomoću sudo visudo. Što se tiče davanja permissiona, to se ne moram brinuti jer radim samo u mojoj localhost, ništa da bi netko drugi mogao pristupiti. Morao sam napraviti sve u pythonu jer je cijeli projekt napravljen u njemu. Na githubu je čovjek objavio driver i testni kod, a pošto je i profesor rekao da bi bilo najbolje u pythonu, napravio sam u njemu. Sada mi je dao zadatak da napravim apache server i pomoću index-a da pokrećem ta 4 fajla. Zato sam i mislio samo 4 buttona gdje svaki taj pretisak pokreće određeni file. Sve sam iskopirao u /var/www/ kako ne bi bilo problema s pozivanjem.

 

 

Jer recimo sada sam stavio ovaj index.php da upali sve LED diode. Isto tako mogao bih nazvati taj file pali.php i onda pokretati pomoću www.ip/pali.php i on će upaliti LED diode, a www.ip/gasi.php će ih izgasiti.

 

Samo što ja želim to sve imati u jednom file-u (index.php) i imati ta 4 odabira, i ovisi što ja upalim on napravi jedno od tog.

 

Nix kaže...

A zašto ne bi kompletnu aplikaciju napisao u phytonu? 

 

http://docs.python.org/2/library/simplehttpserver.html

 

Bio sam gledao jer SHTTPserver je već integriran, ali ne znam kako bih napravio ovo gore, da imam 4 tipke ili teksta koji clikom na njih aktiviraju jednu od tih skripti.

 

 

Nažalost, može se reći da sam "n00b", ali to je zadnji dio projekta i poprilično razbijam glavu oko toga. Vidim da sam temu objavio u 3:57, a radio sam je od cca 20:00h, i sada nastavljam dalje. Probati ću imati 4 buttona ili 4 riječi na koje kada kliknem on pozove jednu od funkcija.

Poruka je uređivana zadnji put sri 11.12.2013 12:37 (X-Plosiv).
17 godina
offline
Re: Php forme i buttoni

php funkcija pozvana preko javascripta..erm ne:)

Ae a moze ajax metodom (kakogod ili da iskoristi jquery) postic sto zeli

ala

http://stackoverflow.com/questions/15151133/execute-a-python-script-on-button-click

13 godina
offline
Php forme i buttoni

Ispričavam se na novom postu, bolje mi je ovdje ga napraviti pošto sam napravio!

 

Znači, ovo radi perfektno!

 

<html>
<head>
<title>Tekst!</title>
</head>
<body>
<?php echo '<p>WEB Upravljana aplikacija!</p>'; ?>
<?php if (isset($_POST['UpaliSve'])) { exec('sudo python /var/www/max7219/examples/upali_sve.py&'); } ?>
<form action="" method="post">
    <button type="submit" name="UpaliSve">Upali sve LED diode</button>
<br>
<?php if (isset($_POST['UgasiSve'])) { exec('sudo python /var/www/max7219/examples/izgasi_sve.py&'); } ?>
<form action="" method="post">
    <button type="submit" name="UgasiSve">Izgasi sve LED diode</button>
<br>
<?php if (isset($_POST['Tekst'])) { exec('sudo python /var/www/max7219/examples/tekst.py&'); } ?>
<form action="" method="post">
    <button type="submit" name="Tekst">Prikazi tekst</button>
<br>
<?php if (isset($_POST['Znakovi'])) { exec('sudo python /var/www/max7219/examples/znakovi.py&'); } ?>
<form action="" method="post">
    <button type="submit" name="Znakovi">Prikazi znakove</button>
</form>
</body>
</html>

 

 

Hvala g3arv8 i svima ostalima koji su pomogli!

 

 

Poruka je uređivana zadnji put sri 11.12.2013 13:35 (X-Plosiv).
Moj PC  
1 0 hvala 0
13 godina
offline
Php forme i buttoni

yey ipak se nesto da naucit na ETF sad smo na 3.godini web programiranje i prvi puta sam to ucio prije 10ak dana . Znaci bio sam blizu :)

 
0 0 hvala 0
13 godina
offline
Re: Php forme i buttoni
g3arv8 kaže...

yey ipak se nesto da naucit na ETF sad smo na 3.godini web programiranje i prvi puta sam to ucio prije 10ak dana . Znaci bio sam blizu :)

 

I mi smo na trećoj krenuli s WEB programiranjem, ali tek krenula osnove HTML, pa će sada tek ići na PHP :)

14 godina
neaktivan
offline
Php forme i buttoni

Ček, ne kužim...

Zašto php, python, terminal...

 

To se sve događa na klijentskoj strani...

Svega par linija koda u JQuery-u

http://portfolio.33dizajn.com
 
0 0 hvala 0
13 godina
offline
Re: Php forme i buttoni
Horz kaže...

Ček, ne kužim...

Zašto php, python, terminal...

 

To se sve događa na klijentskoj strani...

Svega par linija koda u JQuery-u

 

Tako je projekt krenuo, pošto su primjeri bili u Pythonu, pa samo krenuli s time. Profesor rekao onda da bi mogao u PHP napraviti taj index, pa sam krenuo tako. Sve u svemu sada sve radi dobro, više se mučim sada s NOIP pošto mi ne radi NOIP - Raspberry Pi ..neki problem u ruteru, a sve forwardao kako trebao :)

1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice