Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    script non funziona su php5

    Salve a tutti, ho notato che da quando il mio server è passato a php5 alcuni script php non funzionano più.
    In particolare ho problemi con dei file che consentono il login a una chat .
    Vi posato i codici incriminati, qualcuno sa dirmi quali modifiche effettuare perchè anche php5 non crei problemi?
    Grazie in anticipo per l'aiuto.
    loginip.php:
    Codice PHP:
     <?
    header
    ("Expires: ".gmdate("D, d M Y H:i:s")."GMT");
    header("Cache-Control: no-cache, must-revalidate");
    header("Pragma: no-cache");

          
    #################### DATA ##################
          
    $giorno gmdate("d");
            
    $mese gmdate("m");
            
    $anno gmdate("Y");
            
    $data $giorno "/" $mese "/" $anno;
            
    ############################################
            #################### ORARIO ################
            
    $ore date("H");
            
    $minuti date("i");
            
    $orario $ore ":" $minuti;
            
    ############################################
            ################# IPADDRESS ################
            
    $indirizziIP $REMOTE_ADDR;
            
    ############################################    
            
            # associo il file come stringa ad una variabile
            
    $fileLogs "./ip.txt";
            
            
    # apro il file per appendere
            
    $fp fopen($fileLogs,"a+");
            
            
    fwrite($fp,"Nickname: " $nickname " - Giorno: " $data " - Orario: " $orario " - Indirizzo IP: " $indirizziIP "\n"); 
            
    fclose($fp);    
            
    ########## REDIRIGO IL FILE A login.php ##########
            
    header("Location:login.php?nickname=" $nickname "");
        
    ?>

    login.php:

    Codice PHP:
     <?
    header
    ("Expires: ".gmdate("D, d M Y H:i:s")."GMT");
    header("Cache-Control: no-cache, must-revalidate");
    header("Pragma: no-cache");
    ?>
    <?
    $nickname 
    str_replace ("\n"," "$nickname);
    $nickname str_replace ("<"" "$nickname);
    $nickname str_replace (">"" "$nickname);
    $nickname stripslashes ($nickname);
    ?>
    <?
    /* count lines for sound section   */
    $chat_file3 "login.txt";
    $lines3 file($chat_file3);
    $count3 count($lines3);
    echo 
    "&count3=$count3";
    /* end count for sound */
    ?>
    &login=
    <?
    $date 
    date"H:i");
    $chat_file "login.txt";
    $chat_lenght =10;
    $max_single_msg_lenght 50000;
    $max_file_size $chat_lenght $max_single_msg_lenght;
    $file_sizefilesize($chat_file);
    if (
    $file_size $max_file_size) {
    $lines file($chat_file);
    $a count($lines);
    $u $a $chat_lenght;
    for(
    $i $a$i >= $u ;$i--){
    $msg_old =  $lines[$i] . $msg_old;
    }
    $deleted unlink($chat_file);
    $fp fopen($chat_file"a+");
    $fw fwrite($fp$msg_old);
    fclose($fp);
    }
    /* Segue modifica  per azzeramento file di chat */
    if ($nickname == "Clear"){
      
    $fp fopen("chat.txt""a+");
      
    fwrite($fp"\nCiaoAdmin, per pulire i file fai   LOGOUT\n\n\n");
      
    fclose($fp);
      
    $nickname "Admin";
    }
    /* Precede modifica  per azzeramento file di chat */
    if ($nickname != ""){
      
    $fp fopen($chat_file"a+");
      
    $fw fwrite($fp"$date - $nickname\n");
      
    fclose($fp);
    }
    $lines file($chat_file);
    $a count($lines);
    $u $a $chat_lenght;
    for(
    $i $a$i >= $u ;$i--){
      echo 
    $lines[$i];
    }
    ?>
    la chat funziona bene su server con php4 chat funzionante
    mentre sul server con php5 una volta loggati non appaiono i nickname nell'apposito spazio, anche se si può tranquillamente chattare...
    chat non funzionante

  2. #2
    con php5 sono cambiate alcune impostazioni di default. In particolare global register é su OFF.

    Questo vuol dire che ad esempio $nickname in login.php devi recuperarlo nell'array $_GET in quanto lo passi tramite metodo get

    Poi invito sempre tutti ad usare il tag di apertura <?php (anche se in questo caso sembra non essere determinante)
    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  3. #3
    Originariamente inviato da mtx_maurizio
    Questo vuol dire che ad esempio $nickname in login.php devi recuperarlo nell'array $_GET in quanto lo passi tramite metodo get
    potresti farmi un esempio di codice? ne capisco davvero poco e le nuove impostazioni non le conosco per niente
    grazie

  4. #4
    Originariamente inviato da claire
    potresti farmi un esempio di codice? ne capisco davvero poco e le nuove impostazioni non le conosco per niente
    grazie
    non credevo cha a 6 anni di distanza la pillola di Chris (chi l'ha visto?) fosse ancora commestibile...

    http://forum.html.it/forum/showthrea...hreadid=245215

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

  5. #5
    Perdona l'ignoranza ma ho guardato la pillola e ancora non capisco cosa devo cambiare..
    Sorry ma col php ci ho litigato da piccola..
    Se mi dai un ulteriore aiutino giuro che poi cerco di studiarmelo per bene

  6. #6
    $_GET['nickname']

    Però, veramente, dovresti studiarti un po' le basi del linguaggio
    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  7. #7
    hai assolutamente ragione, ma avevo provato $_GET['nickname'] e non mi funzionava...
    adesso ci riprovo e vedo di capire dove sbaglio
    grazie mille per la pazienza

  8. #8
    per esempio:

    Codice PHP:
    // tag esteso --- tutti --->>> <?php
    <?php
    if(!empty($_GET['nickname']) {
       
    $nickname $_GET['nickname'];
       } else exit(
    "manca nickname");

    $nickname str_replace ("\n"," "$nickname);
    $nickname str_replace ("<"" "$nickname);
    $nickname str_replace (">"" "$nickname);
    $nickname stripslashes ($nickname);
    ?>
    ma anche:

    Codice PHP:
    $indirizziIP $REMOTE_ADDR

    // deve diventare:

    $indirizziIP $_SERVER['REMOTE_ADDR']; 
    etc, etc ....

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

  9. #9

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.