Ciao e scusa ma perché questo costrutto?
Codice PHP:
file_put_contents('data.txt', '');
$fp = fopen('data.txt', 'a');
$all_data = $textdata1.$char_divider.$checkbox1.$char_divider.$checkbox2;
fwrite($fp, $all_data,);
fclose($fp);
Praticamente non ha senso.
file_put_contents() riporta tre paramentri, di cui il terzo è opzionale, se omesso sovrascrive il file se presente (se non esiste va da se che lo crea nuovo) e se ho compreso cosa stai combinando, tu con questa espressione ('data.txt', '') vuoi sovrascrivere data.txt con un blank in modo da cancellare ciò che c'era scritto prima, ma non ti serve a nulla.
Come non si capisce perché poi utilizzi il costrutto fopen(); fwrite(); fclose(); invece di riutilizzare semplicemente file_put_contents(), che come dice il manula sostituisce l'altro costrutto.
In pratica scrivi due volte le stesse cose, inultilmente, così da rendere il tuo codice incasinato, soprattutto a te che devi leggerlo e magari rileggerlo tra qualche anno per effettuare una modifica.
Tutto quel codice si poteva riassumete in una sola riga, così da renderlo più semplice e semplificre anche il lavoro al server che non deve processare più linee di codice inutile. 
Codice PHP:
file_put_contents('data.txt', $textdata1.$char_divider.$checkbox1.$char_divider.$checkbox2);