Su questa riga ci va && e non &
Codice PHP:
if($status == AUTH_LOGGED & auth_get_option("TRANSICTION METHOD") == AUTH_USE_LINK){
Nella query puoi usare direttamente $_POST["abil_id"] invece di istanziare una nuova variabile che spreca solo memoria.
Stessa cosa per $username=$user["username"]; usa direttamente $user["username"].
Nella pagina send_abilities.php usi sia $_GET che $_POST, puoi arrivarci in 2 modi diversi su tale pagina? In tal caso discrimina in partenza i due casi con
Codice PHP:
if(isset($_GET['uid'])) {
//fa quello che devi fare in questo caso
}
elseif(isset($_POST['abil_id'])) {
//fa quello che devi fare in quest'altro caso
}
Da come vedo il tuo codice non puoi avere sia variabili $_GET che $_POST attive contemporaneamente.
Sei sicuro che $user e $status contengano i dati che ti aspetteresti? Non darlo per scontato, verificalo.