Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di *pragma
    Registrato dal
    Sep 2001
    Messaggi
    1,087

    [php]Tipo di errore 404 non riconosciuto nel file php

    salve a tutti,
    nell' http.conf ho creato un VirtualHost 123.0.0.3 chiamato zendf.
    codice:
    <VirtualHost 127.0.0.3:80>
        ServerName zendf
        DocumentRoot "C:/Programmi/Apache Software Foundation/Apache2.2/htdocs/ecc1/htdocs"
    
        <Directory "C:/Programmi/Apache Software Foundation/Apache2.2/htdocs/ecc1/htdocs">
            AllowOverride None
            Options All
    		Order allow,deny
    		Allow from all
        </Directory>
    	
    ErrorDocument 404 http://zendf/error.php
    	
    	php_value include_path ".;C:/Programmi/Apache Software Foundation/Apache2.2/htdocs/ecc1/include.;C:/php/PEAR"
        php_value magic_quotes_gpc off
        php_value register_globals off
    </VirtualHost>
    Qualora la pagina immessa nell'URL non fosse trovata, si viene spediti (cosa che avviene correttamente) alla error.php (questo prova che l'errore viene riconosciuto dal browser). Nella error.php sono previste più tipologie di errore:
    codice:
    $error_no = $_SERVER['QUERY_STRING'];
    
    switch ($error_no) {
      case 400:
        $error_output = "<h3>Errore 400 Error Page - </h3>";
        $error_output .= "<a href=\"mailto:sysadmin@qualcosa.com\">" .
                         "Contact</a> the system administrator";
        break;
         
      case 401:
        $error_output = "<h3>Errore 401 Error Page - </h3>";
        break;
    
      case 402:
        $error_output = "<h3>Accesso negato. Errore 402 Error Page - </h3>";
        break;
    	
      case 403:
        $error_output = "<h3>Accesso negato. Errore 403 Error Page - </h3>";
        break;
    
      case 404:
        $error_output = "<h3>&quot;Pagina non trovata&quot; Error Page - " .
                        "(Codice di errore 404)</h3>";
        $error_output .= "La pagina cercata non può essere trovata
    ";
        $error_output .= "<a href=\"mailto:sysadmin@qualcosa.com\">" .
                         "Contact: Avvisare l'amministratore del sistema</a>";
        break;
    
      case 500:
        $error_output = "<h3>Errore interno al server. Errore 500 - </h3>";
        break;
         
      default:
        $error_output = "<h3>Pagina con errore " . $error_no . "</h3>";
        $error_output .= "Questo è un errore generico
    ";
        $error_output .= "Per tornare alla indice cliccare <a href=\"index.php\">here</a>";
     }
    Il problema è che la variabile $error_no = $_SERVER['QUERY_STRING']; è vuota, come risulta
    anche dal var_dump($error_no) e stampa sempre e solo il caso default.
    Suggerimenti?
    grazie

  2. #2
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    Intanto la direttiva

    ErrorDocument 404 http://zendf/error.php

    gestisce solo ed esclusivamente l'errore 404.

    Poi il query string e' vuoto perche' tu non passi nulla nella query string.

  3. #3
    Utente di HTML.it L'avatar di *pragma
    Registrato dal
    Sep 2001
    Messaggi
    1,087
    Grazie per la risposta.
    Si infatti con la error.php voglio gestire più tipologie di errore. Quindi nella sezione VirtualHost di apache posso aggiungere benisimo gli altri casi es. ErrorDocument 402 ecc... che puntano tutti alla stessa pagina.
    Quindi, in tema con la tua osservazione, cosa dovrei scrivere :
    ErrorDocument http://zendf/error.php
    senza specificare l'errore ? oppure elencare tutti gli errori?
    Per la tua seconda osservazione
    Poi il query string e' vuoto perche' tu non passi nulla nella query string.
    cosa devo passare alla query string?
    Mi puoi fare un esempio?

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    579
    per ogni errore devi scrivere una riga su tuo htaccess

    codice:
    ErrorDocument 404: http://www.tusito.it/404.php
    ErrorDocument 500: http://www.tusito.it/500.php
    
    # e cosi via dicendo
    l'uomo è tutto ciò che non può essere

    http://www.ebug.it Discussioni da web Designer

    http://www.ebug.it/?p=354 e Dart Fener dove lo mettiamo lol

  5. #5
    Utente di HTML.it L'avatar di *pragma
    Registrato dal
    Sep 2001
    Messaggi
    1,087
    Originariamente inviato da StarFinger
    per ogni errore devi scrivere una riga su tuo htaccess

    codice:
    ErrorDocument 404: http://www.tusito.it/404.php
    ErrorDocument 500: http://www.tusito.it/500.php
    
    # e cosi via dicendo
    Grazie per la risposta.
    Quindi per ogni tipo di errore devo creare una pagina per lo scopo e non un solo file nel quale sono previsti i vari errori!
    ed accetto il suggerimento.
    Per tornare invece alla pagina unica con il ciclo switch avevo pensato, invece di affidarmi alla $_SERVER['QUERY_STRING'];
    che evidentemente non riesco a gestire, di preparare un array con tutti i numeri di errori per i quali voglio personalizzare un avviso.
    La domanda è:
    esiste una funzione php che sa riconoscere l'errore?

    Per riprendere l'osservazione di bubi1 cosa devo passare alla query string $_SERVER['QUERY_STRING']; ?

    grazie

  6. #6
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    ErrorDocument 404 http://zendf/error.php?404
    ErrorDocument 500 http://zendf/error.php?500
    ...

    quello che viene dopo ? e' la query string. Non sono convinto al 100% che questa config funzioni, non ho mai provato perche' non ne ho mai avuto bisogno, ho sempre fatto con files diversi.


    esiste una funzione php che sa riconoscere l'errore?
    - non ha senso, php non deve riconoscere lo status code di apache. E' apache che lo genera, e in base a quello fa il redirect a una delle pagine che gli imposti tu con ErrorDocument

  7. #7
    Utente di HTML.it L'avatar di *pragma
    Registrato dal
    Sep 2001
    Messaggi
    1,087
    grazie
    forse nella stessa sezione della virtualhost devo prevedere i vari errori e spedire i valori nella pagina error.php

    di nuovo
    a domani!
    ciao

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 © 2025 vBulletin Solutions, Inc. All rights reserved.