-2

私は現在、ユーザーがステータスを入力することを含むものを作成していますが、ユーザーがアポストロフィまたは二重引用符を使用してステータスを入力すると、エラーが発生します。

誰でも助けることができますか?ありがとう!ps 「あなたの投稿には、コード セクションを説明するコンテキストがあまりありません。シナリオをもっと明確に説明してください。」

私のget-posts.php

<?php

require('database/connect.php');

$result = mysql_query("SELECT * FROM posts ORDER BY date DESC");

while($row = mysql_fetch_array($result)) {

$email = $row['email'];

// To find username

$username = mysql_query("SELECT name FROM users WHERE email = '$email'");

$name = mysql_fetch_assoc($username);

// To make the date look prettier

$id = $row['id'];

$date_get = mysql_query("SELECT date FROM posts WHERE id='$id'");

$time = mysql_fetch_assoc($date_get);

$mysqldate = $time['date'];

$phpdate = strtotime( $mysqldate );

$DayMonthDay = date('l, F j', $phpdate);

$HourMinutePMAM = date('g:ia', $phpdate);

$date = $DayMonthDay." at ".$HourMinutePMAM;

echo "<div class='home-echoed-posts'>";

echo "<a href='#' class='home-echoed-posts-name'>".$name['name']."</a> ";

echo "<div class='home-echoed-posts-post'>".nl2br(stripslashes($row['post']))."</div>";

echo "<div class='home-echoed-posts-date'>".$date."</div>";

echo "</div>";

} 



?>

およびpost.php:

<?php
session_start();
require('database/connect.php');

if(empty($_POST['post'])){
    header('Location: home.php');
    }

$post = $_POST['post'];

$useremail =  $_SESSION['email'];

$result = mysql_query("INSERT INTO posts (post, email) VALUE ('$post', '$useremail')");

if($result==1) {
    header('Location: home.php');
    }else{
    die('We have experienced some technical problems, please try again');
    }
?>
4

1 に答える 1

1

たぶん、ユーザーからの入力をエスケープする必要がありますか?

PHPにはaddslashes ($user_status)

参照は次のとおりです。 http://php.net/manual/en/function.addslashes.php

DBMS を使用している場合は、ステータスをデータベースに保存する前に、必ず DBMS 固有のエスケープを使用してください。

  • MySQL の mysql_real_escape_string()
  • PostgreSQL の場合は pg_escape_string()
于 2012-06-14T05:08:04.903 に答える