Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Javascript ja PHP

Sivun loppuun

Lol-z [04.12.2006 16:22:41]

#

Pystyykö Javascriptillä mitenkää suorittaan PHP scriptiä palvelimella?

Lebe80 [04.12.2006 16:37:41]

#

Pystyy ainakin niin, että siirrät käyttäjän tuolle suoritettavalle php-sivulle.

Minkähänlaisesta tarpeesta olisi kyse, jos voisit hieman paljastaa, niin tuolle toteutuksellekin voisi löytyä järkevä tapa.

ajv [04.12.2006 16:43:06]

#

Ajax?

Lol-z [04.12.2006 17:49:45]

#

No kun teen sellasta PHP sivua jossa vois testata Javascriptiä nii sitä varten ettei kukaan sit pääsis yllättää =)

Nesci [05.12.2006 09:01:03]

#

Kelpaisko <noscript></noscript> ? Jos selaimessa ei ole js tukea tai se on kytketty pois tulostetaan noiden tagien sisällä oleva juttu, eli siihen sitten "Sulla ei kultsi oo javascriptii nyt olleskaa päällä"..

Lol-z [05.12.2006 23:11:11]

#

Ups... No siis tarkotin, että siellä vois testata noita javascript koodeja. Esimerkkiksi alert("HEi!"); tai ihan mitä vaan javascript koodia. Ja että pystyykö sillä sitten suorittaan jotain PHP koodia palvelimella jotenkin kikkailemalla.

Antti Laaksonen [06.12.2006 10:58:59]

#

Ainakaan minulle ei tule mieleen tapaa, jolla PHP-koodia voisi suorittaa palvelimella pelkän JavaScriptin kautta.

Blaze [06.12.2006 11:50:56]

#

Vapaamuotosta koodia ei (ellei jossain PHP-skriptissä ole turva-aukkoa), mutta olemassaolevan PHP-skriptin kutsuminen onnistuu XMLHttpRequestilla ("Ajaxilla").

msdos464 [06.12.2006 16:19:44]

#

Eikö tuo onnistuisi siten, että teet vaikka framen, johon se koodi aina kirjoitetaan ihan javascriptillä? Vaihtoehtoisesti voit pyöräyttää sen koodin php:n kautta, joka yksinkertaisesti tekee sivun jossa on se annettu koodi.

Jos nyt ymmärsin oikein, että mitä tässä oikein haluttiin..

Kentti [06.12.2006 17:05:47]

#

Sitten voi (menee ehkä hieman aiheen ulkopuolelle) javascriptin avulla suorittamaan PHP funktioita / skriptejä.
Esimerkiksi javascriptin if lauseen avulla:

<script type="text/javascript">
function jos(var jos) {
  if (jos) // Mikäli jos on true
    {
      document.write("<?php $tottako=1";?>);
    }
  else { // Jos jos on false
      document.write("<?php $tottako=0;?>");
    }
}
</script>
</head>
<body>
...
...
<p onmouseover="jos(1);" onmouseout="jos(0);">BlaaBlaa</p>
...

<?php
  function totta($mitenon) {
    if ($mitenon) echo "Totta";
    else echo "Tarua";
  }
?>

<?php
  totta($tottako);
?>
...
...
...

Toimivuudesta en tiedä, en ole kokeillut.

Edit: On muuten v a r s i n mielenkiintoinen tuo väritys, kun nuo kooditagit ovat koodiphp & /koodiphp ;)

Olga [06.12.2006 18:19:39]

#

No ei todellakaan toimi tuo edellinen koodinpätkä :) Sivu on jo selaimella kun JavaScript suoritetaan eikä siinä paljon enää auta php-blokkeja kirjoitella.

Kentti [06.12.2006 18:41:28]

#

Juu mutta siihen ku liittää päivityksen, niin käyttäjän hermot menee, mutta toimii :)

Silleen toimis, että jokaselle eri jutulle /arvolle oma php funktio, joita sitten tulostetaan javascriptin avulla.

Olga [06.12.2006 22:13:02]

#

No ei kyllä toimi. Pistäpäs esimerkkiä tuosta, voi olla että jompikumpi ymmärtää jotain väärin.

Kentti [06.12.2006 22:16:00]

#

<script type="text/javascript">
function jos(var jos) {
  if (jos) // Mikäli jos on true
    {
      document.write("<?php totta();?>);
    }
  else { // Jos jos on false
      document.write("<?php tarua();?>");
    }
}
</script>
</head>
<body>
...
...
...

<?php
  function totta() {
    echo "Totta";
  }

  function tarua() {
    echo "Tarua";
  }
?>
...
...
<p onmouseover="jos(1);" onmouseout="jos(0);">BlaaBlaa</p>
...

Edit: Ai katos prkl... eihän se toimikkaan, joskus olen sen nimittäin jotenkin saanut toimimaan ☺ ;)

Olga [06.12.2006 22:43:48]

#

Noh noh, nyt kyllä puhut läpiä päähäsi :) Et varmasti ole saanut moista toimimaan ikinä.

kayttaja-2791 [07.12.2006 11:30:22]

#

PHP on jo tehnyt työnsä kun käyttäjä sivun näkee. Javascriptiä sen sijaan käpistellään vielä (ja vasta silloin) kun sivu on jo ladattu. Käyttäjän syöttämää PHP-koodia et voi mitenkään suorittaa javascriptillä, ellei sitten itse PHP-koodissa ole jokin hirvittävä aukko (kuten vaikka <?php eval($_GET['komento']); ?> tai vastaava, tämäkään ei nyt suoraan liity mitenkään javascriptiin). Helpoiten hahmotat asian kun siirrät tuon koodin PHP-palvelimelle, ja katsot selaimella sen PHP:n tuottaman version tuosta. Sielähän noita <?php hommia ei näy laisinkaan.

Tuon koodinhan nyt periaattessa pitäisi tuottaa käsittääkseni ihan oikein "totta" ja "tarua" tekstit (paitsi että käytät funktioita ennen niiden määritystä?), ja tarua tekstiä ei taida ulos saada mitenkään, kerta linkki häviää heti kun hiiren vie linkin päälle.

Eli pähkinänkuoressa: ensin suoritetaan PHP, mitenkään riippumatta JS:stä. Sitten suoritetaan JS, mitenkään riippumatta PHP:stä (tai voi tietenkin riippua siitä mitä se PHP tulostaa).

Lol-z [09.12.2006 22:40:10]

#

Kiitos tiedosta. Nyt voin pitää huoletta pitää sivua kuhan ensiksi varmistan että mitään aukkoja koodista ei löydy =D.


Sivun alkuun

Vastaus

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

Tietoa sivustosta