2011-03-05 2 views
1

Dans le site Web que je conçois la page de liste d'admin montre des champs tels que le nom, l'email, le nom d'utilisateur et le statut (utilisateurs actifs ou inactifs). Ma base de données a une table appelée admin. Les champs sont iAdminId, vPrénom, vLastName, vEmail, vUserName, vPassword, vFromIP, vFromIP, dLastLogin et eStatus.comment identifier de manière unique des enregistrements sans que leurs ID soient affichés?

Dans la page PHP équivalente (la page de la liste d'administration), je dois ajouter un bouton supprimer. Des cases à cocher sont présentes avec chaque ligne. Le nombre de lignes qu'un administrateur choisit sera supprimé (après confirmation, bien sûr) une fois qu'il clique sur le bouton Delete. Mon problème est puisque je n'ai pas mentionné le champ iAdminId dans ma page d'inscription comment identifier chaque enregistrement de façon unique?

Mon code javscript pour la suppression est:

function deleteRecord() 
{ 
    var count = getCount(); 
    if(count == 0) 
    { 
     alert("Please enter some records for deletion first!!"); 
    } 
    else 
    { 
     var c = confirm("Do you wish to delete?"); 
     if(c==true) 
     { 
     document.frm.mode.value="Delete"; 
     document.frm.submit(); 
     } 
     else 
     { 
     alert("You had wrongly selected 'Delete' option!!"); 
     } 
    } 

    } 

getCount renvoie le nombre d'enregistrements sélectionnés. et le code PHP est

if($mode=="Delete") 
{ 
    for($i=0;$i<count($_POST['ch']);$i++) 
    { 
     $delete = "DELETE FROM admin WHERE Name = '".$_POST["ch"][$i]."'"; 
     $result = mysql_query($delete); 
    } 
} 
+0

Cela vous dérange-t-il que cet ID soit visible dans le code source côté client? –

Répondre

2

fourni l'e-mail est unique à chaque utilisateur et vous avez des contrôles pour assurer cette unicité, il peut être utilisé autrement, il n'y a pas de moyen infaillible de le faire. Le seul moyen est de placer l'identifiant dans la liste. Il s'agit de l'identifiant unique unique de chaque ligne car l'utilisation d'une combinaison de colonnes peut être répétée. Une autre option consiste à créer une clé primaire composite sur deux des champs mentionnés ou une clé unique dans le champ de courrier électronique.

Par exemple. Pour s'assurer que l'email est unique ou que les combinaisons de prénom et nom de famille sont uniques.

+0

Merci beaucoup. Peut-être que c'est la seule façon disponible. Merci encore – ruki

1

Je mettrais la valeur (parfois, les gens utilisent le nom ou l'attribut ID de l'élément) de la case à cocher égale à « admin_n » ou « user_n » où n = id. Lorsque le formulaire est soumis après avoir appuyé sur delete, vous pouvez analyser ce nom pour retirer l'identifiant et le traiter de cette façon.

Bien sûr, donnera le ID de l'utilisateur dans la source, mais ce ne est pas vraiment un problème, sauf si vous avez des trous de sécurité fous dans votre code ..

Questions connexes