Php 调试不使用';我跑不好
我正在使用PHP OOP开发我的项目,但我遇到了一个问题 基本上,我制作了一个表格来更新表中的一些数据:Php 调试不使用';我跑不好,php,mysql,pdo,Php,Mysql,Pdo,我正在使用PHP OOP开发我的项目,但我遇到了一个问题 基本上,我制作了一个表格来更新表中的一些数据: <form method="POST" action=""> <div class='row'> <div class='col-md-6'> <div class='box box-primary'> <div cla
<form method="POST" action="">
<div class='row'>
<div class='col-md-6'>
<div class='box box-primary'>
<div class='box-body'>
<div class='form-group'>
<label>Page Meta:</label>
<input type='text' name='page_meta' class='form-control' id='usr' value='<?php $pageSet->GetMeta(); ?>'>
</div>
<div class='form-group'>
<label>Page Keywords:</label>
<input type='text' name='page_keywords' class='form-control' id='usr' value='<?php $pageSet->GetKeywords(); ?>'>
</div>
<button type='submit' name='ersal' class='btn btn-primary'>Submit</button>
<button type='reset' class='btn'>Reset</button>
</div>
</div>
</div>
</div>
</form>
如您所见,我从Page
调用NewDetails
类,如下所示:
public function NewDetails($pagemeta,$pagekeywords,$pageurl)
{
if(!empty($pagemeta)&&!empty($pagekeywords)&&!empty($pageurl))
{
$reg = $this->_db->prepare("UPDATE pages SET page_meta = ? ,page_keywords = ? WHERE page_url = ?");
$reg->bindParam(1,$pagemeta);
$reg->bindParam(2,$pagekeywords);
$reg->bindParam(3,$pageurl);
$reg->execute();
echo '<META HTTP-EQUIV="Refresh" Content="0; URL=viewpage.php?page_url=homepage">';
}
}
然后它说:
对象(PDO语句)#11(1){
[“查询字符串”]=>
字符串(68)“更新页面集页面\元=?,页面\关键字=?其中页面\ url=?”
}你到底有什么问题?您的代码没有任何您想要从中获得结果的输出 若你们想从NewDetails中得到结果,你们应该返回你们放在“echo”语句中的html标签。在NewDetails方法中,mean使用return而不是echo。因为您的NewDetails方法现在没有任何返回类型,并且它的返回是无效的 最后,如果您想从NewDetails中获得结果,应该在操作表单中重命名$notice变量,因为您已经为$notice类数组创建了新索引,但在下一行中,您在同一个变量中写入了新的详细信息。样本:
NewDetails方法:
public function NewDetails($pagemeta,$pagekeywords,$pageurl){
if(!empty($pagemeta)&&!empty($pagekeywords)&&!empty($pageurl)){
$register = $this->_db->prepare('UPDATE pages SET page_meta = :page_meta, page_keywords = :page_keywords WHERE page_url = :page_url');
$register->bindParam(':page_meta', $pagemeta);
$register->bindParam(':page_keywords', $pagekeywords);
$register->bindParam(':page_url', $pageurl);
return($register->execute() ?: false);
}else{
return false;
}
}
您是否检查了服务器错误日志?如果没有错误,您确定此代码按预期运行吗?您可以随时尝试不时插入
var\u dump
以找到答案。@tedman它在XAMPP上运行,值得注意的是echo'
东西是一种非常笨拙的重定向方式。只需与位置一起使用:
.XAMPP或其他无关紧要的东西,它们都有某种错误日志,可以告诉您许多重要的事情。$pageurl=$\u GET['page\u url']
当他使用bindParam()
准备好的查询时,SQL注入是如何开放的?@Barmar。你说得对。对不起,我弄错了。这是早晨,我现在醒来了:我编辑了我的帖子。谢谢你的关注
if(!empty($pagemeta)&&!empty($pagekeywords)&&!empty($pageurl))
{
$reg = $this->_db->prepare("UPDATE pages SET page_meta = ? ,page_keywords = ? WHERE page_url = ?");
$reg->bindParam(1,$pagemeta);
$reg->bindParam(2,$pagekeywords);
$reg->bindParam(3,$pageurl);
$reg->execute();
die(var_dump($reg));
}
public function NewDetails($pagemeta,$pagekeywords,$pageurl){
if(!empty($pagemeta)&&!empty($pagekeywords)&&!empty($pageurl)){
$register = $this->_db->prepare('UPDATE pages SET page_meta = :page_meta, page_keywords = :page_keywords WHERE page_url = :page_url');
$register->bindParam(':page_meta', $pagemeta);
$register->bindParam(':page_keywords', $pagekeywords);
$register->bindParam(':page_url', $pageurl);
return($register->execute() ?: false);
}else{
return false;
}
}
if (isset($_POST['ersal'])){
$ersal = new Page();
// update query
$update_status = $ersal->NewDetails($_GET['page_url'], $_POST['page_meta'], $_POST['page_keywords']);
// see the result of update
var_dump($update_status);
// your getNotice method that you don't puted there in your post
$notice = $ersal->getNotice();
}