2010-03-31 3 views
0

Когда мой код хранится и сохраняется и выставляется, я продолжаю получать эти косые черты \\\\\ в своем выходном тексте. как я могу избавиться от этих косых черт?Проблемы с PHP и MySQL?

Вот код PHP.

if (isset($_POST['submitted'])) { // Handle the form. 


require_once '../../htmlpurifier/library/HTMLPurifier.auto.php'; 

$config = HTMLPurifier_Config::createDefault(); 
$config->set('Core.Encoding', 'UTF-8'); // replace with your encoding 
$config->set('HTML.Doctype', 'XHTML 1.0 Strict'); // replace with your doctype 
$purifier = new HTMLPurifier($config); 


$mysqli = mysqli_connect("localhost", "root", "", "sitename"); 
$dbc = mysqli_query($mysqli,"SELECT users.*, profile.* 
           FROM users 
           INNER JOIN contact_info ON contact_info.user_id = users.user_id 
           WHERE users.user_id=3"); 

$about_me = mysqli_real_escape_string($mysqli, $purifier->purify($_POST['about_me'])); 
$interests = mysqli_real_escape_string($mysqli, $purifier->purify($_POST['interests'])); 



if (mysqli_num_rows($dbc) == 0) { 
     $mysqli = mysqli_connect("localhost", "root", "", "sitename"); 
     $dbc = mysqli_query($mysqli,"INSERT INTO profile (user_id, about_me, interests) 
            VALUES ('$user_id', '$about_me', '$interests')"); 
} 



if ($dbc == TRUE) { 
     $dbc = mysqli_query($mysqli,"UPDATE profile 
            SET about_me = '$about_me', interests = '$interests' 
            WHERE user_id = '$user_id'"); 

     echo '<p class="changes-saved">Your changes have been saved!</p>'; 
} 


if (!$dbc) { 
     // There was an error...do something about it here... 
     print mysqli_error($mysqli); 
     return; 
} 

} 


Вот код XHTML.

<form method="post" action="index.php"> 
    <fieldset> 
     <ul> 
      <li><label for="about_me">About Me: </label> 
      <textarea rows="8" cols="60" name="about_me" id="about_me"><?php if (isset($_POST['about_me'])) { echo mysqli_real_escape_string($mysqli, $_POST['about_me']); } else if(!empty($about_me)) { echo mysqli_real_escape_string($mysqli, $about_me); } ?></textarea></li> 

      <li><label for="my-interests">My Interests: </label> 
      <textarea rows="8" cols="60" name="interests" id="interests"><?php if (isset($_POST['interests'])) { echo mysqli_real_escape_string($mysqli, $_POST['interests']); } else if(!empty($interests)) { echo mysqli_real_escape_string($mysqli, $interests); } ?></textarea></li> 

      <li><input type="submit" name="submit" value="Save Changes" class="save-button" /> 
       <input type="hidden" name="submitted" value="true" /> 
      <input type="submit" name="submit" value="Preview Changes" class="preview-changes-button" /></li> 
     </ul> 
    </fieldset> 

</form> 
+3

В коде xhtml: вы используете 'mysql_real_escape_string' неправильно, это для того, чтобы сбрасывать материал в базу данных. То, что вы хотите в этом месте, это 'htmlspecialchars'. – SeanJA

+0

Имеются ли фактические косые черты в ваших данных, то есть хранятся в базе данных? Возможно, вы включили страшные «magic_quotes» и вдвойне избегаете ввода. – bdl

ответ

-1

При извлечении данных из MySQL, вы хотите, чтобы запустить его через это, чтобы получить чистый вывод:

$clean_value = stripslashes($value); 
+0

Удалит ли это слэши из моей разметки HTML? – TaG

+0

Я так не думаю, но я не уверен. Попробуйте прочитать об этом - http://php.net/manual/en/function.stripslashes.php – swt83

Смежные вопросы