Hola, estoy desarrollando una applicacion para android que se conecta con un servidor. Para comunicar la app con el servidor estoy usando PHP. Y como es la primera vez que uso PHP no tengo ni idea de como hacer funcionar este codigo:
<?php
$response = array();
if (!empty($_POST['name']) && !empty($_POST['breed']) && !empty($_POST['type']) && !empty($_POST['description']) && !empty($_POST['images']) && !empty($_POST['coords'])) {
$name = $_POST['name'];
$breed = $_POST['breed'];
$type = $_POST['type'];
$description = $_POST['description'];
$images = $_POST['images'];
$coords = $_POST['coords'];
require_once __DIR__ . '/db_connect.php';
$db = new DB_CONNECT();
$result = "INSERT INTO lost_pets (name, breed, type, description, images, coords) VALUES(':name', ':breed', ':type', ':description', ':images', ':coords')";
$stmt = $db->prepare($result);
$stmt->bindParam(':name', $_POST['name'], PDO::PARAM_STR);
$stmt->bindParam(':breed', $_POST['breed'], PDO::PARAM_STR);
$stmt->bindParam(':type', $_POST['type'], PDO::PARAM_STR);
$stmt->bindParam(':description', $_POST['description'], PDO::PARAM_STR);
$stmt->bindParam(':images', $_POST['images'], PDO::PARAM_STR);
$stmt->bindParam(':coords', $_POST['coords'], PDO::PARAM_STR);
$stmt->execute();
if ($result) {
// successfully inserted into database
$response["success"] = 1;
$response["message"] = "Product successfully created.";
echo json_encode($response);
} else {
// failed to insert row
$response["success"] = 0;
$response["message"] = "Oops! An error occurred.";
echo json_encode($response);
}
} else {
// required field is missing
$response["success"] = 0;
$response["message"] = "Required field(s) is missing";
echo json_encode($response);
}
?>
No me carga ningun dato a la base ni desde la app, ni desde el URL. En vez de eso obtengo los siguientes resultados:
Citar{"success":0,"message":"Required field(s) is missing"}.
Cuando trato de hacer print_r($_POST) me dice Array().
No tengo ni idea de porque no funciona el codigo, espero que me puedan ayudar, Muchas Gracias.
Le mandas el post por android studio?
y tu código de envío?
Cita de: VintageChanel en 6 Agosto 2017, 20:25 PM
Cuando trato de hacer print_r($_POST) me dice Array().
No tengo ni idea de porque no funciona el codigo, espero que me puedan ayudar, Muchas Gracias.
Intenta hacer
curl --data " name=1&breed=1&type=1&description=1&images=1&coords=1" https://ejemplo.com/archivo.php
Si funciona, seguro es el cliente. ¿En qué lo estás desarrollando? Te recomiendo usar React y React Native o Ionic y Angular 2, las apps hibridas son la opción más rápida y portable para desarrolladores web.
Es más fácil hacer una API rest en Express js. Con
app.post("/post_:argumento1_:argumento2", () => { ... });
Finalmente ya encontre el error.
En vez de hacer ese if al principio, hice la conexion y despues comprobe, con un if, si habia sido exitosa. Ahi me di cuenta que no estaba usando el metodo connect (que era el que retornaba la conexion) de la variable $db que contenia la clase DB_CONNECT.
Y despues me di cuenta que tenia un error de tipeo en la clase connect, de DB_CONNECT.
Bueno no era mu dificil, pero despues de todo esta es mi primera vez interactuando con un servidor y usando php. :laugh:
Muchas gracias por todas sus respuestas!