Bir mysql tabloda html kodu ekleyerek

6 Cevap php

Ben bir web sitesi yönetmek için joomla kullanıyorsanız ... ve ben eklemek ve dinamik oluşturduğu web sayfalarının html saklamak için joomla tarafından kullanılan tablolara veri değiştirmek bir tek başına php uygulama geliştiriyorum ...

Çalışır şekilde ben içerik oluşturmak için bir joomla bileşeni kullanmak ve bu maddelerin html kodunu tablodaki bir alanda saklanır, content_table söylüyorlar, joomla tarafından .. Bu, html kod, daha sonra bir web sayfasının bir bölümünü oluşturmak için alınır olduğunu.

Ben, yani daha sonra sayfanın bir bölümünü oluşturmak için joomla tarafından alınabilir hangi content_table yayımlandı için html kodu ekleyin ... benim bağımsız uygulaması ile aynı yapmak istiyorum.

Sorun: html kodu, doğal, tabii, tek ve çift tırnak bir yeri vardır ve bu veritabanına eklerken .. I) (mysql_escape_string denedim bir sorun teşkil ve hala sözdizimi hataları olsun ..

Ben addslashes () kullanabilirsiniz ama joomla kendisi daha sonra kod alır beri, bunu daha sonra alınırken stripslashes () kullanmak mümkün değildir ....

Neyse ben html kodunu tablonun alan ekleyebilirsiniz var mı ...

Önerileriniz için teşekkürler ...!

Edit: mysql_escape_string ekledikten sonra () i almak

Error adding details. Reason : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'fulltext = '\n

Bu benim sorgu:

UPDATE $jos_content
SET    introtext = '$intro_code',
       fulltext  = '$article_code'
WHERE  id = '$article_id'";

Aşağıdaki gibi giriş dizesi:

 $article_code = '<hr id="system-readmore" />
<center>{loadposition user50}</center>
<p style="text-align: center;">
<span style="color: rgb(0, 255, 255);">
<i>
<b>
<span style="font-size: x-large;">
<span style="font-family: Arial;">
&nbsp;
</span>
</span>
</b>
</i>
</span>
<span style="color: rgb(0, 255, 255);">
<i>
<b>
<span style="font-size: x-large;">
<span style="font-family: Arial;">
<?php echo $title; ?>
</span>
</span>
</b>
</i>
</span>
<span style="color: rgb(0, 255, 255);">
<i>
<b>
<span style="font-size: x-large;">
<span style="font-family: Arial;">
<br />
</span>
</span>
</b>
</i>
</span>
</p>
<p style="text-align: center;">
<img height="269" width="515" border="3" 
title="<?php echo $title; ?>" 
alt=" <?php echo $title; ?>"
src="<?php echo $article_image;?>"
</p> 
<p>
<span style="font-size: small;">
<span style="font-family: Arial;">
<span style="color: rgb(153, 204, 255);">
<p style="margin-top: 2px; margin-bottom: 2px; margin-left: 120px; text-align: left;">
<i> 
<span style="color: rgb(0, 255, 0);"> 
<strong>
Cast&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :
</strong>
<b>
</b>
</span>
</i>
<span style="color: rgb(0, 255, 255);">
<b>
<?php echo $cast; ?>
</b>
</span>
<i>
<span style="color: rgb(0, 255, 255);">
<b>
<br />
</b>
</span>
</i>
<span style="font-family: Arial;">
<span style="font-size: small;">
<span style="color: rgb(153, 204, 255);">
</span>
</span>
<span style="color: rgb(0, 255, 0);">
<i>
<strong>
Direction&nbsp;&nbsp;&nbsp;
</strong>
</i>
<strong>
:
</strong>
<b>
</b>
</span>
<span style="color: rgb(0, 255, 255);">
<b>
<span class="href"
id="ctl00_ContentPlaceHolderMainContent_FormView1_Director">
<?php echo $director; ?>
</span>
</b>
</span>
</span>
<span style="font-family: Arial;">
<br />
<span style="color: rgb(0, 255, 0);">
<i>
<strong>
Production
</strong>
</i>
<strong>
:
</strong>
<b>
</b>
</span>
<span style="color: rgb(0, 255, 255);">
<b>
<?php echo $direction; ?>
</b>
</span>
<span style="color: rgb(255, 102, 0);">
<i>
<b>
<br />
</b>
</i>
</span>
<span style="font-family: Arial;">
<span style="color: rgb(0, 255, 0);">
<span style="font-family: Arial;">
<span style="font-size: small;">
<i>
<strong>
Music&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</strong>
</i>
<strong>
:
</strong>
</span>
</span>
</span>
</span>
<span style="color: rgb(0, 255, 255);">
<b>
<i>
</i>
<?php echo $music; ?>
<i>
<br />
<span style="color: rgb(0, 255, 0);">
Lyrics&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>
</i>
<span style="color: rgb(0, 255, 0);">
:
</span>
<i>
</i>
</b>
</span>
<span style="color: rgb(0, 255, 255);">
<b>
<?php echo $lyrics; ?>
</b>
</span>
<span style="color: rgb(0, 255, 255);">
<b>
<i>
<br />
</i>
<span style="color: rgb(0, 255, 0);">
<i>
Year&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</i>
:
</span>
<?php echo $year; ?>
</b>
</span>
</span>
<i>
<span style="color: rgb(0, 255, 255);">
<b>
</b>
</span>
</i>
</p>
</span>
</span>
</span>
</p>
<p>
<left>
{loadposition user14}
&nbsp;
</left>
</p>
<div style="text-align: center;">
<p>
<i>
<span style="font-family: Arial;">
<b>
<span style="font-size: medium;">
<span style="color: rgb(51, 255, 255);">
Click
<img src="images/stories/Play button1.png"
alt="alt" />
in the Playlist to Download Songs
</span>
</span>
</b>
</span>
</i>
</p>
</div>
<table border="0" align="center">
<tbody>
<tr>
<td>
<h4 style="text-align: center;">
<i>
<span style="color: rgb(102, 255, 0);">
<b>
<b>
&nbsp;High Bandwidth Users
</b>
</b>
</span>
</i>
<i>
<span style="color: rgb(102, 255, 0);">
<b>
<b>
&nbsp;
</b>
</b>
</span>
</i>
<span style="color: rgb(102, 255, 0);">
<b>
</b>
</span>
</h4>
</td>
<td>
<h4 style="text-align: center;">
<i>
<span style="color: rgb(102, 255, 0);">
<b>
<b>
&nbsp;Low Bandwidth Users
</b>
</b>
</span>
</i>
<span style="color: rgb(102, 255, 0);">
<b>
<br />
</b>
</span>
</h4>
</td>
</tr>
<tr>
<td>
{auto width=&quot;235&quot; displayheight=&quot;0&quot; height=&quot;225&quot;} <?php echo $hqList; ?> {/auto}
</td>
<td>
{auto width=&quot;235&quot; displayheight=&quot;0&quot; height=&quot;225&quot;}<?php echo $lqList; ?>{/auto}
</td>
</tr>
</tbody>
</table>
<center>
{loadposition user50}
</center>';

6 Cevap

Eh .. o .. sorun kaçan işlevi sayesinde tüm değilmiş ayıklanmış ...

Sorguyu Çıkış:

UPDATE $jos_content
SET    introtext = '$intro_code',
       fulltext  = '$article_code'
WHERE  id = '$article_id'";

Sen 'tam metin' alanının ... Görünüşe göre, kelime "tam metin" it METİN, INT, MEDIUMTEXT vb gibi bir alan türü bulunuyor, bir mysql anahtar kelime ... hassas olmak olduğunu görebilirsiniz ..

Ben bu sorguyu değiştirdi

"UPDATE $jos_content
SET    $jos_content.introtext = '$intro_code',
       $jos_content.fulltext  = '$article_code'
WHERE  $jos_content.id = '$article_id'";

Ve işte ...!!

Ben veritabanına takmadan önce, sıradan bir dizeye kodunu dönüştürmek için tercih. Ben en güvenli bir senaryo düşünüyorum. Bu kodu kullanarak düşünün:

$article_code = base64_encode($article_code);
/* insert to database */

Eğer geri bu kodu kullanmak istediğinizde, sadece base64_decode kullanarak çözmek. Ben $ article_code yerine 'varchar' tasarruf için 'text' veri türünü kullanmak öneririz.

Sen bölü gerekmez. Normal ekler sırasında bir sorun neden olur tek şey tırnak, ve mysql_escape_string() O hariç charset konuları işlemesi gerekir. Try mysql_real_escape_string() de.

Ayrıca, veritabanı ham kullanıcı tarafından sağlanan HTML depolama güvenlik sorunlarına yol açabilir unutmayın. Yerine BBCode veya markdown gibi bir şey kullanmayı düşünün.

Sadece onaylamak için, sorgu bu hakkı gibi görünür:

$query = '
    UPDATE "'.mysql_real_escape_string ($jos_content).'"
    SET    introtext = "'.mysql_real_escape_string ($intro_code).'",
           fulltext  = "'.mysql_real_escape_string ($article_code).'"
    WHERE  id = "'.mysql_real_escape_string ($article_id).'"
";

fulltext bir mysql önceden tanımlayabilirsiniz anahtar kelimedir. Akut (`) veya tek tırnak kullanın (')

İşte kod -

UPDATE $jos_content
SET    `introtext` = '$intro_code',
       `fulltext`  = '$article_code'
WHERE  `id` = '$article_id'";

I had the same problem, I fixed it with regular expressions. You can use something like this: $target = '{~p class={{q}}important-text{{q}}~}Some text here {~/p~}';

ve ardından preg_replace() işlevini kullanın:

class handle  
{ 
  public static function makehtml($target)   
  {
    $output = preg_replace("#{~#", "<", $target);
    $output = preg_replace("#~}#", ">", $target);
    $output = preg_replace("#{{q}}#", '"', $target);  
    return $output;
 }  
}  
echo handle::makehtml($target);
// output : <p class="important-text">Some text here</p>