Personalisation will only work on a landing page when you are sending to saved contacts or contact groups.
If you are trying to personalise a landing page using multiple fields for a large list of recipients (e.g. first name, location, customer type etc.) then you should save your recipients as a list of contacts with this information being saved in the "Custom Fields" in the customer profiles. You can then add these fields to the landing page content. This is the same method used for sending unique barcodes to a list of recipients.
If you upload a CSV or Excel file of contact data into the recipient field to send your landing page, the personalisation fields in the landing page script will show up blank. Any personalised fields in the accompanying SMS message WILL work however, provided they correctly reference the column headers in the uploaded data file.