Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP: POST-arvojen välitys includen kautta

E1ss [09.07.2017 12:27:13]

#

Ideana on että minulla on koodi x.php ja minun pitäisi sen sisällä käydä läpi y.php. Ongelma on että y.php vaatii kaksi post metodia (username ja password). Kuinka saan syötettyä postit phpssä. C# se tapahtuu seuraavanlaisella koodilla ja tarkoituksenani olisi saada vastaava phphen.

WWWForm form = new WWWForm();
form.AddField("usernamePost", PlayerPrefs.GetString("username"));
form.AddField("passwordPost", PlayerPrefs.GetString("password"));

WWW www = new WWW(moveUrl, form);

E1ss [09.07.2017 15:15:54]

#

Minulla tuli juuri mieleen että onko minun pakko edes sisällyttää y.php koodia koska en tarvitse mitään metodeita sieltä. x.phpn pitäisi ainoastaan oikean hetken tullen käydä y.php läpi mutta edelleen mitään y.phpn metodeita ei tarvita x.phpssä. Ja mikäli olen oikeassa include methodin ideana on että parametrinä annetusta koodista käytetään jotain metodeita.

Teuro [09.07.2017 17:29:31]

#

Hyvä vastaus saattaa vaatia oikean koodin näkemisen, mutta sisällytettävän tiedoston ei ole hyvä tehdä mitään fyysisesti näkyvää. Esimerkiksi funktiokokoelman sisällyttäminen on yleensä turvallista. Sen sijaan tuollainen viritelmä, on yleensä huono ratkaisu.

groovyb [09.07.2017 20:55:39]

#

kun koodaat websoftaa etkä winformsia, teet lomakkeet ihan html:llä. voit toki echottaa html:n myös php:lla ulos. vastaanottavassa päässä sitten sinulla on metodi, joka vastaanottaa lomakkeen kentät yhdessä metodissa.

Metabolix [09.07.2017 21:40:40]

#

POST-arvojen kikkailu x.php:stä y.php:hen on huono idea.

Oikea ratkaisu on jälleen käyttää funktioita (tai luokkia). Eli y.php:n ei pitäisi itse sisältää sitä yhteistä toimintoa, vaan toiminto pitäisi laittaa omaan funktioonsa, jota sitten kutsutaan y.php:stä POST-arvoilla ja x.php:stä joillain muilla arvoilla.

funktio.php:

function login($user, $password) {
  # Tänne tulee varsinainen toiminto.
}

y.php:

if (!isset($_POST["username"], $_POST["password"])) {
  throw new Exception("Tietoja puuttuu!");
}
kirjaudu($_POST["username"], $_POST["password"]);

x.php:

kirjaudu("matti", "sala1234");

Ikinä ei pitäisi tarvita include-riviä kesken koodin, vaan kaikki tarvittavat include-rivit voivat yleensä olla heti tiedoston alussa. Kaikki koodi, jota tarvitaan monessa kohdassa, on syytä laittaa funktioihin tai luokkiin. Itse asiassa usein on käytännöllistä tehdä sivusto niin, että mahdollisimman suuri osa koodista on funktioiden sisällä.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta