Nessa linha, você está fazendo um procedimento equivocado:
$sql = mysql_query("INSERT INTO usuarios (nome, sobrenome, email, repete_email, senha, repete_senha, data_cadastro, foto) VALUES('{$nome}', '{$sobrenome}', '{$email}', '{$repete_email}', '{$senha}', '{$repete_senha}', now(), '{$foto}')") or die( mysql_error() );
Um campo do tipo varchar não é apropriado para armazenamento de arquivos e/ou imagens. Uma opção correta seria, por exemplo, BLOB.
Porém, para upload é mais interessante salvar no banco de dados apenas o endereço de acesso (diretório) ao arquivo e/ou foto. Você economiza espaço em sua base de dados e otimiza o desempenho do seu sistema, uma vez que o mesmo não precisa manipular o arquivo físico.
O script de upload que você está utilizando aparentemente está correto, basta você incluir o endereço de acesso à imagem na cláusula insert (no lugar de $foto). Posteriormente, na sua página web indique o diretório da foto em uma tag <img>.
[]s.