Today my company had an annoying issue with DHCP looping. I spent more than 2 hours to figure out why several PCs get IPs from VOIP subnet. My manager spent about 30 minutes and figured out that someone plugged DATA port and VOIP port back of the phone. How do I prevent that so we don't have that kind of issue again? Does DHCP snooping prevent that type issue? if not, please let me know how to prevent that happen?
Without knowing a lot more about your infrastructure...
Disable the "data" port on all your phones. You appear to have dedicated voice and data ports to everyone, so there's no need for daisy chaining through the phone.
Enable what Cisco calls bpdu guard. If any spanning-tree BPDU is seen on an "edge" port, the port is immediately disabled.
Running CDP / LLDP will help chase down what ports have been looped. If you see a switch neighbor on a port that shouldn't be connected to a switch...
Since you are considering changing switches, you can use mac-based-vlan on the switches (or voice-vlan). This will put the phones on a specific Vlan based on the MAC of your phones.
Now all data port and phone port will be technically identical and you can chain phones and computer, even using 2 different DHCP servers. Then you will just have to prevent L2 loop in your network.