Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Errore Php

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317

    Errore Php

    quando accedo ad un pagina mi da questo errore:

    Warning: Cannot use a scalar value as an array in C:\Programmi\EasyPHP 2.0b1\www\sito\skin\default\index.php on line 554

    ovvero il codice di errore è questo:

    Codice PHP:
    function dsForum(){
        
        global 
    $dsUser$dsConfig$dsLang;
        
        
    $dir PATH $dsConfig['database'] . '/forum/';
        
    $category = array();
    /*554*/$dsUser['level'] = isset($dsUser['level']) ? strval($dsUser['level']) : '4';
        
        if ( 
    $dh opendir($dir) ){
            while ( (
    $file readdir($dh)) !== false ){
                if ( 
    $file == '..' or $file == '.' or filetype($dir $file) == 'dir' )
                    continue;
            
        
    $category file($dir.$file);
        
        foreach ( 
    $category as $key => $value )
            
    $category[$key] = trim($value);

    # ..... 

    Il problema credo che risieda nella home. dato che se modifico la variabile di sessione in index cambia praticamente tutto...

    Codice PHP:
    <?
    #index.php
    session_start();
    ob_start();
    include 
    'function.php';

    if ( 
    checkLogin() ){ # controlla se i cookie sono veritieri e rende globali le variabili con i dati

    include 'skins/'.$dsUser['skin'].'.php';
    $_SESSION['dsUser'] = TRUE;

    }else{
    include 
    'skins/'.$dsConfig['skin'].'.php'#include la grafica di default
    }

    if ( 
    file_exists(basename($_GET['i'])) ){
    include 
    'inc/'.$_GET['i'].'php';
    }else{
    include 
    'inc/forum/php';
    }

    // FUNZIONE CHE STA ALL'INTERNO DI : include 'skins/default.php';
    dsGrafic($page); /* in ogni pagina che viene inclusa dalla variabile $_GET['i'] vi è una variabile di nome $page che indica quale pezzo di grafica mostrare */
    ?>

  2. #2
    Che cosa restituisce questo codice?

    Codice PHP:
    var_dump($dsUser); 

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    dove lo devo inserire?

    nella pagina di grafica o nella home?

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    nel file con la grafica :
    Codice PHP:
    function dsForum(){
        
        global 
    $dsUser$dsConfig$dsLang

    var_dump($dsUser); 
    trstituisce bool(true);


    subito dopo la funzione nella index per il controllo dei dati:
    Codice PHP:
    if ( checkLogin() ){ # controlla se i cookie sono veritieri e rende globali le variabili con i dati

    include 'skins/'.$dsUser['skin'].'.php';
    $_SESSION['dsUser'] = TRUE

    var_dump($dsUser);


    non restituisce nulla

    prima della funzione grafica restituisce:
    Codice PHP:
    var_dump($dsUser);

    dsGrafic($page); 
    bool(true);

  5. #5
    Se $dsUser è true NON puoi usarlo come array (esattamente quello che dice il warning che ottieni)

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    e come faccio a usarlo?

    comunque sia se modifico $_SESSION['dsUser'] in home funziona a refresh alternativi, ovvero al primo mi da errore al secondo funziona perfettamente e così via...

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    lo script modificato è diventato così ( quello che funziona a refresh alternativi, almeno a quelli alternativi, prima non funzionava per nulla ):

    Codice PHP:
    if ( checkLogin() ){ # controlla se i cookie sono veritieri e rende globali le variabili con i dati

    include 'skins/'.$dsUser['skin'].'.php';

                if ( isset(
    $_SESSION['dsUser']) ){
                    unset(
    $_SESSION['dsUser']);
                    
    $_SESSION['dsUser'] = TRUE;
                }
                else
                    
    $_SESSION['dsUser'] = TRUE;

    }else{
    include 
    'skins/'.$dsConfig['skin'].'.php'#include la grafica di default

            
    if ( isset($_SESSION['dsUser']) )
                
    $_SESSION['dsUser'] = '';



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.