-The site will be very simple and one core bit of functionality is that users choose a user name and password, enter their credit card details, but have a 30 days free trial of the app, and then get billed same amount monthly if they have not cancelled within 30 days
-they dont download the app its all on line
This rings an alarm bell. You do not know PHP, yet you have a working online app that people will pay for? Are you sure?
I’ll outline what you will need for your project regardless, as your business model is, ultimately, none of my business. Please consider using an already-existing framework if you are not smoking hot on PHP security, as the chances to screw up are quite big - and if you’re playing with real money in there, you could get in very serious trouble.
-so we will need to:
1) once user has entered user name and password, the programme must know if its valid and if not tell them
If you have chosen a third-party framework, this is usually dealt within it. Frameworks like Laravel usually have a [b]Session[/b] or [b]Authentication[/b] class, and the part left is to build the forms and user interaction.
2) once the user has been a member for 30 days, billing must be triggered, using a pre existing stnd payment gateway eg paypal
Before going any further, I would strongly recommend looking up the various APIs available based on your choice of gateway and the server requirements. For example, PayPal exposes two methods for you to log payments on your server: PDT, which is informative (and can be spoofed), and IPN (which requires a CURL callback to PayPal to request the information, and works like a pub/sub channel). Other gateways will usually expose a SOAP/XML-RPC API, which again requires CURL.
If your server hosting provider does not allow you to use CURL calls…You’re screwed! This needs to be very carefully thought about. In addition, if you are using a third-party framework, consider choosing based on the availability of plug-ins. For example, I know that Laravel, Symfony, WordPress and Zend all have implementations for PayPal.
3) users log in details etc must be stored so that if someone calls up saying they cant log in, an adminstrator can tell them why.
That's simple logging. Dedicate a table in your DB to log events.
4) copies of anything they use the software to create must be stored online for future use so that each time they log in they can see a copy of what they previously produced
This is based on your app. I can't help you with that.
Hopefully this has been informative to you.