Cash. Make envelopes of cash for what you are supposed to spend. Do not go outside the budget. Only spend what you have to. And put it in perspective. And keep a list of spendings in your purse and write in it everytime you make a frivolous purchase.
Going to start using some software that connects to a phone app for that. Being using the trial and am very happy with it, more user friendly than my massive spreadsheet.

Now if only I can handle DH