- Home
- Categorie
- Coding e Sistemistica
- PHP
- Update valore nel file di testo
-
Update valore nel file di testo
Buon giorno a tutti.Ho un problema serio con l'Update di un valore all'interno di file di testo.MI spiego meglio.
All'interno del file di testo, posso avere tot messaggi, che vengono inviati tramite il classico form e nel file di testo sono cosi strutturati:
"\n".$user."|".$data."|".$ora."<br/>".$messaggio
Questo è il codice che dovrebbe rimuovere e/o modificare il messaggio che scelgo.Purtroppo il problema è che, la rimozione è ok, ma l'update no.
Potreste aiutarmi gentilmente?E' importantissimo e sono 2 settimane che ci provo ma niente da fare...
Scusate la lunghezza dello script...
$file_mess="../public/bacheca.txt"; $email_news = $_GET['rimuovi_bacheca']; $update_bacheca = $_GET['update_bacheca']; $nickUt = $_POST['nickUt']; $Old_mex = trim($_POST['old_mex']); $New_mex = trim($_POST['new_mex']); $ar_orario = getdate(); $ora = $ar_orario['hours']; $minuti = $ar_orario['minutes']; $secondi = $ar_orario['seconds']; $dt = date("d/m/Y"); $orario = $ora.":".$minuti.":".$secondi; $utente = $nickUt."|".$data."|".$orario."|"; if (!file_exists($file_mess)) { $newfile = fopen($file_mess,"w+"); fclose($newfile); } $newfile = fopen($file_mess,"r"); if(filesize($file_mess)==0){ $content = "\n"; $new_file=fopen($file_mess,"a+"); fwrite($newfile,$content);//fputs = a fwrite fclose($newfile); } else{ $content = fread($newfile, filesize($file_mess)); fclose($newfile); } #Modifica il valore selezionato if($update_bacheca!=""){ # Rimuovere gli slash che PHP mette automaticamente prima dei caratteri speciali $content=stripslashes($content); //$out=""; # Mettere le entrate(spazi?) negli array per l'allineamento $lines = explode("\n",$content); //print_r($lines); for ($key=1;$key<sizeof($lines);$key++){ # quando il messaggio non è nella lista, aggiungere i vecchi messaggi if ($Old_mex == $lines[$key]){ //echo "SI"; //print_r($lines[$key]); //suddivido la stringa, passata dalla input hidden form, in 4 parti, prendendone il contenuto(messaggio) list($user, $data, $ora, $contenuto) = split("*", $Old_mex, 4); //eseguo la replace, del tag <br/> con stringa vuota "", del contenuto $New_mess = str_replace("<br/>","",$contenuto); //suddivido la stringa, all'interno del .txt, in 4 parti, prendendone il contenuto(messaggio) list($user2, $data2, $ora2, $contenuto2) = split("*", $lines[$key], 4); //eseguo la replace, del messaggio del .txt, con quello passato dalla input text del form,del contenuto $New_m = str_replace($New_mess,$New_mex,$contenuto2); //echo "1°| " . $New_mess ." vs 2°| " . $New_m . "<br/>"; //lavorare sul $lines[$key] e fare la replace della porzione di testo che è al suo interno e poi riagganciare tutto e reinserire if($key==1){ echo "Si_2<br/>"; $out .= "\n".$user2."|".$dt."|".$orario."|".$New_m; echo "Out: " . $out; } else{ echo "NO_2<br/>"; $out .= "\n".$user2."|".$dt."|".$orario."|".$New_m; $out .= "\n".$lines[$key]; echo "Out: " . $out; } //fare reverse dell'array al momento dell'inserimento $found=1; if($found==1){ $newfile = fopen($file_mess,"w+"); fwrite($newfile, $out); fclose($newfile); echo " <script language=\"javascript1.2\"> alert(\"La nuova data è stata inserita nella Bacheca!\"); location.href=\"?bacheca_ins=1&c_sf=$c_sf\"; </script>"; } exit; } # quando è già nella lista,(trovato=1) else { //echo "NO"; $found=0; } } }//close $update_bacheca //elimina il record else{ $out=""; //echo "altro..."; # Mettere le entrate(spazi?) negli array per l'allineamento $lines = explode("\n",$content); for ($key=1;$key<sizeof($lines);$key++){ # quando il messaggio non è nella lista, aggiungere i vecchi messaggi if ($lines[$key] != $email_news){ $out .= "\n".$lines[$key]; } # quando è già nella lista,(trovato=1) else { $found=1; } } $disp="no"; # If the email is in the list... # Se il messaggio è nella lista... if ($found == 1){ $newfile = fopen($file_mess,"w+"); fwrite($newfile, $out); fclose($newfile); # display the message for deleted items... # display con messaggio per avvenuta cancellazione del messaggio echo " <script language=\"javascript1.2\"> alert(\"Messaggio rimosso con successo!\"); location.href=\"?bacheca_ins=1&c_sf=$c_sf\"; </script>"; $disp="no"; } # if the email is not in the list # se l'email non è nella lista if ($found != 1){ # display the message that tells that... # visualizza messaggio di cancellazione non avvenuta echo " <script language=\"javascript1.2\"> alert(\"Non è stato possibile cancellare il Messaggio!\"); location.href=\"?bacheca_ins=1&c_sf=$c_sf\"; </script>"; $disp="YES"; } }//close else
Aiuto ragazzi, sono proprio in difficoltà..io continuo con le mie povere conoscenze, voi fatemi lui, per pietà!!!
Grazie mille...
-
Ciao, purtroppo adesso non posso dare un'occhiata al codice, vado un po di fretta che fra un po si torna a lavurà
Posso segnalarti questo script che feci tempo fa per un altro utente. Lo script di base, mi sembra di aver capito, che faccia quello che vuoi tu, magari c'è da aggiungere qualche controllo in più o comunque puo' servirti per controllare se magari hai saltato qualcosa ;). Spero possa esserti utile
-
grazie mille, grazie mille....grazie ancora!!!!ancora grazie...molto gentile!!!
cioè, sei un grande....mille grazie