// username and password sent from form
$myusername=$_POST['login_user_name'];
$mypassword=$_POST['login_password'];
// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$sql="SELECT * FROM $tbl_name WHERE user_name='$myusername' and password='$mypassword'";
$result=mysql_query($sql);
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
session_register("login_user_name");
session_register("login_password");
header("location:login-success.php");
}
else {
echo "Wrong Username or Password";
}
?>
这在控制台中打印myname。 但我必须打印这个
function myname()
{
Console.log(arguments.callee.toString().match(/function ([^\(]+)/)[1]);
}
这是一个错误。 有没有办法从上面定义的问题打印myname。我只能从里面打电话。
答案 0 :(得分:2)
您确定要使用":",而不是" ="
var myname = function myname() {
console.log(arguments.callee.toString().match(/function ([^\(]+)/)[1]);
}
这有效。
或者你是说这个?
var myObj = {
myname: function myname() {
console.log(arguments.callee.toString().match(/function ([^\(]+)/)[1]);
}
}
myObj.myname()
或者你可以尝试这个,快速n'脏。您可以使其更加健壮:这种用法存在局限性。
function findKey(val) {
for (v in myObj) {
if( myObj[v].toString() === val) {
return v
}
}
}
var myObj = {
myname: function() {
console.log(findKey(arguments.callee.toString()));
}
}
myObj.myname()
答案 1 :(得分:2)
myname: function() {
console.log(arguments.callee.toString().match(/function ([^\(]+)/)[1]);
}
在上面的代码中,myname不是funciton的名称,它是指向匿名函数的属性名称。
如果您想要该功能的名称,则必须提供一个。所以,例如
var a = {
myname:function myname()
{
console.log(arguments.callee.toString().match(/function ([^\(]+)/)[1]);
}
};
a.myname();
这将打印myname
。
有关更多信息,请阅读此内容。 - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments/callee