Sori ku joudun vaivaa tälläisilla tyhmillä kysymyksillä, mutta ku nettiä selattaessa tulee monesti oppittua väärin.
Eli, miten välittää php scriptiltä toiselle parametrejä? Onko pakkoo käyttää/tai viisainta GET tai POST metodeja?
Eli mun pitäisi tehdä seuraavaa:
<?php plaa plaa... $x = $y + 1; include "/dfsdf/toinenscripti.php"; //ja välitä parametri x? plaa..plaa ?>
joudun incluudaamaan toisen filen vain, koska dokumentointi helpottuisi. Eli toinen scripti suoritetaan, mutta selaimeen ei edes saa tulla mitään muutoksia.
Ekaksi, sulla on tuo koodi ihan ******...
<?php $x = $y + 1; include("/dfsdf/toinenscripti.php"); ?>
Sit käytät vaikka sessioneita/evästeitä, mitä nyt ikinä haluatkaan tehdä.
Edit: Jaa korjasitkin jo.. :P Kandee varoa sen entterin kanssa ;)
Eli GET, POST, sessio tai eväste on vaihtoehdot?
EDIT: mitä suosittelet tähän tilanteeseen, toinenscripti tekee lähinnä vai pelkkää algoritmiä ja kenties palauttaa jotain?
Include
on komentorakenne, ei funktio, joten sen parametrin ympärille ei tarvitse laittaa sulkuja. Sen toimintalogiikkaa selvitetään tarkemmin manuaalissa. Itse tilanteeseen sanoisin, että valota hieman tarkemmin tarkoitusperiäsi niin on helpompi vastata. Alustavasti suosittelen olioita ja parametrejä.
No tarkoitusperä on lisätä koodia siten, että koodiin tulee vain yksi include rivi lisää. Tämä käsky tuli ylemmältä taholta ja sen takia en voi laittaa funktioita ja oliota, vaan kaikki mun tekemät muutokset pitää löytyä erillisestä filestä.
Emmää kyllä vieläkään hahmota, että mikä ongelma tässä on. Tai että mikset voisi käyttää funkkareita ja olioita, koska muutokset pitää löytyä erillisestä tiedostosta.
herra_ylikersantin_koodit.php
<?php include 'pauluksen_koodit.php'; ?>
pauluksen_koodit.php
<?php class A { public function bar() { } } ?>
Toki jos skriptit pyörivät eri palvaimilla niin sitten sitä gettiä (haettaessa tietoa) tai postia (tehtäessä muutoksia tietoihin) tilanteen mukaan. Suluissa yleisesti ottaen, mutta poikkeuksia on.
Mutta mites tuossa esimerkissä nyt välitetään muuttujia? Eli pitäisi saada vielä tolle bar funktiolle tai luokka A:lle tavaraa tuolta ylikersantin php:ltä, esim toi $x muuttuja, joka on ensimmäisessä esimerkissäni.
Eli nyt on scriptit samalla palvelimella, eli ei tartte käyttää gettejä ja posteja?
No sehän välittyy ihan pyytämättäkin. Nehän on käytännössä yksi ja sama skripti.
Kirjoitin tästä jo aiempaan viestiin esimerkin, mutta koska asia on hieman monimutkaisempi näkyvyysalueiden kanssa, pyyhin esimerkin ja linkitin suosiolla manuaaliin. Katso manuaalin Esimerkki #2 ja tee muutamia testikoodeja.
Jos haluat käyttää yleisen näkyvyysalueen muuttujia funktioissasi/metodeissasi niin muuttujat tulee ensin tuoda uuteen näkyvyysalueeseen käyttämällä avainsanaa global
.
ylikersantti.php
<?php $a = 'a'; // $a on määritelty yleisessä näkyvyysalueessa function foo() { $b = 'b'; // $b on määritelty yleisen funktion foo() näkyvyysalueessa } include 'paulus.php'; ?>
paulus.php
Aivan, eli kiitoksia, enpä osannut arvata, että muuttujat ovat jo defaulttina globaaleja molemmissa scripteissä.
Paulus M kirjoitti:
Aivan, eli kiitoksia, enpä osannut arvata, että muuttujat ovat jo defaulttina globaaleja molemmissa scripteissä.
Siksi onkin dokumentaatio, ettei tarvitse arvailla..
Totta :D, pitäisi vaan tietää mistä kohdin lukea.
Ihan loogisesti löytyy kohdasta variables scope
https://www.php.net/manual/en/language.
Aihe on jo aika vanha, joten et voi enää vastata siihen.