Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: MySQL-taulusta PHP-koodia

Sivun loppuun

JyKKemus [19.03.2008 13:58:34]

#

Tulosta mysql taulusta php koodia, miks ei se tulostu php muotoon?

Lähde koodissa koodi näkyy mutta ei sivulla mitään

hunajavohveli [19.03.2008 14:03:53]

#

JyKKemus kirjoitti:

miks ei se tulostu php muotoon?

Mitä tarkoitat "php-muodolla"? Sitäkö, että koodi pitäisi suorittaa sen sijaan, että tulostat sen käyttäjälle?

JyKKemus [19.03.2008 14:31:33]

#

Joo selitin vähän huonosti.

Mulla on mysql taulussa teksti minkä tulostan ja se on tällänen

<?php

echo "Testi PHP";

?>

Täällä se on

hunajavohveli [19.03.2008 14:40:44]

#

Vika on käsittääkseni siinä, että koko rimpsu <?php echo "Testi PHP"; ?> tulkitaan yhdeksi tagiksi ja jätetään siten rendaamatta. Ongelma poistunee, kun vaihdat merkit < ja > niitä vastaaviksi entiteeteiksi(?). Kyseiset entiteetit ovat &lt; ja &gt;. PHP:stä löytynee joku replace()-funktio, jolla muunnoksen voi tehdä automaattisesti.

JyKKemus [19.03.2008 14:44:49]

#

Nyt se tulostaa sen koodin näytölle sellasenaan, eikä suorita sitä koodia

Blaze [19.03.2008 14:47:40]

#

JyKKemus kirjoitti:

Nyt se tulostaa sen koodin näytölle sellasenaan, eikä suorita sitä koodia

No oisit heti sanonu, että haluat suorittaa sen.
https://www.php.net/manual/en/function.eval.php
Ja ollaan sitte hyvin varovainen sen suhteen, ketä päästetään kantaan koodia lisäämään. Sua on varotettu.

JyKKemus [19.03.2008 14:57:07]

#

Nyt ei jummara miten ne tolla saa suoritettua

Niko [19.03.2008 15:21:23]

#

eval('echo "minä olen PHP-koodia";');

JyKKemus [20.03.2008 08:22:50]

#

Tulostaa silti sen koodin kun laitoin näin

eval('echo $change;');

Nyt testasin niin että laitan suoraan sen evalin mysql taulusta niin ei tulostu mitään eli en muuttanut merkkejä <>

Niko [20.03.2008 09:02:28]

#

no echoahan käytetään tulostamiseen :P

evalissa ei käytetä alku- ja lopetus merkkiä

pistemies [20.03.2008 09:23:06]

#

JyKKemus kirjoitti:

Tulostaa silti sen koodin kun laitoin näin

eval('echo $change;');

Nyt testasin niin että laitan suoraan sen evalin mysql taulusta niin ei tulostu mitään eli en muuttanut merkkejä <>

<?php
eval('$change = "Testi PHP"; echo $change;');
?>

Kyllä tämä tulostaa vain tuon "Testi PHP".
Ja tosiaan aloitus-ja lopetustagit pitää ottaa siitä pois.

JyKKemus [20.03.2008 09:44:16]

#

Jokin siinä on väärin tällänen on koko php koodi

<?php

$id = $_GET['id'];

	$koodivinkki = mysql_query("SELECT id, koodi FROM koodit WHERE id='$id'", $yhteys);

$a = array("<", ">");
$b = array("&lt;", "&gt;");
$phrase = mysql_result($koodivinkki,0,1);
$change = str_replace($a, $b, $phrase);

eval('echo $change;');

?>

Ja taulu on tällänen

CREATE TABLE IF NOT EXISTS `koodit` (
  `id` int(11) NOT NULL auto_increment,
  `nimi` varchar(50) NOT NULL,
  `koodi` text NOT NULL,
  `aika` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  `ip` varchar(20) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

pistemies [20.03.2008 09:54:12]

#

Jotenkin näin:

$a = array('<?php', '?>');
$b = array("", "");
$phrase = mysql_result($koodivinkki,0,1);
$change = str_replace($a, $b, $phrase);

Niko [20.03.2008 09:59:34]

#

eval('?>' . $phrase . '<?php'); ehkä?

JyKKemus [20.03.2008 10:11:41]

#

Ei vaan tää toimi :(

pistemies [20.03.2008 10:23:45]

#

Kyllä tämänkaltainen, jota ehdotin, toimii:

<?php
$str = '<?php echo "TESTAA TÄMÄ"; ?>';

$arr1 = array('<?php','?>');
$arr2 = array("","");
$str = str_replace($arr1,$arr2,$str);
eval($str);
?>

Mutta jos sinulla nuo merkit onkin &lt;?php jne:

$a = array('&lt;?php', '?&gt;');
$b = array("", "");
$phrase = mysql_result($koodivinkki,0,1);
$change = str_replace($a, $b, $phrase);
eval('$change;'); // <- ja tämä näin

JyKKemus [20.03.2008 10:32:22]

#

No nyt toimii, KIITOS

tsuriga [20.03.2008 10:53:12]

#

Lisättäköön, että str_replacen toiseksi parametriksi voi antaa myös simppelisti tyhjän merkkijonon, jolloin sitä käytetään korvaamaan kaikki korvattavat merkkijonot.

JyKKemus [20.03.2008 10:55:12]

#

En tiedä kylä mitä tällä koko roskalla teen mutta jotain pitää keksiä kotisivulle

Blaze [20.03.2008 10:58:57]

#

Eiks sinne kantsis keksiä jotain järkevää, eikä potentiaalisesti vaarallisia virityksiä? Ja jos ei keksi mitään järkevää, niin eikai kukaan asetta sun ohimolla pidä pakottaen tekemään kotisivuja?

tsuriga [20.03.2008 11:09:54]

#

Bloggaus on nykyään in, tienaa miljuunia :3. Harjoitustehtävien puute uusia kieliä opetellassa kyllä vaivaa itseäkin, mietin joskus moisen kirjaston ehdottamista Putkaan.

JyKKemus [20.03.2008 11:11:34]

#

Blaze kirjoitti:

Eiks sinne kantsis keksiä jotain järkevää, eikä potentiaalisesti vaarallisia virityksiä? Ja jos ei keksi mitään järkevää, niin eikai kukaan asetta sun ohimolla pidä pakottaen tekemään kotisivuja?

Joo mutta kun tykkään väsäillä php:ta

Blaze [20.03.2008 11:37:58]

#

tsuriga kirjoitti:

Harjoitustehtävien puute uusia kieliä opetellassa kyllä vaivaa itseäkin, mietin joskus moisen kirjaston ehdottamista Putkaan.

Antti, hear hear! Mainio idea.

Mikroz [20.03.2008 13:38:33]

#

tsuriga kirjoitti:

Harjoitustehtävien puute uusia kieliä opetellassa kyllä vaivaa itseäkin, mietin joskus moisen kirjaston ehdottamista Putkaan.

Enemmän kuin mainio :) kannatan \o/


Sivun alkuun

Vastaus

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

Tietoa sivustosta