Esta podría ser una pregunta tonta. Soy bastante nuevo en PHP. Estoy tratando de ver algunas declaraciones de eco de una página en la que estoy publicando, pero en realidad nunca voy. No puedo ir directamente a la URL de la página porque sin la información de la publicación se romperá. ¿Hay alguna forma de ver lo que PHP hace eco en la consola del desarrollador o en cualquier otro lugar?
Aquí está el Ajax:
function uploadImage(image) { var data = new FormData(); data.append("image", image); imgurl = 'url'; filepath = 'path'; $.ajax({ url: imgurl, cache: false, contentType: false, processData: false, data: data, type: "post", success: function(url) { var image = $('<img class="comment_image">').attr('src', path + url); $('#summernote').summernote("insertNode", image[0]); }, error: function(data) { console.log(data); } }); }Y aquí está el archivo php:
<?php $image = $_FILES['image']['name']; $uploaddir = 'path'; $uploadfile = $uploaddir . basename($image); if( move_uploaded_file($_FILES['image']['tmp_name'],$uploadfile)) { echo $uploadfile; } else { echo "Unable to Upload"; } ?>Entonces, este código funciona bien, pero no estoy seguro de dónde terminan los ecos y cómo verlos, hay más información que quiero imprimir. ¡Por favor ayuda!
Aquí hay un ejemplo básico...
HTML (formulario)
<form action="script.php" method="POST"> <input name="foo"> <input type="submit" value="Submit"> </form>Guión PHP (script.php)
<?php if($_POST){ echo '<pre>'; print_r($_POST); // See what was 'POST'ed to your script. echo '</pre>'; exit; } // The rest of your PHP script...Otra opción (en lugar de usar un formulario HTML) sería usar una herramienta como POSTMAN que puede ser útil para simular todo tipo de solicitudes a páginas (y API)
Ya maneja la respuesta de PHP (que contiene todas las salidas, como cualquier echo )
En el siguiente código que tiene, url contendrá toda la salida.
Para ver lo que obtiene, simplemente agregue un console.log()
$.ajax({ ... success: function(url) { // Output the response to the console console.log(url); var image = $('<img class="comment_image">').attr('src', path + url); $('#summernote').summernote("insertNode", image[0]); }, ... }Un problema con el código anterior es que si falla la carga, su código intentará agregar la cadena "No se puede cargar" como la fuente de la imagen. Es mejor devolver JSON con más información. Algo como esto:
// Set the header to tell the client what kind of data the response contains header('Content-type: application/json'); if( move_uploaded_file($_FILES['image']['tmp_name'],$uploadfile)) { echo json_encode([ 'success' => true, 'url' => $uploadfile, // add any other params you need ]); } else { echo json_encode([ 'success' => false, 'url' => null, // add any other params you need ]); }Luego, en su devolución de llamada exitosa de Ajax, ahora puede verificar si fue exitoso o no:
$.ajax({ ... dataType: 'json', // This will make jQuery parse the response properly success: function(response) { if (response.success === true) { var image = $('<img class="comment_image">').attr('src', path + response.url); $('#summernote').summernote("insertNode", image[0]); } else { alert('Ooops. The upload failed'); } }, ... } Si agrega más parámetros a la matriz en su json_encode() en PHP, simplemente acceda a ellos con: response.theParamName .