Ckeditor sadece içerik parçası sunar

3 Cevap php

Ben sunulacak ckeditor verileri toplamak için ajax kullanıyorum. İlk kesme veritabanına sunulmadan önce sorun yalnızca içeriğidir. Neyi yanlış yapıyor olabilir?

Edit:

$date = strtotime($formData['date']);
$article=mysql_real_escape_string($formData['article'],$DBconnect);

$DBconnect=mysql_connect($dbVals['host'],$dbVals['user'],$dbVals['pass']);

mysql_select_db($dbVals['db'], $DBconnect);
$SQLstring="INSERT INTO PressRelease (ip, tym, title, date, article) VALUES('${_SERVER['REMOTE_ADDR']}', ".time().",'${formData['title']}', '$date', '$article')";

Eğer bana bildirin yardımcı olmak için görmek gerekir başka bir şey varsa ben bu yüzden de oldukça yeniyim.

3 Cevap

Eğer veritabanına eklemeden önce metin verilerini kaçan değil gibi geliyor. Eğer SQL sorgusu geçirmeden önce veri üzerinde bu işlevi kullanın:

http://www.php.net/manual/en/function.mysql-real-escape-string.php

Düzenleme: Üzgünüm, bu MySQL kullanıyorsanız varsayarak bulunuyor.

Mark tarafından önerilen biri için, farklı, daha karmaşık, ve belki üstün bir yöntem kullanıyor Parameterized Statements.

Vikipedi bir örnek ödünç için:

<?php
$db = new mysqli("localhost", "user", "pass", "database");
$stmt = $db -> prepare("SELECT priv FROM testUsers WHERE username=? AND password=?");
$stmt -> bind_param("ss", $user, $pass);
$stmt -> execute();
?>

Bu ciddi SQL Enjeksiyon ve yanlışlıkla çift kaçması gibi şeyler şansını azaltarak, MySQL sürücü kadar kaçan bırakır.

Bu old MySQL functions ile mümkün olmadığını not edin. Sen Improved MySQLI fonksiyonlar / nesne, veya PDO gibi bir şey gerekir.

Eğer doğru anlamak şu durumda:

  • Sen ckeditor tarafından "ele" olan bir textarea var
  • JavaScript ile bu textarea içeriğini okuyorsunuz
  • AJAX ile sunucu toplanan içeriği yolluyorlar

Eğer () JavaScript textarea alır içeriği uyarmak ise, adım 2 başarılı olup olmadığını görebilirsiniz. Değilse, Javascript yayınlayın lütfen.

2. adımı doğru ise, o zaman belki orada bir sorun sunucu tarafı, o bakmak için db sorgu dökümü.

Update: Make sure you when you're developing that you turn on all errors and notices. And if you're doing stuff which you can't "see" easily, like AJAX, make sure to keep an eye on your server's error log.

Kod örneği 2. satırında sen $ DBconnect kullanın ve sonra 4. satırda sen ne olduğunu tanımlamak. Fonksiyon veritabanına bir bağlantı bulamıyorum eğer the PHP.net entry for mysql_real_escape_string gördüğünüz gibi işlevi bir hata üretir ve FALSE döndürür. YANLIŞ veritabanı içine koymak ve bu veritabanına gider ne olduğunu.

Benim size tavsiyem: hata ayıklama da daha denemek. , Tüm varsayımlarını test her adımda değişkenlerin değerini test, onlar bunları olmasını bekliyoruz değere sahip olmadığını kontrol edin. Var_dump (), print_r (), echo kullanmak ve die (). Yoksa bir şey daha gelişmiş kullanmak bir hata ayıklayıcı (bilmiyorum) istiyorsanız.