微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 编辑用户的个人资料页面

我目前正在尝试制作个人资料编辑页面.我正在使用PHPMySQL作为数据库.我对PHPMysqL了解不多.我的问题是:当我按提交时,我得到一个空白页面.它不会打印出错误或成功.有关如何解决它的任何想法?这是我的PHP代码

<?PHP
  session_start();
  include_once 'dbconfig.PHP';
  if(!isset($_SESSION['user'])) {
    $userRow=MysqL_fetch_array($res);
    $username= $userRow["user_name"];
    $useremail= $userRow["user_email"];
    $userabout= $userRow["user_about"];

    $results = $MysqLi->query("UPDATE users SET user_name='$username', user_email='$useremail', user_about='username' WHERE user_id=user");    

    if($results){
      print 'Success! record updated'; 
    } else {
      print 'Error : ('. $MysqLi->errno .') '. $MysqLi->error;
    }
  }
?>

我的表单代码用于更新用户的信息:

<?PHP
  session_start();
  include_once 'dbconfig.PHP';

  if(!isset($_SESSION['user'])) {
    header("Location: index.PHP");
  }
  $res=MysqL_query("SELECT * FROM users WHERE user_id=".$_SESSION['user']);
  $userRow=MysqL_fetch_array($res);
?>

<div class="main">
  <form action="change.PHP" method="post">
    <div>
      <label for="uname"><a>User Name:</a></label>
      <input type="text" name="username"  value="<?PHP echo $userRow['user_name'];?>"/>
    </div>

    <div>
      <label for="email"><a>Email:</a></label>
      <input type="text" name="useremail"  value="<?PHP  echo $userRow['user_email'];?>"/>
    </div>

    <div>
      <label for="about"><a>About me:</a></label>
      <textarea name="userabout" rows="10" cols="30" value="<?PHP echo $userRow['user_about'];?>"/></textarea>
    </div>

    <input type="submit"  value="Submit">

  </form>
</div>

解决方法:

代替

<textarea name="userabout" rows="10" cols="30" value="<?PHP echo $userRow['user_about'];?>"/></textarea>

使用

<textarea name="userabout" rows="10" cols="30"><?PHP echo $userRow['user_about'];?></textarea>

此外,这一结果是错误的:

/></textarea>

但问题是这部分:

user_id=user

用户无法识别,并引发错误.由于PHP错误显示在您的服务器上,因此您看不到任何内容.但是,如果您查看日志,您将看到有关MysqL中语法错误的问题.你想在那里使用$_SESSION [‘user’]而不是用户.

最后,您的代码容易受到sql注入和XSS注入的攻击.请转义您的查询或使用PDO到cope with SQL injectionprevent XSS injection.

在许多项目中,我有一个PHP的Common类,它包含常见的功能.这是其中之一:

public static function protectArrayAgainstXSS(&$arr) {
    $changed = false;
    foreach ($arr as $index => $a) {
        if (is_array($a)) {
            $changed = $changed || Common::protectArrayAgainstXSS($arr[$index]);
        } else if ($a !== null) {
            $changed = $changed || ($arr[$index] === strip_tags($a));
            $arr[$index] = strip_tags($a);
        }
    }
    return !$changed;
}   

例如,您可以通过调用Common :: protectArrayAgainstXSS($_ POST)来使用它来保护您的项目免受XSS注入.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐