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

    Funzione Cancella da database .txt

    Qualche persona paziente saprebbe individuare l'errore in questo codice che in teoria dovrebbe cancellarmi da un database .txt delle email precedentemente inserite?

    ---------------------------------------------------
    function cancella()
    {
    $fp = fopen("newsletter_email.txt", "r+") ;
    $memoria = array() ;
    while (!feof($fp)) {
    $memoria[] = fgets($fd, 4096);
    }
    $memoria[] = $_POST['email'] ;
    sort($memoria) ;
    reset($memoria) ;
    fwrite($fp, implode('', $memoria)) ;
    ftruncate($fp, ftell($fp)) ;
    fclose($fp) ;
    }
    ---------------------------------------------------


    Grazie, per domande, chiedetemi pure...

    Cris ^__^

  2. #2
    Codice PHP:
    $mail=$_POST['email'];
    function 
    cancella() 

    global 
    $mail;//importo una var dall'ambiente esterno alla funz
    $fp fopen("newsletter_email.txt""r+") ; 
    $memoria = array() ; 
    $i=0;
    while (!
    feof($fp)) { 
    $memoria[$i++] = fgets($fd4096); 

    $memoria[$i++] = $mail //<--
    sort($memoria) ; 
    reset($memoria) ; 
    fwrite($fpimplode(''$memoria)) ; 
    ftruncate($fpftell($fp)) ; 
    fclose($fp) ; 

    prova così.. ho aggiunto gli indici $i++ come conto degli array.. perchè sono abituato così.. funziona senza indice?!? aggiunge all'ultimo posto in quel modo?
    visit the BEST italian fotolog http://www.ghiacciato.it/fotolog

    "Solo due cose sono infinite, l'universo e la stupidità dell'essere umano.. ma sulla prima ho ancora delle riserve.." A.Einstein

  3. #3
    Utente di HTML.it L'avatar di chris
    Registrato dal
    Sep 1999
    Messaggi
    1,568
    Originariamente inviato da ghiacciato
    prova così.. ho aggiunto gli indici $i++ come conto degli array.. perchè sono abituato così.. funziona senza indice?!? aggiunge all'ultimo posto in quel modo?
    Hai fatto delle modifiche che non apportano alcun cambiamento allo script.


    @cristal83: a me sembra che questa funzione aggiunga email, non le elimini...
    "Nei prossimi tre anni col mio governo vogliamo vincere anche il cancro, che colpisce ogni anno 250.000 italiani e riguarda quasi due milioni di nostri concittadini"

  4. #4
    @chris: mah.. la funzione senza dubbio aggiunge al file di testo.. ho aggiunto il fatto che richiama come global una variabile ceh prima poteva anche non essere individuata dalla funzione..

    @cristal83: specifica meglio che errori ti da..
    visit the BEST italian fotolog http://www.ghiacciato.it/fotolog

    "Solo due cose sono infinite, l'universo e la stupidità dell'essere umano.. ma sulla prima ho ancora delle riserve.." A.Einstein

  5. #5
    Allora, dopo aver letto le pillole del forum sulla gestione dei file di testo ho creato questo script che però non funziona come dovrebbe.. lo scopo è quello di cancellare una email precedentemente inserita sempre tramite altro script.

    Il problema è che per cancellare un valore devo prima aprire il file e salvarlo in memoria, successivamente verificare se nel $_POST['richiesta_cancellazione'] c'è corrispondenza nei valori in memoria e se c'è corrispondenza di una email cancellarla sostituendo il valore.

    In parore spicciole è una disabilitazione dal servizio di newsletter.


    Spero di avervi delucidato ulteriormente riguardo la mia richiesta ^___^ !!

    Cris

  6. #6
    Utente di HTML.it L'avatar di chris
    Registrato dal
    Sep 1999
    Messaggi
    1,568
    Codice PHP:
    function cancella(){
        
    $fp fopen("newsletter_email.txt""r+") ; 
        
    $memoria = array() ; 
        while (!
    feof($fp)) { 
            
    $memoria[] = fgets($fd4096); 
        }
     
        
    $mail = array($_POST['email']);
        
    $memoria array_diff($memoria$mail);

        
    sort($memoria);
        
    reset($memoria);
        
        
    fwrite($fpimplode(''$memoria));
        
    ftruncate($fpftell($fp));
        
    fclose($fp);

    @ghiacciato: No, gli array superglobali come $_POST possono essere letti dall'interno di una funzione senza l'utilizzo di global. :-)
    "Nei prossimi tre anni col mio governo vogliamo vincere anche il cancro, che colpisce ogni anno 250.000 italiani e riguarda quasi due milioni di nostri concittadini"

  7. #7
    Grazie, provo e ti faccio sapere ^__^

  8. #8
    Originariamente inviato da chris
    Codice PHP:
    function cancella(){
        
    $fp fopen("newsletter_email.txt""r+") ; 
        
    $memoria = array() ; 
        while (!
    feof($fp)) { 
            
    $memoria[] = fgets($fd4096); 
        }
     
        
    $mail = array($_POST['email']);
        
    $memoria array_diff($memoria$mail);

        
    sort($memoria);
        
    reset($memoria);
        
        
    fwrite($fpimplode(''$memoria));
        
    ftruncate($fpftell($fp));
        
    fclose($fp);

    Niente, neanche questo funziona

    Cris -__-'

  9. #9
    Utente di HTML.it L'avatar di chris
    Registrato dal
    Sep 1999
    Messaggi
    1,568
    Originariamente inviato da cristal83
    Cris -__-'
    o_O

    function cancella(){
    $memoria = file("newsletter_email.txt");

    $mail = array($_POST['email']);
    $memoria = array_diff($memoria, $mail);

    sort($memoria);
    reset($memoria);

    $fp = fopen("newsletter_email.txt", "w");
    fwrite($fp, implode('', $memoria));
    ftruncate($fp, ftell($fp));
    fclose($fp);
    }
    "Nei prossimi tre anni col mio governo vogliamo vincere anche il cancro, che colpisce ogni anno 250.000 italiani e riguarda quasi due milioni di nostri concittadini"

  10. #10
    Originariamente inviato da chris
    o_O

    function cancella(){
    $memoria = file("newsletter_email.txt");

    $mail = array($_POST['email']);
    $memoria = array_diff($memoria, $mail);

    sort($memoria);
    reset($memoria);

    $fp = fopen("newsletter_email.txt", "w");
    fwrite($fp, implode('', $memoria));
    ftruncate($fp, ftell($fp));
    fclose($fp);
    }
    Questa è già un passo avanti perchè almeno mi cambia delle posizioni in newsletter.txt . Il fatto è che non cancella quella che si inserisce nel $_POST['email'] ...

    Capperi...comunque sia penso che ci siamo vidini adesso..

    Avete altre idee per caso?

    Cris ^__^

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.