Per un match semplice puoi usare preg_match invece di _all. Mentre per la regexp hai scordato di mettere quante occorrenze vuoi che vengano trovate. Quindi o metti un + oppure puoi dare un intervallo {8,} che matcha solo se la stringa contiene pių di 7 caratteri.
codice:
$regex = "/^[0-9a-z]{8,}$/i";
if (preg_match($regex,$pwd)){ 
///....
}


edit: scordato di togliere "_all" nel code