Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Errore PHP

  1. #1
    Utente di HTML.it L'avatar di Nazza97
    Registrato dal
    Apr 2012
    Messaggi
    200

    Errore PHP

    Salve incontro questo errore:

    Fatal error: Cannot redeclare ago() (previously declared in /membri/xxx/profile.php:663) in /membri/xxx/profile.php on line 663

    Cosa può essere?

    Linea 663 :

    [PHP]function ago($ora_post_no_unix){[(PHP]

    Inoltre, questo funzione è inserita dentro un ciclo.

    Ci sono i tanti "post" dentro un profilo, Utilizzando quella funzione, si funziona lo script, ma mi fa vedere solo 1 post(l'ultimo creato) e sotto mi da quell'errore.

    Come risolvo??
    Grazie
    Nazza

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Cosa vuol dire che è dentro un ciclo?

    Dentro al ciclo c'è solo la chiamata alla funzione oppure proprio tutta la dichiarazione della funzione?

  3. #3
    Utente di HTML.it L'avatar di Nazza97
    Registrato dal
    Apr 2012
    Messaggi
    200
    Originariamente inviato da Alhazred
    Cosa vuol dire che è dentro un ciclo?

    Dentro al ciclo c'è solo la chiamata alla funzione oppure proprio tutta la dichiarazione della funzione?
    Ti posto il codice per capirci meglio..

    Codice PHP:
    $mioid $_GET['id'];
    $rs mysql_query("SELECT * FROM post WHERE id='$mioid' ORDER BY id_notizia DESC LIMIT 0, 100");
    $nr mysql_num_rows($rs);
    if (
    $nr != 0){
      for(
    $x 0$x $nr$x++){
        
    $row mysql_fetch_assoc($rs);
        
    $id_post $row['id_notizia'];
        
    ////////////////////////
    $adesso time();
    $ora_post $row['ora_unix'];
    $ora_post_no_unix $row['ora'];


    function 
    ago($ora_post_no_unix){
      
    $difference time() - strtotime($ora_post_no_unix);
      
    $periods = array('Secondi''Minuti''Ore''Giorni''Settimane''Mesi''Anni''Decenni');
      
    $lengths = array('60''60''24''7''4.35''12''10');

      for(
    $j 0$difference >= $lengths[$j]; $j++) $difference /= $lengths[$j];

      
    $difference round($difference);
      if(
    $difference != 1$periods[$j] .= "";

      return 
    "$difference $periods[$j] Fà Alle";

    Poi mostro così
    Codice PHP:
    echo "" ago($row['ora']) . ""
    Nazza

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Non è che da qualche altra parte del file hai dichiarato un'altra volta "function ago($ora_post_no_unix)" ?
    Magari hai fatto copia/incolla, hai cambiato le istruzioni della funzione, ma il nome te lo sei dimenticato.

    Altra cosa che non c'entra col problema:
    echo ago($row['ora']);

    va bene ugualmente, non servono le virgolette vuote prima e dopo.

  5. #5
    Utente di HTML.it L'avatar di Nazza97
    Registrato dal
    Apr 2012
    Messaggi
    200
    Originariamente inviato da Alhazred
    Non è che da qualche altra parte del file hai dichiarato un'altra volta "function ago($ora_post_no_unix)" ?
    Magari hai fatto copia/incolla, hai cambiato le istruzioni della funzione, ma il nome te lo sei dimenticato.

    Altra cosa che non c'entra col problema:
    echo ago($row['ora']);

    va bene ugualmente, non servono le virgolette vuote prima e dopo.
    Ho controllato ed è solamente quella funzione che ti ho postato...

    Le virgolette le ho messe perchè dentro c'erano altri comandi




    Qualcuno sà il perchè di quell'errore?
    Nazza

  6. #6
    Utente di HTML.it L'avatar di Nazza97
    Registrato dal
    Apr 2012
    Messaggi
    200
    Ho risolto, mettendo la funzione prima del ciclo, infatti l'errore dice che è stato dichiarato troppe volte a causa appunto del ciclo..

    Risolto.

    Ps: Grazie per l'aiuto..
    Nazza

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.