 |
Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Comunitatea PHP Romania
|
| Subiectul anterior :: Subiectul următor |
| Autor |
Mesaj |
ion_fbi
Data înscrierii: 27/Iun/2008
Mesaje: 8
|
| Trimis: Vin Iun 27, 2008 8:56 pm Titlul subiectului: please, help |
|
|
Salut ! sunt incepator in domeniu si probabil ce voi intreba necesit parerea unui avizat, din acest motiv permiteti-mi sa postez ! ideea este a doresc sa accesez interpretorul php.exe si ca in orice pagina web sa-i trimit niste variabile initializate exterior pagini php, intrebarea este : cum se face acest lucru.
PS.nu va hazardati sa spuneti ca e de incepator, caci nu este ! am cautat pe net si nu am gasit raspuns sa ma multumeasca. Va rog tratati subiectul cu rabdare, caci este posibil sa nu ma fi facut bune inteles ! revin ! merci |
|
| Sus |
|
crivion
Data înscrierii: 10/Apr/2007
Mesaje: 677
Locație: Somewhere
|
| Trimis: Vin Iun 27, 2008 9:08 pm Titlul subiectului: |
|
|
1. vrei sa accesezi interpretorul printr-o consola sau script normal?
2. unde anume exterior sunt definite variabilele? |
|
| Sus |
|
MihaiC
Data înscrierii: 14/Mai/2006
Mesaje: 1037
Locație: Navodari
|
| Trimis: Sâm Iun 28, 2008 10:43 am Titlul subiectului: |
|
|
Faptul ca tu ne spui sa nu ne hazardam nu o sa te scuteasca de nimic.
Daca esti incepator, postezi la incepatori, pt. ca orice rahat de problema ti se pare "avansata".
Referitor la intrebarea ta fara semnul intrebarii, nu pot sa spun decat ca n-am prea inteles.
Vrei sa faci un fisier de configurare pe care sa-l incluzi in toate paginile tale (banuiesc).
http://www.php.net/manual/ro/function.include.php |
|
| Sus |
|
ion_fbi
Data înscrierii: 27/Iun/2008
Mesaje: 8
|
| Trimis: Lun Iun 30, 2008 5:11 pm Titlul subiectului: |
|
|
| Nu, dupa cum credeam. Posibil sa ma fi exprimat gresit ! Lucrez la o aplicatie pentru depanare scripturi php care are o fereastra gen linie de comanda in care se introduc variabilele si apoi foloseste interpretorul php.exe pentru a executa scriptul, si va afisa in alta fereastra rezultatul, si astea toate fara ca utilizatorul sa fie nevoit sa modifice scriptul. ideea este ca treb sa functionze ceva in genul unui server, dar nu stiu cum sa trimit variabelele la script din linia aia de comanda in rest functioneaza ca am verificat cu un script mic , dar variabila o schimb acolo in script, ceea ce nu face aplicatia utila ! please help ! |
|
| Sus |
|
mihaitha
Data înscrierii: 04/Mai/2007
Mesaje: 1816
Locație: Sibiu
|
| Trimis: Mar Iul 01, 2008 9:39 am Titlul subiectului: |
|
|
| Nu am inteles prea clar: e o aplicatie desktop sau web? |
|
| Sus |
|
Birkoff
Data înscrierii: 18/Mar/2004
Mesaje: 2608
Locație: Bucuresti
|
| Trimis: Mar Iul 01, 2008 9:55 am Titlul subiectului: |
|
|
| Mai tu variabilele dintr-o pagina web le poti trimite ori prin GET ori prin POST. Daca ai un program de sine statator care lucreaza independent si vrei sa trimiti variabile la interpretor, tot prin post sau get le vei trimite altfel nu ai cum... |
|
| Sus |
|
Amenthes
Data înscrierii: 12/Dec/2005
Mesaje: 624
|
| Trimis: Mar Iul 01, 2008 12:09 pm Titlul subiectului: |
|
|
| Cauti cumva Ajax? |
|
| Sus |
|
badtiger
Data înscrierii: 03/Noi/2006
Mesaje: 238
|
| Trimis: Mar Iul 01, 2008 3:30 pm Titlul subiectului: |
|
|
http://site.com/script_php.php?a=salut
in scriptul script_php.php variabila a are valoarea "salut" si numele variabilei este $_GET['a']
-daca asta cauti |
|
| Sus |
|
ion_fbi
Data înscrierii: 27/Iun/2008
Mesaje: 8
|
| Trimis: Mar Iul 01, 2008 8:53 pm Titlul subiectului: |
|
|
| {mihaitha}, dupa cum am zis aplicatia este desktop, dar singurul care a prins ideea este parca {Birkoff} :p dar nu ma ajutat ! corect sunt doua metode ! eu vreau sa stiu mecanismul prin care trimit variabilele la interpretor, adica sa fie el in stare sa le preia fara sa oblig utilizatorul sa foloseasca tertipuli de genul "$_GET['a'] " citat {badtiger}, ci doar numele variabilei, si apropo "$_GET['a'] " mai functioneaza daca "register_globals = Off" din php.ini este setat ? please help, daca doriti bineinteles ! thanks ! si apropo {Amenthes} nu caut ajax. |
|
| Sus |
|
mihaitha
Data înscrierii: 04/Mai/2007
Mesaje: 1816
Locație: Sibiu
|
| Trimis: Mar Iul 01, 2008 9:50 pm Titlul subiectului: |
|
|
ion_fbi a scris: {mihaitha}, dupa cum am zis aplicatia este desktop N-ai zis.
ion_fbi a scris: si apropo "$_GET['a'] " mai functioneaza daca "register_globals = Off" din php.ini este setat ? Normal, $_GET['a'] functioneaza si dupa Apocalipsa, n-are nici o legatura $_GET cu register_globals
Anyway, probabil asta e ce te intereseaza. Happy coding. |
|
| Sus |
|
dechim
Data înscrierii: 10/Mai/2005
Mesaje: 659
Locație: Drobeta Turnu Severin
|
| Trimis: Mie Iul 02, 2008 12:38 am Titlul subiectului: |
|
|
Deci lucrezi "la o aplicatie pentru depanare scripturi php", o aplicatie desktop si vrei sa folosesti interpretorul php pentru a executa scriptul. Ai vrea sa initializezi variabile din aplicatia ta si sa le cunoasca si interpretorul. Asta-i simplu, mai greu e sa aflii valoarea unor variabile in timpul executiei ca sa nu mai vorbesc de o rulare pas cu pas care in solutia aleasa este imposibila.
Chestiunea cu initializarea variabilelor in afara scriptului eu asa o vad:
- dai valori variabilelor in aplicatia ta : a=2, b=3 ... (banuiesc ca le introduci in campuri nu le bati in cuie)
- aplicatia executa scriptul via PHP astfel:
> creeaza un fisier (tmp1.php) in genul: $a=2; $b=3; ....
> concateneaza cele doua fisiere tmp1.php si cel cu scriptul de interpretat;
> lanseaza interpretorul si executa scriptul rezultat
Sau alta varianta! Cum ti-au zis baietii, cu GET:
lansezi scriptul: script.php?a=2&b=3, dar el trebuie sa fie capabil sa citeasca variabilele GET transmise.
Adica sa contina linii de genul:
$a=isset($_GET['a'])?$_GET['a']:valoare_implicita; |
|
| Sus |
|
Birkoff
Data înscrierii: 18/Mar/2004
Mesaje: 2608
Locație: Bucuresti
|
| Trimis: Mie Iul 02, 2008 10:13 am Titlul subiectului: |
|
|
1. chiar daca ai o aplicatie client side tot trebuie sa trimiti la interpretor cumva datele (la server side)
2. le trimiti prin get sau post de forma $_GET['a'] = ceva si in scriptul php de pe server le preiei si faci ce vrei cu ele.
3. daca ai register global on le poti prelua direct adica $a = ceva in loc de $a = $_GET['a']; dar nu recomand din motive de securitate (decat data totul se intampla intranet)
4. PHP a fost gandit ca interpretor web, gandit sa mearga pe web, daca vrei sa il adaptezi la o aplicatie desktop incearca http://gtk.php.net/ (tutorial aici) |
|
| Sus |
|
Amenthes
Data înscrierii: 12/Dec/2005
Mesaje: 624
|
| Trimis: Mie Iul 02, 2008 11:46 am Titlul subiectului: |
|
|
| M-am mai gandit la ceea ce ai spus si singura solutie pe care o vad, desi nu foarte usoara (pentru mine, ca nu prea stiu C si nici PHP internals) ar fi o extensie de PHP scrisa in C, ceva gen Xdebug, care sa execute o anumita functie inainte de fiecare linie de cod din scriptul php care ruleaza pe server. Functia asta ar trebui sa faca un apel catre un alt server, serverul tau de debug. I-ar furniza serverului de debug variabilele initializate pana la linia respectiva (dar si fisierul in care e, numarul liniei respective, si mai stiu eu ce), cu valorile lor, iar serverul de debug ii returneaza un raspuns (formatul e la alegere, atata timp cat il intelege extensia). In timpul asta scriptul e pe sleep, apoi, dupa primirea raspunsului extensia ar trebuia sa importe raspunsul tau ca si variabile in scriptul in care ruleaza. Altfel... nu stiu cum ai putea tu sa te infiltrezi si sa injectezi variabile in timp ce scriptul ruleaza. Folosindu-te de extensii existente ai putea chiar sa modifici functiile, clasele si metodele aferente "on the fly". |
|
| Sus |
|
ion_fbi
Data înscrierii: 27/Iun/2008
Mesaje: 8
|
| Trimis: Mie Iul 02, 2008 7:39 pm Titlul subiectului: |
|
|
idee buna pentru debug {Amenthes}, dar fara modificari in cod utilizatorului.
ok, {mihaitha} nu am zis, credeam ca s-a subinteles, dar merci de info cu $_GET, respectiv $_POST, dar prob persista, modificare cod user daca initial nu variabila doar a fost numita. {Birkoff} aplicatie web sau ne-web :p php-ul tot pe un calculator functioneaza deci ideea de trimitere a variabelelor la el este aceeasi pe care o face un server web care trimite scriptul la interpretor, de aceea il intreb pe {dechim} care a gandit ca pot trimite doua scripturi concatenate in care unul este temporar, introducand variabelele din comand line. toata treaba asta nu se poate face cumva prin memorie cum face un server web, decat sa stric mediile de stocare scriind si stergand fisiere temporare ? thanks. |
|
| Sus |
|
Birkoff
Data înscrierii: 18/Mar/2004
Mesaje: 2608
Locație: Bucuresti
|
| Trimis: Mie Iul 02, 2008 7:47 pm Titlul subiectului: |
|
|
se pare ca nu ai citit tutorialul pe care ti l-am dat sa il citesti, sau poate nu inteleg eu bine ce vrei, asa ca iti pun aici partea care te intereseaza din tutorial
Building Desktop Applications in PHP a scris:
The desktop approach
As you can imagine, building a desktop application when coming from a web background is a whole new ballgame. Consider that, when you run a PHP script on the web, it goes from top to bottom. When you run a desktop application, you open it, and wait. And wait. And wait. It doesn't matter how long you wait for - you are waiting, and the application is not doing anything. Of course, the moment you click a button or open a menu, it springs into action again. At what point in the execution of a standard PHP script is absolutely nothing happening? (Besides in sleep()) .
Now, the only real way to achieve this in PHP is an infinite loop, with a check for some sort of change or input on every iteration. Which is exactly how the various most of the PHP-desktop systems available function. Of course, it would be impractical for you to code this loop manually, as there's a lot of code all over the place. Instead, you tell the interface system to draw your interface and bind your functions/methods to the interface elements. Drawing your interface involves telling it what interface elements to create - such as buttons and input boxes - and where to put them. Binding allows you to link your functions/methods to certain events for these elements. For example, you could create a button, and have one of your functions called when the button is clicked.
That's where the fundamentals end and the various differences in systems come into play. So, let's take a look at some code to create a basic desktop application.
|
|
| Sus |
|
PHPRomania Bot
Bot Member
Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google |
| Trimis: Mie Dec 26, 2007 7:01 pm Titlul subiectului: Ad |
|
|
|
|
|
| Sus |
|
| |
|