- Home
- Categorie
- Coding e Sistemistica
- PHP
- sottoscrizione appello con invio automatico petizione
-
Ciao cybergiaggia,
hai verificato il contenuto di "nome_file.txt"?
Che tipo di hosting hai? Linux o Windows? Potrebbe essere un problema di carattere di ritorno a capo.
-
...
ciao olaola,
l'hosting è linux,
in effetti dovrebbe separare le singole sottoscrizioni con "%"
ma ciò non accade...
pensi che lo script
[PHP]
for ($key=1;$key<sizeof($lines);$key++){
if ($lines[$key] != $_POST['var1'] . " " . $_POST['var2'] . " - " . $_POST['var3'] . " - " . $_POST['var4']){
$out .= "%".$lines[$key];
}
else {
$found=1;
[/PHP]sia correto?
-
In "script.php" viene definita la stringa [php]$out .= "%".$lines[$key];[/php] ma poi in "articolo.php" viene sempre scritto nel file [php]fwrite($f, $_POST['var1'] . " " . $_POST['var2'] . " - " . $_POST['var3'] . " - " . $_POST['var4'] . "\n");[/php].
Prova invece a sostituire quest'ultima riga con [php]fwrite($f, $out);[/php]
-
mmmmh
il risultato è che adesso non scrive più niente,
sia i dati già scritti che quelli nuovi...
-
Scusa, in effetti il mio consiglio non era corretto, ma sento che ci siamo quasi
Puoi postare un pezzo del file "nome_file.txt" per vedere cosa viene scritto?
-
...
certo, mi scrive le variabili così come le inserisco, una per rigo...[php]$_POST['var1'] . " " . $_POST['var2'] . " - " . $_POST['var3'] . " - " . $_POST['var4'] . "\n"[/php]
e cioè:
nome1 cognome1 - città1 - email1
nome2 cognome2 - città2 - email2
nome3 cognome3 - città3 - email3se ripeto l'insermento 3 il risultato é:
nome1 cognome1 - città1 - email1
nome2 cognome2 - città2 - email2
nome3 cognome3 - città3 - email3
nome3 cognome3 - città3 - email3
-
Il problema e' che non viene mai inserito il carattere "%" dopo ciascuna stringa.
Prova a modificare la stringa che scrive in questo modo
[PHP]$_POST['var1'] . " " . $_POST['var2'] . " - " . $_POST['var3'] . " - " . $_POST['var4'] . "%\n" [/PHP]
cioe' aggiungendo "%" in fondo alla stringa. Se anche cosi' non funziona proverei a togliere il "\n" alla fine.
-
...
niente...
adesso il risultato è questo:nome1 cognome1 - città1 - email1
nome2 cognome2 - città2 - email2
nome3 cognome3 - città3 - email3%nome3 cognome3 - città3 - email3
-
-
Per fare in modo che un utente con pari credenziali non si possa reimmettere in mailing list dovrai ciclarti le singole righe inserite dato che non vuoi usare un Db.
ovvero, raccogli dentro un array il contenuto del file .txt con
$textarray=file(file.txt);
ed ogni volta che un utente immette i propri dati verifichi che la combinazione dei 4 parametri non sia ripetuta.
Personalmente ti consiglierei di suddividere i vari campi scritti nel file con il %, così potrai explode..erti (;)) la riga e verificare i campi digitati uno per unoa tal fine dovrai far scrivere il file txt in questa maniera:
nome1%cognome1%citta1%email1\n nome2%cognome2%citta2%email2\n ..........
Spero di esser stato utile