¿El envío de REST Call a Google Cloud PHPMyAdmin Server no funciona?
ssh google cloud (1)
No sé cuál es exactamente tu pregunta, no está claro. pero ya que usted preguntó: Is there any way I can debug whether or not my script is actually going into the PHP code? How can I debug the PHP code?
Is there any way I can debug whether or not my script is actually going into the PHP code? How can I debug the PHP code?
Aquí está tu respuesta:
Cambie su código php a esto:
<?php
if (isset($_POST["Token"])) {
$_uv_Token=$_POST["Token"];
$conn = mysqli_connect("<db link>.appspot.com","root","","fcm") or die("Error connecting");
$q="INSERT INTO users (`Token`) VALUES ( `{$_uv_Token}`) "
." ON DUPLICATE KEY UPDATE `Token` = `{$_uv_Token}`;";
mysqli_query($conn,$q) or die(mysqli_error($conn));
mysqli_close($conn);
} else {
echo "Token is not set!";
}
?>
luego, en NotificationInstanceService.java
verifique la respuesta de la llamada OkHttpClient
:
...
try {
Response response = client.newCall(request).execute();
} catch (IOException e) {
e.printStackTrace();
}
if (!response.isSuccessful()){
Log.w(TAG, "Unexpected response"+response.toString());
} else {
Log.w(TAG, "response: "+response.body().string());
}
...
He implementado con éxito un servidor phpMyAdmin
en Google Cloud
siguiendo este link . Tengo problemas para intentar escribir en una base de datos que hice en phpMyAdmin . Estoy tratando de crear un servicio de notificación basado en la nueva Firebase Cloud Messaging
que Google ha lanzado.
NotificationInstanceService.java
public class NotificationInstanceService extends FirebaseInstanceIdService {
private static final String TAG = "NotificationInstance";
@Override
public void onTokenRefresh() {
//Getting registration token
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
//Displaying token on logcat
Log.d(TAG, "Refreshed token: " + refreshedToken);
sendRegistrationToServer(refreshedToken);
}
private void sendRegistrationToServer(String token) {
//You can implement this method to store the token on your server
//Not required for current project
OkHttpClient client = new OkHttpClient();
//Create the request body
RequestBody body = new FormBody.Builder().add("Token", token).build();
//Know where to send the request to
Request request = new Request.Builder().url("<db link>.appspot.com/fcm/register.php")
.post(body)
.build();
//Create
try {
client.newCall(request).execute();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Y https://<db link>.appspot.com
, en https://<db link>.appspot.com
, un archivo en /fcm/register.php que parece ser así:
register.php
<?php
if (isset($_POST["Token"])) {
$_uv_Token=$_POST["Token"];
$conn = mysqli_connect("<db link>.appspot.com","root","","fcm") or die("Error connecting");
$q="INSERT INTO users (Token) VALUES ( ''$_uv_Token'') "
." ON DUPLICATE KEY UPDATE Token = ''$_uv_Token'';";
mysqli_query($conn,$q) or die(mysqli_error($conn));
mysqli_close($conn);
}
?>
Estoy confundido porque parece que no escribo nada en mi base de datos llamados usuarios que sé que ya creé en el servidor MySQL
creado en phpMyAdmin . Sé que el nombre de usuario y la contraseña también están configurados en register.php.
¿Hay alguna manera de que pueda depurar si mi script va o no al código PHP? ¿Cómo puedo depurar el código PHP? También creo que la Solicitud se está construyendo, ya que puedo depurar a través de esa parte del código. Cualquier ayuda sería apreciada. ¡Gracias!
EDITAR: Algunos archivos que pueden ser útiles que creé al intentar implementar mi servidor:
app.yaml:
application: <app server url>
service: default
runtime: php55
api_version: 1
version: alpha-001
handlers:
- url: /(.+/.(ico|jpg|png|gif))$
static_files: /1
upload: (.+/.(ico|jpg|png|gif))$
application_readable: true
- url: /(.+/.(htm|html|css|js))$
static_files: /1
upload: (.+/.(htm|html|css|js))$
application_readable: true
- url: /(.+/.php)$
script: /1
login: admin
- url: /.*
script: index.php
login: admin
- url: /.*
script: register.php
login: admin
config.inc.php:
<?php
$cfg[''blowfish_secret''] = ''<Secret>''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
/*
* Servers configuration
*/
$i = 0;
// Change this to use the project and instance that you''ve created.
$host = ''/cloudsql/<app server url>:us-central1:<database name>-app-php'';
$type = ''socket'';
/*
* First server
*/
$i++;
/* Authentication type */
$cfg[''Servers''][$i][''auth_type''] = ''cookie'';
/* Server parameters */
$cfg[''Servers''][$i][''socket''] = $host;
$cfg[''Servers''][$i][''connect_type''] = $type;
$cfg[''Servers''][$i][''compress''] = false;
/* Select mysql if your server does not have mysqli */
$cfg[''Servers''][$i][''extension''] = ''mysqli'';
$cfg[''Servers''][$i][''AllowNoPassword''] = true;
/*
* End of servers configuration
*/
/*
* Directories for saving/loading files from server
*/
$cfg[''UploadDir''] = '''';
$cfg[''SaveDir''] = '''';
$cfg[''PmaNoRelation_DisableWarning''] = true;
$cfg[''ExecTimeLimit''] = 60;
$cfg[''CheckConfigurationPermissions''] = false;
// [END all]
php.ini:
google_app_engine.enable_functions = "php_uname, getmypid"
EDITAR: Texto cuando esté en el navegador, yendo a .appspot.com / fcm / register.php
array (11) {["pmaCookieVer"] => string (1) "5" ["pma_lang"] => string (2) "en" ["pma_collation_connection"] => string (15) "utf8_unicode_ci" ["pma_console_height "] => string (2) "92"[" SACSID "] => string (355) "~ AJKiYcFgym76QZfbMX35ddCTdKKf-O7q5koLvNZ0coWTMvw9aNlR5fusNyLRzFyw5DB_t2ygVuTEjHwgrgBco4-wr_V3Eer_Mf0CDuGX2e4IpirCNeiGxkRvaLgRPPyZNZWKUx1mF_DChjsksTirkY5WCzlA3G3MO9bBScrLw8kNOFGnvzkev3-B2x31s_TmnDN5aJ0G3-nPueI4FPpKaaMlPsITziccvXMpiehglQOKoo1Bol3EZSF1tjI9QoJuc-6X_sHgJ0IEppg7K-cBapaEx5CmDD2kWOggnVPWnGj1SiKFUnE3DZD46bjovf5me7IdwfVX22bv5D2PJDPQEN4m3D7yP3-WDG"[" pma_console_config "] => string (103 ) "{" alwaysExpand ": false," startHistory ": false," currentQuery ": true," enterExecutes ": false," darkTheme ": false}" ["pma_console_mode"] => string (4) "show" [" phpMyAdmin "] => string (40)" cfd814e10982d138c7ed4a3ef510c454c0e5f9b9 "[" pma_iv-1 "] => pmaPass-1 "] => string (24)" dwKZ9gQPCoe / Uk4sWS4s2g == "}
nuevo register.php:
<?php
if (isset($_REQUEST["Token"])) {
$_uv_Token=$_REQUEST["Token"];
$conn = mysqli_connect("/cloudsql/<Database ServerURL>","root","","FCM") or die("Error connecting");
$q="INSERT INTO users (Token) VALUES ( ''$_uv_Token'') "
." ON DUPLICATE KEY UPDATE Token = ''$_uv_Token'';";
var_dump(mysqli_query($conn,$q));
mysqli_query($conn,$q) or die(mysqli_error($conn));
mysqli_close($conn);
} else {
var_dump($_REQUEST);
}
?>
NotificationInstanceService.java
Nueva solicitud POST:
Request request = new Request.Builder().url("<Application Server>/fcm/register.php?Token=123")
.post(body)
.build();