Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: Problemi con include()

  1. #1
    Utente bannato
    Registrato dal
    May 2001
    Messaggi
    18

    Problemi con include()

    Ciao ragazzi,

    sto usando EasyPHP ed ho incontrato un problema, in una pagina inserisco il codice seguente:

    include ("config/config.php");

    [...]

    include($targetpage);

    e nell'altra (config.php), inserisco il seguente:

    $targetpage = 'home.php';


    però la variabile $targetpage risulta vuota. ho provato ad aggiungere nella pagina config.php anche il codice seguente:

    echo "ciao";

    ..ma non succede nulla. non mi stampa a video assolutamente nulla. non capisco perchè.

    Il tutto in ambiente: EasyPHP, sotto Windows XP SP2.

    Grazie per l'aiuto,
    Marco.

  2. #2
    ci sara' un errore nello script e ti trovi con la segnalazione degli errori disabilitata

    in pratica lo script esce senza inviare alcune segnalazione. Possona anche esserci altri motivi, ma questo e' il piu' probabile.

    Purtroppo non conosco easyphp....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente bannato
    Registrato dal
    May 2001
    Messaggi
    18
    come posso configurare php.ini o apache.ini per sistemare il problema?

    ..easyphp è un software che ti installa php+mysql+myphpadmin+apache in pochi click.

    marco.

  4. #4
    Originariamente inviato da P3X
    come posso configurare php.ini o apache.ini per sistemare il problema?

    ..easyphp è un software che ti installa php+mysql+myphpadmin+apache in pochi click.

    marco.
    abilita la stampa degli errori nel php.ini.

    I pochi click dell'installazione si pagano con i click da fare dopo.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente bannato
    Registrato dal
    May 2001
    Messaggi
    18
    a dire il vero easy php è l'unico modo per me per poter avere tutto quel ben di dio a disposizione. non saprei nemmeno da che parte cominciare altrimenti.

    a proposito del php.ini, mi sa che gli errori li ho disabilitati io perchè mi uscivano degli stupidi - a mio avviso - warnings quando verificavo dei valori postati tramite get, se questi valori erano vuoti. idee per risolvere questo problemino?

  6. #6
    Utente bannato
    Registrato dal
    May 2001
    Messaggi
    18
    Questo il codice:

    <?php
    ob_start();
    session_start();
    include ("config/config.php");
    include("common/dbconnection.php");
    include("common/logincheck.php");
    $flage=$_GET['flage'];
    ?>

    Questi gli errori: (come disabilito i notice??)

    Warning: include(common/dbconnection.php) [function.include]: failed to open stream: No such file or directory in C:\Programmi\EasyPHP 2.0b1\www\k\common\logincheck.php on line 2

    Warning: include() [function.include]: Failed opening 'common/dbconnection.php' for inclusion (include_path='C:\Programmi\EasyPHP 2.0b1\php5\pear\') in C:\Programmi\EasyPHP 2.0b1\www\k\common\logincheck.php on line 2

    Notice: Undefined index: SESS_Admin in C:\Programmi\EasyPHP 2.0b1\www\k\common\logincheck.php on line 3

    Notice: Undefined index: SESS_Referral in C:\Programmi\EasyPHP 2.0b1\www\k\common\logincheck.php on line 4

    Notice: Undefined variable: rsUser in C:\Programmi\EasyPHP 2.0b1\www\k\common\logincheck.php on line 10

    Notice: Undefined variable: rsUser in C:\Programmi\EasyPHP 2.0b1\www\k\common\logincheck.php on line 11

    Notice: Undefined variable: rsUser in C:\Programmi\EasyPHP 2.0b1\www\k\common\logincheck.php on line 12

    Notice: Undefined variable: rsUser in C:\Programmi\EasyPHP 2.0b1\www\k\common\logincheck.php on line 13

    Notice: Undefined variable: rsUser in C:\Programmi\EasyPHP 2.0b1\www\k\common\logincheck.php on line 15

    Notice: Undefined index: flage in C:\Programmi\EasyPHP 2.0b1\www\k\index.php on line 7

    Notice: Undefined index: SESS_UserId in C:\Programmi\EasyPHP 2.0b1\www\k\common\banner.php on line 4

  7. #7
    Utente bannato
    Registrato dal
    May 2001
    Messaggi
    18
    PARZIALMENTE RISOLTO
    Grazie al tuo intervento, piero.mac, sono riuscito a risolvere parzialmente il problema, ho infatti visto che c'erano dei warning ed ho scoperto che l'include_path era sbagliato. ora lo ho settato giusto, ma mi resta l'errore di prima irrisolto. Almeno ora le pagine le include davvero, però i valori delle variabili settate in una pagina inclusa non vengono considerati fuori da questa pagina.

    MESSAGGIO DI ERRORE
    Questo errore mi dice che cerco di includere '', cioè nulla, il che dovrebbe invece essere 'home.php'.
    Warning: include() [function.include]: Failed opening '' for inclusion (include_path='C:\Programmi\EasyPHP 2.0b1\www\k\') in C:\Programmi\EasyPHP 2.0b1\www\k\index.php on line 35

    MIA IPOTESI
    Probabilmente i valori delle variabili settati in un include non sono validi per la pagina che li include? in pratica è come se queste variabili siano valide solo all'interno della pagina in cui sono scritte?

  8. #8
    Tua ipotesi
    Non direi proprio. Quando includi un file infili lo script esattamente nel punto in cui hai messo il require o l'include. Pero' attenzione..... i path definiti nel file che includi devono tener conto di dove andranno a finire e non di quello in cui sono posizionati loro.

    per i NOTICE si posso "nascondere" ma e' un errore farlo. Se presenti uno script con dei NOTICE il tuo valore viene immediatamente declassato. Personalmente rifiuto qualsiasi script che si presenta con un notice (es.: per i marpioni ... l'installazione di DRUPAL - chiusa parentesi) perche significa una programmazione superficiale che non da garanzie di sicurezza per come e' stata sviluppata.

    Quindi nascondere e' diverso da eliminare.

    per nascondere basta settare nel php.ini:

    error_reporting = E_ALL & ~E_NOTICE

    per eliminarli devi usare la funzione isset() oppure empty() a seconda del bisogno.

    es:

    if(isset($var) oppure if(!empty($var)

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #9
    Utente bannato
    Registrato dal
    May 2001
    Messaggi
    18
    ok grazie mille!

    ora ho risolto tutti i notice, ma mi viene un dubbio..

    prima avevo:
    if($_SESSION['SESS_UserId'] != '')

    ora ho:
    if(isset($_SESSION['SESS_UserId']))


    Il dubbio è il seguente: isset() restituisce VERO se la variabile è vuota:

    $_SESSION['SESS_UserId'] = '';

    oppure restituisce FALSO?


    Grazie ancora, Marco.

  10. #10
    isset() risponde true cioe' e' vero che esiste anche se vuoto

    empty() risponde true cioe' e' vero che e' vuoto oppure non esiste.

    come vedi nel caso di isset() devi anche verificare che non sia vuoto:

    if(isset($_SESSION['SESS_UserId']) AND $_SESSION['SESS_UserId'] != '' )

    equivale a:

    if(!empty($_SESSION['SESS_UserId']) )

    ti converrebbe vedere per bene sul manuale le differenze tra le due funzioni.

    http://it.php.net/manual/it/function.isset.php
    http://it.php.net/manual/it/function.empty.php

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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