所以这是我的代码
function func_readmsg () {
$targetmessage = $_POST['inquiry_no'];
$result = mysqli_query(mysqli_connect("localhost", "root", "", "dbbyahenijuan"),
"SELECT * FROM tblinquiry where finquiry_no='$targetmessage' ");
while($row = mysqli_fetch_array($result)) {
global $sender, $message, $date;
$sender = $row['ffull_name'];
$message = $row['fmessage'];
$date = $row['fdate'];
}
echo "
<script>
$(document).ready(function(){
$('#messagewindow').fadeIn('show');
});
</script>";
}
function func_delmsg () {
echo $targetmessage;
}
我需要从$targetmessage
转移或读取func_readmsg
的值到func_delmsg
。
我已经尝试过$GLOBALS['targetmessage']
,global $targetmessage
。请帮忙。
答案 0 :(得分:0)
在任何php函数之外声明你的变量$targetmessage;
,当你想在函数内部访问R / W的这个变量时,你必须这样做global $targetmessage;
答案 1 :(得分:0)
您可以将变量传递给另一个函数或使它们成为类的一部分:
<?php
class MessageClass
{
public $targetmessage;
public function func_readmsg() {
$this->targetmessage = $_POST['inquiry_no'];
$result = mysqli_query(mysqli_connect("localhost", "root", "", "dbbyahenijuan"),
"SELECT * FROM tblinquiry where finquiry_no='".$this->targetmessage."'");
while($row = mysqli_fetch_array($result)) {
global $sender, $message, $date;
$sender = $row['ffull_name'];
$message = $row['fmessage'];
$date = $row['fdate'];
} ?>
<script>
$(document).ready(function(){
$('#messagewindow').fadeIn('show');
});
</script><?php
}
public function func_delmsg() {
echo $this->targetmessage;
}
}
// To implement
$reader = new MessageClass();
// Function 1
$reader->func_readmsg();
// Function 2
$reader->func_delmsg(); ?>
答案 2 :(得分:0)
是在会话中吗?使用会话变量。 $ _SESSION [ 'targetmessage'];
答案 3 :(得分:0)
通常的做法是将消息作为参数传递给您的函数:
$targetmessage = $_POST['inquiry_no'];
// run func_readmsg on $targetmessage
func_readmsg($targetmessage);
// now do something else with it
func_delmsg($targetmessage);
function func_readmsg ($message) {
// do stuff with $message
}
function func_delmsg ($message) {
echo $message;
}
PHP手册中有大量关于how to write functions and use arguments的文档。
答案 4 :(得分:0)
您可以使用global variable。在两个函数的开头添加global $targetmessage;
。注意副作用:该变量也可以从其他地方访问。
不要忘记在第二个之前拨打第一个,否则$targetmessage
将无法定义。
示例:的
function foo()
{
global $var;
$var = 'foo';
var_dump($var);
}
function bar()
{
global $var;
var_dump($var);
}
foo();
bar();
最后的注释:
您实际应该使用参数而不是全局变量:function func_readmsg($targetmessage)
和function func_delmsg($targetmessage)
,然后在调用函数时将$targetmessage
的值作为参数传递。
发现SQL注入:
"SELECT * FROM tblinquiry where finquiry_no='$targetmessage' "
如果$_POST['inquiry_no']
是' OR 1='1
,该怎么办?