il problema è che se la checkbox non è stata spuntata il valore non viene passato con il post, di conseguenza php ti da un errore perchè la variabile non esiste.
Le soluzioni a questo problema sono tante, quella che personalmente adotto io, e che è abbastanza semplice, è questa:

- controllo se la checkbox è stata selezionata (in pratica, il controllo vede se esiste quella checkbox), se esiste ne prendo il valore, altrimenti gliene assegno uno di default.

codice:

Codice PHP:
$checkbox = isset($_POST["nomecheckbox"]) ? $_POST["nomecheckbox"] : '0'
questa istruzione cosa vuol dire?
la checkbox esiste?
- si: prendo il valore
- no: le assegno come valore '0'

quando devi andare a processare il valore di quella checkbox,basta un ciclo "if" che controlla se il valore è 0: se è zero vuol dire che non è stata selezionata, "else" hai il valore.

spero di essere stato chiaro, in genere il mio codice è abbastanza incasinato