【发布时间】:2011-04-21 15:20:52
【问题描述】:
这是类定义,
public function __construct($icontext, $ititle, $iorgs_id, $icreated_at) {
$this->context = $icontext;
$this->orgs_id = $iorgs_id;
$this->created_at = $icreated_at;
$this->title = $ititle;
}
//put your code here
//crud fonksiyonlari burda basliyor
public function create(){
$createann = mysql_query("INSERT INTO anns(context, title, orgs_id, created_at) VALUES('$this->context', '$this->title', $this->orgs_id, '$this->created_at'");
if($createann) return "Duyuru Başarıyla Eklendi"; else return "Duyuru Eklenemedi";
}
public function read($id){
$readann = mysql_query("SELECT * FROM anns WHERE id = $id");
$context = mysql_result($readann,0, "context");
$title = mysql_result($readann,0, "title");
$orgs_id = mysql_result($readann,0, "orgs_id");
$created_at = mysql_result($readann,0, "created_at");
$ann = new ann($context, $title, $orgs_id, $created_at);
return $ann;
}
public function update($id, $context, $title){
$updateann = mysql_query("UPDATE anns SET context = '$context', title = '$title' WHERE id = $id");
if($updateann) echo "Duyuru başarıyla güncellendi"; else echo "Duyuru güncellenemedi";
}
public function delete($id){
$deleteann = mysql_query("DELETE FROM anns WHERE id = $id");
if($deleteann){
echo "Duyuru başarıyla silindi";}
else{
echo "Duyuru silinemedi";}
}
//crud fonksiyonlari burda bitiyor
}
?>
这是我们从中创建对象的函数,
<?php
require_once '../include/functions.php';
require_once '../db_classes/ann.php';
$sonuc = login_check();
$iann = new ann(guvenlik($_POST['context']),guvenlik($_POST['title']), $orgs_id, 1231232);
$iann.create();
if($ann) echo "alallaal";
if(!$ann) echo "sadfasfdsdf";
?>
最后,这是我们得到的错误日志:D
PHP Fatal error: Call to undefined function create() in /var/www/pe/actions/newann.php on line 7" while reading response header from upstream
我们是php新手,所以这一定是我们造成的一个非常简单的错误,但我们无法找出问题所在。谢谢
【问题讨论】:
-
注意。您的 sql 代码很容易受到 sql 注入的影响
-
不,不是,它是用“guvenlik”功能检查注射的。不过谢谢提醒:)
-
我不知道
guvenlik做了什么,甚至是什么意思……不过,$orgs_id看起来没有转义。 (为什么函数的调用者要处理转义?这应该发生在函数内部,你可以控制它。在调用函数之前必须转义只是意味着你有一天会忘记转义)与所有这些无关:您不能在字符串中使用$this->var并期望php 将其替换为实际值,您必须使用${this->var}