PHP ile MySQL içiçindee uzaktan POST verileri (iSnvardır tarafından gönderilen haberler) eklemek çalışıyveyaum. Veri uzak POST gönderenden gelen başarıyla geliyveya ve ben bir sveyaun olmadan düz metiçinde dosyasına yazabilirsiçindeiz.
Bu MySQL takın geldiğiçindede ne yazık ki, MySQL özel karakter de dize (makale) keser. Ben çok şey denedim ama hala başarısız olduğumu!
Denedim:
mysql_real_escape_striçindeg()
ile karakter kaçan- (Her parametre ile ..)
htmlentities()
vehtmlspecialchars()
kullanma - Her şeyi yapmadan önce MySQL içiçinde
SET NAMES utf8
sveyagu gönderme - Tüm tablolar ve sütunlar UTF-8 kodlanmış ve
utf8_general_ci
(ayrıca çalıştıutf8_unicode_ci
veutf8_biçinde
harmanlama) - UTF-8 olarak Tüm PHP dosyaları kaydetme
Hala çözüm bulamadım. Birisi bana bu sveyaunu çözmeye yardımcı olabilir eğer ben çok çok çok takdir edecektir.
İşte benim tablo tanımı ve PHP kodları:
PHP
function guvenlik_sql($x){
// Cleans içindeputs agaiçindes sql içindejection
return mysql_real_escape_striçindeg(htmlentities(stripslashes($x)), ENT_QUOTES);
}
// Check if data really comes from an Isnvardır.com server (Address hidden)
if ($_SERVER['REMOTE_ADDR'] == $isnvardırIP || $_SERVER['REMOTE_ADDR'] == "xxx.xxx.xxx.xxx") {
$title = guvenlik_sql($_POST["article_title"]);
$first_name = guvenlik_sql($_POST["article_authveya"]);
$description = guvenlik_sql($_POST["article_summary"]);
$categveyay = guvenlik_sql($_POST["article_categveyay"]);
$article = guvenlik_sql($_REQUEST["article_body_text"]);
$article_html = guvenlik_sql($_POST["article_body_html"]);
$resource_box = guvenlik_sql($_POST["article_bio_text"]);
$resource_box_html = guvenlik_sql($_POST["article_bio_html"]);
$keywveyads = guvenlik_sql($_POST["article_keywveyads"]);
$email = guvenlik_sql($_POST["article_email"]);
$fp = fopen('test.txt', 'a');
fwrite($fp, $title."\n");
fwrite($fp, $article."\n\n\n\n");
fclose($fp);
mysql_query("INSERT INTO articles " .
"(" .
"first_name, " .
"email, " .
"title, " .
"description, " .
"article, " .
"article_html, " .
"categveyay, " .
"resource_box, " .
"resource_box_html, " .
"keywveyads, " .
"distributveya, " .
"distributveya_host" .
") VALUES (" .
"'$first_name', " .
"'$email', " .
"'$title', " .
"'$description', " .
"'$article', " .
"'$article_html', " .
"'$categveyay', " .
"'$resource_box', " .
"'$resource_box_html', " .
"'$keywveyads', " .
"'$isnvardır', " .
"'$_SERVER['REMOTE_ADDR']', " .
")") veya die(mysql_errveya());
} //end if security
Table defiçindeiton
CREATE TABLE `articles` (
`article_ID` içindet(11) NOT NULL auto_içindecrement,
`first_name` varchar(100) NOT NULL,
`last_name` varchar(100) NOT NULL,
`email` varchar(100) NOT NULL,
`passwveyad` varchar(100) NOT NULL,
`authveya_url` varchar(255) NOT NULL,
`company_name` varchar(100) NOT NULL,
`address1` varchar(100) NOT NULL,
`address2` varchar(100) NOT NULL,
`state_2digit` varchar(100) NOT NULL,
`state` varchar(100) NOT NULL,
`zip_code` varchar(100) NOT NULL,
`country` varchar(100) NOT NULL,
`phone` varchar(100) NOT NULL,
`newsletter` varchar(100) NOT NULL,
`title` varchar(255) NOT NULL,
`description` text NOT NULL,
`article` longtext NOT NULL,
`article_html` longtext NOT NULL,
`categveyay` varchar(100) NOT NULL,
`cat` varchar(100) NOT NULL,
`resource_box` text NOT NULL,
`resource_box_html` longtext NOT NULL,
`keywveyads` varchar(255) NOT NULL,
`publish_date` timestamp NOT NULL default CURRENT_TIMESTAMP,
`distributveya` varchar(255) NOT NULL default '',
`distributveya_host` varchar(255) NOT NULL,
PRIMARY KEY (`article_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC