以下是示例代码,因此从我的javascript中发送一个名为action =“login”的帖子变量
此操作将发送到包含此
的controller.php文件<?php
require_once('config.php');
require_once('functions.php');
if(isset($_POST['action']) && !empty($_POST['action'])){
$action = $_POST['action'];
$con = db_connect(SERVER, USER, PASSWORD, DB_NAME);
switch($action){
/****************************
* MISC SCENARIOS
**************************/
case "login":
login($con);
break;
}
mysqli_close($con);
}
?>
然后在functions.php文件中调用看起来像这样的登录函数
function login($con){
$email = trim($_POST['email']);
$password = trim($_POST['password']);
if(isset($email) && !empty($email) && isset($password) && !empty($password)){
$connector = db_connect(SERVER, USER, PASSWORD, DB_NAME);
$query = "SELECT * FROM edwaze_quiz.USERS WHERE EMAIL = '".$email."' AND PASSWORD = '".$password."' AND RIGHTS < 4;";
$result = mysqli_query($con, $query);
$count = mysqli_num_rows($result);
if($count == 1){
$result = mysqli_fetch_assoc($result);
$name = $result['FIRST_NAME']." ".$result['SURNAME'];
$path = '/quizz/profile images/';
$picture = "unknown.jpeg";
if($result['IMAGE'])
$picture = $result['IMAGE'];
$picture = $path.$picture;
echo json_encode(array($name, $picture));
}else
echo false;
}
}
现在,我的问题是,这在localhost中完美运行。但是,当我把它放在远程服务器上时,我绝对没有回来。没有反应。我试图把一堆“echo”全部放在一边,即使在controller.php中的“require_once”代码之后的顶部,仍然没有。
config.php包含所有需要的数据库变量。用户名,密码
我无法弄清楚为什么它不起作用,请帮忙吗?
答案 0 :(得分:0)
这是一个简单的例子:
<?php
function login(){
$email = trim($_POST['email']);
$password = trim($_POST['password']);
echo json_encode(array($email,$password));
}
if(empty($_GET["page"])) header("location:34975890.php?page=start");
if($_GET['page']=='start'){?>
<!-- Latest compiled and minified JS -->
<script src="//code.jquery.com/jquery.js"></script>
<script type="text/javascript">
function getLogin(){
$.ajax({
url: '34975890.php?page=send',
type: 'POST',
dataType: 'json',
data: {email: 'myemail@mail.com',password:'1234'},
success:function(result){
console.log(result);
alert("complete");
}
});
}
</script>
<form action="javascript:getLogin()">
<button type="submit">Launch</button>
</form>
<?php }else if($_GET['page']=='send'){
login();
}
?>
尝试并告诉我,我只用一个小例子用PHP嵌入了html,但是可以读取数据。您可以轻轻地聚集部分代码来登录php功能。
答案 1 :(得分:0)
我将问题追溯到包含此
的函数中的一行if(!empty(trim($fileName)))
unlink($root."/".str_replace("../", "", trim($fileName)));
通过从“empty()”中删除“trim”功能到此
来结束if(!empty($fileName))
unlink($root."/".str_replace("../", "", trim($fileName)));
解决了这个问题。
从php手册中为空,这是引用
注意: 在PHP 5.5之前,empty()仅支持变量;其他任何东西都会导致解析错误。换句话说,以下将不起作用:empty(trim($ name))。相反,使用trim($ name)== false。 如果变量不存在,则不会生成警告。这意味着empty()基本上是!isset($ var)||的简洁等价物$ var == false。
我希望这有助于某人。欢呼声。