ACRA Вставить отчет в базу данных моего сервера

Я успешно настроил ACRA для отправки моих перехваченных исключений на сервер, проблема в том, что я не могу вставить отчет в базу данных:

@AcraCore(buildConfigClass = BuildConfig.class)
@AcraHttpSender(uri = "http://www.myserver.com/crashreports/addreport.php",
httpMethod = HttpSender.Method.POST)

public class MyApplication extends Application {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);

ACRA.init(this);
}
}

Я знаю, что это посылает что-то, потому что я вижу пустую запись в моем phpMyAdmin, но я не могу получить отчет в базе данных:

<?php
$link = mysqli_connect("localhost", "root", "pass", "db");

// Check connection
if($link === false){
die("ERROR: Could not connect. " . mysqli_connect_error());
}

// Escape user inputs for security
$report = mysqli_real_escape_string($link, $_REQUEST['']);

// attempt insert query execution
$sql = "INSERT INTO VoiceRemoteCrash (report) VALUES ('$report')";

if(mysqli_query($link, $sql)){
echo "Records added successfully.";
} else{
echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}

// close connection
mysqli_close($link);
?>

Я искал документы, но не нашел много информации, и мой PHP знание несколько базовое.

0

Решение

$_REQUEST[''] вернется NULL и бросит «неопределенный индекс» уведомление.

Вы можете получить свой отчет из исходных данных POST, используя file_get_contents('php://input'),

Я предлагаю вам взглянуть на: Как я могу предотвратить внедрение SQL в PHP? и использовать параметризованные запросы.

1

Другие решения

Эта строка ссылается на бессмысленную переменную:

$report = mysqli_real_escape_string($link, $_REQUEST['']);

Вы хотите что-то вроде:

$report = mysqli_real_escape_string($link, $_REQUEST['form_variable_name']);

Но вы даже не должны этого делать, потому что real_escape_string() нельзя полагаться на функции для предотвращения внедрения SQL. Вместо этого вы должны использовать подготовленные операторы со связанными параметрами, либо MySQLi или же PDO Водитель. Эта почта есть несколько хороших примеров.

0

По вопросам рекламы [email protected]