Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 28
  1. #1

    Scorrere Array con For e modificarlo

    Salve oh saggi, mi rivolgo a voi per il mio problema che si puo evincere dal titolo.

    Praticamente leggo da un file questa stringa:
    codice:
    [/delimitatore/]Bilanci - Economia - Prof.Mapo [/pren/][/pren/] [/delimitatore/]Chirurgia - Medicina - Prof.Mapo [/pren/] [/pren/] [/delimitatore/]Stia - Informatica - Prof.Mapo [/pren/][/pren/] [/delimitatore/]
    Ora con php in base alla QUERY_STRING cioè
    codice:
    QUERY_STRING = Bilanci - Economia - Prof.Mapo
    Devo aggiornare il campo fra [/pren/] e [/pren/] in modo che un alunno può prenotarsi inserendo i propri dati lì.
    Ho provato a fare qualcosa del genere:

    Codice PHP:

    $new_string 
    str_replace("%20"" "$_SERVER['QUERY_STRING']);

    $new_string_1 str_replace("?""-"$new_string);

        
    $file_name="prenotazioni.php";
        
    $complete_path=$file_name;
            
    $fp fopen($complete_path,"r+");
             
    $tutto fread($fp5000);
        
    fclose($fp);

        
    $ds explode("[/delimitatore/]"$tutto);

    for (
    $mul 1$mul <= count($ds); ++$mul) {
         
         
    $blabla $ds[$mul];
         
            if (
    strstr ($blabla"$new_string_1")){
                
             echo 
    "C'èèèè";
             
             
    $sd explode("[/pren/]"$ds[$mul]);
             
             
    $string_new =  $sd[0]."[/pren/]".$_SESSION['username']."[/pren/]".$sd[2];
             
             
    unlink("prenotazioni.php");
             
             
    $file_name="prenotazioni.php";
             
    $complete_path=$file_name;
             
    $var=fopen($complete_path,"x+");
             
    $fp fopen($complete_path,"x+");
                 
    fwrite($var,"$string_new");
             
    fclose($fp);
             
            }
         

    Mi dite perchè non riesce a trovare la stringa?

  2. #2
    Up pls.. sto impazzendo

  3. #3

  4. #4

  5. #5
    E' davvero così difficile..

  6. #6
    Prima alcune osservazioni:

    - sei sicuro della validita' del metodo con cui costruisci $new_string_1 dalla query string? A me non suona tanto bene
    - cerca di usare nomi sensati per le variabili: blabla, ds, sd non significano nulla e rischiano di confondere
    - evita variabili inutili: $complete_path = $file_name e' un assegnamento che non serve a niente; piu' pulito e' il codice, piu' facile e' da mantenere
    - se piu' utenti si prenotano, come vanno suddivisi?
    - perche' usi fopen due volte per scrivere su un file?

    Prova questo codice:
    codice:
    <?php
    $string = 'Stia - Informatica - Prof.Mapo';
    $user   = 'elmapomapo';
    $file   = 'data.txt';
    
    $content = file_get_contents($file);
    if ($content = preg_replace("#$string\s*\[/pren/\]#", "$0$user;", $content)) {
    	file_put_contents($file, $content);
    }
    ?>
    ovviamente io ho scritto direttamente i valori di $string $user e $file, tu dovrai adattarli

    file data.txt:
    codice:
    [/delimitatore/]Bilanci - Economia - Prof.Mapo [/pren/][/pren/] [/delimitatore/]Chirurgia - Medicina - Prof.Mapo [/pren/] [/pren/] [/delimitatore/]Stia - Informatica - Prof.Mapo [/pren/][/pren/] [/delimitatore/]

  7. #7
    Originariamente inviato da k.b
    Prima alcune osservazioni:

    - sei sicuro della validita' del metodo con cui costruisci $new_string_1 dalla query string? A me non suona tanto bene
    - cerca di usare nomi sensati per le variabili: blabla, ds, sd non significano nulla e rischiano di confondere
    - evita variabili inutili: $complete_path = $file_name e' un assegnamento che non serve a niente; piu' pulito e' il codice, piu' facile e' da mantenere
    - se piu' utenti si prenotano, come vanno suddivisi?
    - perche' usi fopen due volte per scrivere su un file?

    Prova questo codice:
    codice:
    <?php
    $string = 'Stia - Informatica - Prof.Mapo';
    $user   = 'elmapomapo';
    $file   = 'data.txt';
    
    $content = file_get_contents($file);
    if ($content = preg_replace("#$string\s*\[/pren/\]#", "$0$user;", $content)) {
    	file_put_contents($file, $content);
    }
    ?>
    ovviamente io ho scritto direttamente i valori di $string $user e $file, tu dovrai adattarli

    file data.txt:
    codice:
    [/delimitatore/]Bilanci - Economia - Prof.Mapo [/pren/][/pren/] [/delimitatore/]Chirurgia - Medicina - Prof.Mapo [/pren/] [/pren/] [/delimitatore/]Stia - Informatica - Prof.Mapo [/pren/][/pren/] [/delimitatore/]

    Grazie per avermi risposto dopo tutti questi UP, e scusami se non ho potuto rispondere prima ma ero in vacanza.

    Effettivamente sono consapevole che la sintassi è incoretta, ed avrei dovuto corregerla prima di postarla qui, ma tutto ci mi serve per esercitarmi e basta che funzioni, ma credo che come tu vuoi farmi capire è buono utilizzare una sintassi corretta lo stesso.

    Tralasciando questi particolari vorrei dirti.

    Avevo già pensato di provare le "tue" funzioni quali file_get_contents(), file_put_contents() , ma mi sono dovuto rammiracare quando mi sono ricordato che la funzione file_put_contenents(), forse perche potrei avere una funziona di PHP arretrata, in tutti i casi è indefinita, e quindi mi da un Fatal Error.

    Come potrei risolvere?

  8. #8
    Dai un po' di intraprendenza

    file_get_contents e file_put_contents sono scorciatoie, funzioni comode ma non indispensabili:

    http://it2.php.net/manual/en/function.fread.php
    http://it2.php.net/manual/en/function.fwrite.php

  9. #9
    Uhm.. non funziona poi cosi tanto bene.

    Sembra che aggiorni il file in un modo un po strano, cioè accodando la stringa che nel file già c'è, e non prenota l'alunno al primo colpo ma dopo aver aggiornato un po di volte la pagina.

    Codice PHP:
    <?php
    $string 
    'Stia - Informatica - Prof.Mapo';
    $user   'elmapomapo';
    $file   'data.txt';

    $file_name="data.txt";
    $fp fopen($file_name,"r+"); 
    $content fread($fp5000);


        if (
    $content preg_replace("#$string\s*\[/pren/\]#""$0$user;"$content)) {
             echo 
    "E' andato 
    "
    ;
             
    fwrite($fp$content);
        }

    $file_name="data.txt";
    $fp fopen($file_name,"r+"); 
         
    $tutto fread($fp5000);
    fclose($fp);

    echo 

     Contenet file ->"
    .$tutto."
    "
    ;

    ?>
    E puoi rendertene conto:

    http://mapoetto.altervista.org/Css/A.../algo/algo.php

  10. #10
    Certo, tu apri il file, lo leggi e poi ci scrivi. In questo modo il puntatore dopo la lettura e' alla fine del file, quindi il contenuto viene aggiunto in coda. Devi:

    - aprire il file in lettura
    - leggerlo
    - chiuderlo

    - aprire il file in scrittura
    - scriverci
    - chiuderlo

    codice:
    <?php
    $string = 'Stia - Informatica - Prof.Mapo';
    $user   = 'elmapomapo';
    $file   = 'data.txt';
    
    $file_name = 'data.txt';
    $fp = fopen($file_name, 'r');
    $content = fread($fp, filesize($file_name));
    fclose($fp);
    
    if ($content = preg_replace("#$string\s*\[/pren/\]#", "$0$user;", $content)) {
    	echo "E' andato 
    ";
    	$fp = fopen($file_name, 'w');
    	fwrite($fp, $content);
    	fclose($fp);
    }
    ?>

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.