Need to create a registration for a webpage, no idea where to start

I am managing a website for a small business. I know HTML and CSS extensively, but not much past that. The owner is a decent friend of mine so she is letting me do this. 

They have events (paid events) and they want me to setup a registration page for, but they will also need to submit a payment, through PayPal preferably.

I have no idea where to start. Can anyone point MW in the right direction? Right now the website is just simple HTML and CSS.

Basically you are going to have to learn some backend technology to support the new functionality.  You will have to learn Java, C#, Python, or PHP.  You will also probably need to learn JavaScript, but for basic HTTP calls from a browser to your web server, you will not need to know it.  Plus, you are more than likely going to need to persist these transactions to a database, so you will need to learn SQL (Structured Query Language) and some database like MySQL or PostgreSQL.  If you do not want to learn SQL, you can also use MongoDB, but then you will have to learn JSON (JavaScript Object Notation).

What web server are you using to host the web site?  Apache, Tomcat, IIS, something else?

If you are using Apache, you can pretty much easily expand your web server to use anything Java, Python, PHP, etc.  At that point, it depends on what you want to learn.  If you are using Tomcat, obviously you will want to use Java.  If you are using IIS, then you will want to use one of the .NET supported languages, C# is probably your best bet.

 

I'm not really sure what the website is being hosted on. I connect to it through FTP and it is hosted by the owner's friend. So it looks like I will either need to find this out, or move it to a different hosting provider.

Thanks for the information though, I'm completely lost when it comes to backend development. I know enough Python to get it rolling if that is an option. In C# and Java my knowledge is only a little bit past beginner. I've messed around with javascript some too, so that shouldn't be too much of a problem if it is needed.

Figuring out if PHP works should be simple enough - just upload a script like this below, and you'll probably know if it works:

<?php echo "Hello, World!"; ?>

As for finding out if MySQL works, that won't be as easy. You'll have to actually talk to the owner's friend to find out about database information, like the name, username, and password, if it is supported in the first place.

That's for PHP and MySQL, anyways. I don't know much about working back-end with Python or C#, but I have worked with PHP before quite a bit. It's the most likely to have support, at the very least. If you already know OOP design, it should be easy enough to learn - just a lot of commands and database stuff you'd have to adapt to. The design is the hardest part, though, in my opinion.

If the website it just a simple set of static HTML pages, chances are your friend is using Apache as the web server.  Downloading and adding the Python mod to Apache is pretty straightforward.  And if you wanted to use a different web server, you could always keep the Apache server as a proxy and host for your static HTML pages, and forward traffic for your new functionality to your new web server.  This is actually a very common setup for many web sites.

 

Thanks for the information guys. The website is simply 5 static HTML pages using one CSS document. They wanted a complete simple experience. But now they want a complete simple experience that includes them being able to register and pay to attend these events all on the same page. I only need simple information such as contact information and the names of the people registering, then a way to make sure they have paid, this using PayPal.

 

Do any of you have any links I can refer to? Pretty much all of my google searches end up with a paid service to create events, where as I want to make one.

PayPal actually has a set of RESTful web service that you can call from your web application to perform credit card transactions.  They have an SDK for this and have some example code for how to use it for most programming languages.

REST stands for REpresentational State Transfer and it has become the standard for communication between disparate web applications or communication between regular applications and web apps.  REST uses different HTTP methods to perform each CRUD (Create, Read, Update, and Delete) operation, against a given resource.  These map to HTTP POST, GET, PUT, and DELETE, respectively.  The resource is a given URI (e.g., http://www.example.com/user/account).  In this example if you were to issue an HTTP POST against that URI, you would end up creating a new user account.  Likewise, if you executed a GET against this URI:  http://www.example.com/user/account/id/54321  You would retrieve the user that matched the id 54321.  Data can be sent to and from the server using any of the defined MIME types, but most REST based web services exchange information using JSON.  And PayPal’s RESTful web services do use JSON.

I mainly build Java based websites, and I did use PayPal’s RESTful web services a few of years back.  Here is a link to the PayPal Python REST API SDK:

https://github.com/paypal/rest-api-sdk-python

You can download it and start to play with it.

If they want everything on the same current web page, you are more than likely going to have to use JavaScript to achieve this.  This is not that hard to do. But depending on how much information you currently have on the web page, things could get messy and ugly.  You may want to steer them towards redesigning at least part of their web site.  Changing the user’s experience is not necessarily a bad thing.  I would really couch this as an opportunity to give their customers a better user experience. 


Thanks for the information. Turns out the site is hosted with IIS. Looks like I will need to do a bit of research on this, because while I know at least some things on the other languages, I know nothing about the .net framework.

If you need any help feel free to post in this thread, I'll keep an eye out. I'm pretty well versed in the .NET world (been working in a .NET exclusive shop for 2 years now...). I'll help if I can.

Thanks for the offer for help! Turns out all I need to do is set up a form and make it save to a database. Could you give me a couple places to look? I'm not sure if I can use PHP with IIS, or if that is even the best option for this.

All I really need is simple information like name, birth date, address and phone number. Afterwards we can just match up the PayPal payments to the information we've gained. Only problem is I'm not sure how to keep this information safe.

Could you give me somewhere to check out more information on this?

You can use PHP with IIS, you just have to download it from Microsoft and install it.  You can also download Visual Studio Express for Web 2013 and the PHP plugin for it.  It’s free.  http://www.microsoft.com/en-us/download/details.aspx?id=40747

With regards to transmitting user information, there are a couple of things you need to consider.  How sensitive is the information you are collecting?  If you want your transactions to be secure, you are going to have to use HTTPS.  To use HTTPS, you have to enable SSL in IIS.  To do this, you need to get an SSL certificate.  You have a couple of options, you could use a self signed cert.  There are lots of tools you can use to create one and the cert is free.  The problem is self signed certs are not trusted and users of your web site will have to confirm a security exception.  For your site to be trusted, you have to have a cert signed by a trusted certification authority like Verisign.  The problem with using Verisign is that they are expensive because they are probably the most trusted cert authority.  A cert from Verisign will probably cost about $1000.  There are other cert authorities, but most will not be as trusted as Verisign.  RapidSSL is decent and cheap, their certs cost about $50, http://www.rapidssl.com/

You really should use HTTPS, but if the data is not that sensitive you might be able to get away with not using it.  If you are sending any type of credit card or payment information, you MUST use HTTPS.

As far as storing user data in a database, if it is basic information like name and address, you can probably just store it as plain text.  If you plan to store any sensitive information like credit card numbers you should store these as encrypted data inside of your database.  Don’t make the same mistake Sony did.

You will probably want to use AES encryption.  Don’t use DES for things like credit card numbers.  It is not secure enough.  Java has crypto as part of the JDK. PHP probably has something similar.

It's pretty complicated to create an entire login system that's save. I'll do it for $50,-