Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,029

    Output da file PHP in caso di errore o warning

    Ciao a tutti!
    Mi capita spesso di usare pagine php nel mio JS dalle quali poi ricevo un output che gestisco a mio piacimento.

    una cosa del genere:

    codice HTML:
    function usaPHP(var01,var02){
            var data = new FormData();
            data.append('var01', var01);
            data.append('var02',var02);
            var xhr = new XMLHttpRequest();
            xhr.open('POST', 'mioFile.php', true);
            xhr.onload = function () {
                if(xhr.status !== 200){    
                    return;
                }
                let res=JSON.parse(xhr.responseText);                              
                alert(res);
            };
            xhr.send(data);
        }

    in questo caso invio 2 variabili col metodo POST a php e dopo aver eseguito tutte le mie operazioni lato server rimando indietro un output che visualizzo nell'alert.

    Tutto funziona se non ci sono errori.

    Ma se si verifica un Warning (per esempio) allora si blocca tutto...

    Che bisogna fare in questi casi (a parte disattivare il warning da PHP.INI ovviamente )

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,052
    Se sono errori di compilazione del php devi risolverli oppure impostare il PHP ACCESS adeguatamente, comunque in Ajax puoi monitorare la chiamata https://developer.mozilla.org/it/doc...XMLHttpRequest
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,298
    Si tratta di gestire gli errori in php non lato js.
    Ti sposto nel forum adatto.
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  4. #4
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Quote Originariamente inviata da Veronica80 Visualizza il messaggio
    Ma se si verifica un Warning (per esempio) allora si blocca tutto...

    Ciao,
    per aiutarti è necessario vedere il warning ed il codice che lo genera,
    puoi pubblicare il "mioFile.php" o giusto la parte che genera il problema?

  5. #5
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    Potresti utilizzare https://www.php.net/manual/en/functi...-reporting.php per impostare nello script php il livello di petulanza di PHP, oppure se vuoi silenziare una particolare chiamata puoi utilizzare l'operatore @ davanti alla chiamata della funzione dello script PHP (https://www.php.net/manual/en/langua...rorcontrol.php). Ricorda però di valutare e gestire l'errore perchè è solo l'output che non viene prodotto ma l'errore c'è e può innescare errori in cascata da quel punto in poi.

    Nella pagina del manuale relativo all'operatore @ c'è un semplice esempio

    $my_file = @file ('non_existent_file') or
    die (
    "Failed opening file: error was '" . error_get_last()['message'] . "'");

    l'espressione a destra dell'or è valutata solo se c'è un errore che è stato silenziato con la @. La die blocca lo script PHP e produce l'output passato come argomento. Nulla vieta di mettere una tua funzione di gestione dell'errore che ritorna un valore al tuo JS in modo da gestire lì l'errore prodotto dallo script PHP piuttosto che gestire l'errore direttamente in PHP.

    O ancora utilizzare https://www.php.net/manual/en/functi...or-handler.php per impostare una funzione di callback in PHP in caso di errore e quindi evitare tutta la parte da or in poi. Silenzi la funzione con la @ e in caso di errore sarà chiamata la funzione impostata in set_error_handler

    Ultima modifica di Grino; 08-10-2020 a 10:44
    Siamo sempre troppo gelosi delle nostre grandi piccole opere! - Grino inedito.
    Lavori e Lavoretti

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2020 vBulletin Solutions, Inc. All rights reserved.