Foršais džekiņš ([info]petro) rakstīja [info]koderi kopienā,
@ 2008-05-20 15:52:00

Previous Entry  Add to memories!  Tell a Friend!  Next Entry
PHP
[Error: Irreparable invalid markup ('<td <?>') in entry. Owner must fix manually. Raw contents below.]

Dots:
Ir lapa kuru man vajadzētu pielabot.
Zināšanas par PHP man ir minimālas, tā teikt "absolute beginner",
esošā koda fragments:
<code>
<?
$query = "SELECT * FROM cont_big WHERE cat = '".$cat."'";
$result = mysql_query($query);
while($row = mysql_fetch_array($result))
{
$content_big = stripslashes($row['content']);
?>
<table>
<tr>
<td <?=$content_big;?></td>
</tr>
</table>
<? } ?>
</code>
nu lūk un šis mainigais "content_big" attiecīgi satur HTML tekstu no MySQL datubāzes.

Jautājums: Vai ir kādīgi iespējams, lai tas "content_big" saturētu izpildāmu PHP kodu?


(Ierakstīt jaunu komentāru)


[info]zverj
2008-05-20 16:23 (saite)
<?=eval($content_big);?>

:)

(Atbildēt uz šo) (Diskusija)


[info]petro
2008-05-20 16:27 (saite)
un kā tas atsauksies uz visiem pārējiem '".$cat."' kuros tāpat kā iepriekš paliks tikai HTML?

(Atbildēt uz šo) (Iepriekšējais) (Diskusija)


[info]erzelis
2008-05-20 16:58 (saite)
a kas notiek ar .html lapu kuru pārsauc par .php? pareizi - nekas, viss rādās tā kā tam vajadzētu būt.

(Atbildēt uz šo) (Iepriekšējais) (Diskusija)


[info]petro
2008-05-20 17:04 (saite)
gluži otrādi. nekas nenotika. vispār viss saits uzkaras pie jebkura "$cat"

(Atbildēt uz šo) (Iepriekšējais) (Diskusija)


[info]begemots
2008-05-20 17:50 (saite)
tā pie drukas kļūdām tipiski gadās.

(Atbildēt uz šo) (Iepriekšējais) (Diskusija)


[info]petro
2008-05-20 17:55 (saite)
Ej dēt!

(Atbildēt uz šo) (Iepriekšējais) (Diskusija)


[info]begemots
2008-05-20 18:01 (saite)
ну зачем же так грубосс сударь!

(Atbildēt uz šo) (Iepriekšējais) (Diskusija)


[info]petro
2008-05-20 18:06 (saite)
Nebiji vēl ierakstījis to kas zemāk, bet jau līkrocību man piesēji. Tāda ir mana attieksme pret tiem kuri sūta jautātajus "googlēt" vēl pirms izlasījuši jautājumu. Atvainojos, jo tavs tomēr nebija tas gadījums.

(Atbildēt uz šo) (Iepriekšējais)


[info]bh
2008-05-20 17:50 (saite)
http://php.lv/f/

(Atbildēt uz šo) (Diskusija)


[info]petro
2008-05-20 17:55 (saite)
Paldies. Gan jau kaut kā atrisināšu. Kā jau pirmāk rakstiju, esmu absolūts iesācējs. Ne jau kodēšanā vispār, bet tieši PHP.

(Atbildēt uz šo) (Iepriekšējais)


[info]begemots
2008-05-20 17:58 (saite)
vispārīgi runājot, ir 2 lietas, cik sapratu no php eval() apraksta (neesmu php lietojis pāris gadus, varbūt neatceros, tālāk meklēt pašam slinkums):

There are some factors to keep in mind when using eval(). Remember that the string passed must be valid PHP code, including things like terminating statements with a semicolon so the parser doesn't die on the line after the eval(), and properly escaping things in code_str . To mix HTML output and PHP code you can use a closing PHP tag to leave PHP mode.


Tas nozīmē, ka eval() normāli apstrādās tikai valīdu PHP vai HTML, kas SEKO aizverošam PHP tagam; piemēram, šie būs pareizi $content_big saturi:

1) echo "BOO";
2) echo "BOO"; ?>
3) ?>
//iespējams (3) vajag vēl ";" pirms "?>"

Bet šie nebūs:

1) echo "BOO" // trūkst beigu semikola
2) // nav valīda PHP!

Tā lūk. Tā kā ja ir pliks HTML un pliks PHP kaut kur tur maisīti, tad nederēs.

(Atbildēt uz šo) (Diskusija)


[info]begemots
2008-05-20 17:59 (saite)
sorry, nozaga man stūriekavas. piemēri ir šādi:

pareizi $content_big saturi:

1) echo "BOO";
2) echo "BOO"; ?>
3) ?> <html_kods><boo></boo>
//iespējams (3) vajag vēl ";" pirms "?>"

nepareizi:

1) echo "BOO" // trūkst beigu semikola
2) <html_kods><boo></boo> // nav valīda PHP!

(Atbildēt uz šo) (Iepriekšējais) (Diskusija)


[info]petro
2008-05-20 18:14 (saite)
[Error: Irreparable invalid markup ('<td [...] <?>') in entry. Owner must fix manually. Raw contents below.]

$content_big saturs izskatās apmeram tāds:

<code>

<table width="100%" border="1" cellpadding="0" cellspacing="0">
<tr>
<td align="center" bgcolor="#339900" style="padding:3px 3px 3px 3px; font-weight: bold;">Šādi tādi texti</td>
</tr>
</table>

<?php
$query = "SELECT * FROM top10_date";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
?>
<strong><?php=$row['date']?></strong><br>
<br>
</div>

<form name='form1' method='post' action=''>
<table width="480" cellpadding="3" cellspacing="0" border="1" bordercolor="#999999">
<tr>
<td width="23" height="19" valign="top">&nbsp;</td>
<td width="23" height="19" valign="top">Some_TXT</td>
<td width="40">Some_TXT</td>
<td width="53">Some_TXT</td>
<td colspan="2" valign="top"><center>Some_TXT</center></td>
</tr>

<?php
$query = "SELECT * FROM top10_real WHERE top_nr NOT LIKE '%x%' ORDER BY top_nr ASC";
$result = mysql_query($query);
while($row = mysql_fetch_array($result)) {
if ($row['pagw'] == "J") {
$bgcolor = "#FF9900";
$txtb = "style=\"font-weight:bold\"";
} else {
$bgcolor = "";
$txtb = "";
}
?>

<tr>
<td width="23" height="19" valign="top"><input name="vote" type="radio" value="<?=$row['top10r_id']?>"></td>
<td bgcolor="#999999" ><strong><?=$row['top_nr']?></strong></td>
<td bgcolor="<?=$bgcolor?>" <?=$txtb?>><?=$row['pagw']?></td>
<td bgcolor="<?=$bgcolor?>" <?=$txtb?>><?=$row['weeks']?></td>
<td width="150" align="center" bgcolor="<?=$bgcolor?>" <?=$txtb?>><?=$row['artist']?></td>
<td width="172" align="center" bgcolor="<?=$bgcolor?>" <?=$txtb?>><?=$row['song']?></td>
</tr>
<?
}
?>

</table>
</form>


</code>

pats to neesmu rakstījis, bet būtu noderējis pa fikso savietot.

(Atbildēt uz šo) (Iepriekšējais)


[info]petro
2008-05-20 18:20 (saite)
Un vispar pietiek čakarāt bobi. Darbalaiks jau pirms stundas beidzās un par šito man, izskatās ka tāpat neviens nemaksās. Vnk. butu bijis patīkami dabūt "paldies" no kolēģiem, kuru darbs atvieglotos.

(Atbildēt uz šo) (Iepriekšējais)


[info]deele
2008-05-20 18:22 (saite)
[Error: Irreparable invalid markup ('<td <?>') in entry. Owner must fix manually. Raw contents below.]

UN vispār, kļūda ir tikai rindiņā: <td <?=$content_big;?></td> Kurai jābūt ir šādai: <td><?=$content_big;?></td> :P~

(Atbildēt uz šo) (Diskusija)


[info]deele
2008-05-20 18:27 (saite)
Papildus tam, noderīgi būtu arī lietot valīdus PHP tegus un ECHO.
Nepareizā rindiņa: <td><?=$content_big;?></td>
pareizā rindiņa: <td><?php echo $content_big; ?></td>

:)

(Atbildēt uz šo) (Iepriekšējais) (Diskusija)


[info]petro
2008-05-20 18:41 (saite)
ieliku atstarpes aiz '<?' un pirms '?>' - nepalīdz.
Tā daļa kas ir HTML viss notiek, bet tas kas ir starp '<?' un '?>' notiek nekas, bet atverot lapu ar browseri un paskatoties sourci rādās viss PHP kods kā dzīvs.

kad mēģinaju to $content_big saturu saglabāt atsevišķā failā un <?=$content_big;?> vietā ierakstīt <?include "filename.php";?> tad nebija nekādu problēmu, a tā caur DB nikā un viss :(

(Atbildēt uz šo) (Iepriekšējais) (Diskusija)


[info]bh
2008-05-20 19:03 (saite)
http://paste.php.lv/7429/nonum

(Atbildēt uz šo) (Iepriekšējais) (Diskusija)


[info]petro
2008-05-20 20:36 (saite)
Tas kods drīzāk ir vienkārši šim mērķim nepiemērots. Kopš tiem laikiem kad Rento vēl dzīvoja Latvijā un uztaisīja lapas engine (kurš manā skatījumā ir patiešām labs un advancēts) un šobrīdi, tai lapai ir bijuši kādi 4 dažādi "uzlabotāji", no kuriem domāju ka neviens nav bijis koderis ar gados mērāmu pieredzi. es jau citas sadaļas (kur tikai HTML) esmu koriģejis un n-tās kļudas izlabojis daudz kā lieka izmesdams, taču kā jau rakstīju PHP zināšanas man ir tādā līmenī ka derētu kādu 1/2gadu ar ko 10x vienkāršāku padarboties lai vismaz sintaksi iemācītos :)

(Atbildēt uz šo) (Iepriekšējais)


[info]petro
2008-05-20 21:13 (saite)
daleca . beidzot. kur ir errors. nu blin, kas par aklumu - 24h sktīties uz dažām rindiņām un neredzēt nepilnību vienā no tām.

(Atbildēt uz šo) (Iepriekšējais)


Neesi iežurnalējies. Iežurnalēties?