Basics of Building a website in C++ with POCO or CSP

Mar 17, 2014 at 11:04am
I learned php a few months ago, built a high volume trading application. two weeks ago, it was hacked. for a while i've been feeling discouraged, but i've realized that i was never meant to be a php programmer, because you can't write anything securely without a framework, which seems like a huge waste of time to learn. I thought of trying ROR, then i thought of node js, but i keep coming back to a burning desire to write C++. it has a similar syntax to php, and i find it extremely easy to read and understand however, my knowledge of C++ consists of some minor dicking around with bitcoin's source code and compiling it under windows/unix.

So, my question really is more of a crash course of what i need to learn, but haven't necessarily found anything descriptive on the internet.

i need to know:

1. a crash course on creating a website with either POCO or CSP, something that will allow me to avoid pointers and memory management, atleast until i have gained the basic understanding of C++.

2. i need to learn simple ways to accomplish the following tasks:

a. for loop i use in php often to render results to the view(webpage)
ex:

1
2
3
4
5
6
for(i = 0;  i < mysql_num_rows(query); i++){ 
//script here 
foo = mysql_result(query, i, "foo");
bar = mysql_result(query, i, "bar");
echo foo."</br>".bar."</br>";
} 


b. while loop
ex:

1
2
3
while(row = mysql_fetch(query){ 
//script here
}


c. connection to a mysql db.

d. a mysql query

e. building a real time websocket(for a chat, or a real time orderbook display, etc.)

f. handling get requests and post requests in POCO or CSP.

g. passing variables to jquery/javascript with C++

h. working with arrays( php equivalents of: array(), in_array(), array_sum(), print_r()etc.)

i. database transactions( i dread learning this again but its a must)

j. equivalent of php's switch() function if possible.

k. equivalent of php's `hash` function which roughly would look like

hash('sha512', variable . salt);

l. best way to generate randomness(numbers, strings, etc.) for password salting/csrf tokens etc.)

m. how to properly construct functions and classes in C++.

n. if its possible to wrap cout>> in a function, to making printing things in html simpler(like echo and print do in php).


additionally, a quick run down of syntax rules/common pitfalls would be appreciated. the bitcoin code is so complex i really haven't gained much knowledge of C++ other than the basic things(if statements, type casting(for integers, though i really don't understand all the differences), basic syntax rules like braces, semicolons.)

aside from this knowledge, about the only thing i would need help with is library linking, file inclusion rules, and general compiling help for POCO/CSP. thanks!

admin, feel free to move as necessary, though i suppose beginners is the most fitting forum for me
Last edited on Mar 17, 2014 at 11:09am
Mar 17, 2014 at 12:18pm
What is CSP?

Yes, PHP is similar to C. Most underlying actions such as sockets for communication are done in C because PHP would be far to slow.

The first thing in C++: you have to learn that it's strongly typed unlike PHP. I'd suggest to take look at the tutorials and references on this site for first steps.

i was never meant to be a php programmer, because you can't write anything securely without a framework
Hm, frameworks are the PHP equivalent for the libraries in C/C++.

You can do everything you mention with C++. You may take a look at Wt:

http://www.webtoolkit.eu/wt

Appart from that POCO comes with several examples. So I suggest take a look at them.
Also take a look at MySql homepage to get the library and documentation.
Mar 17, 2014 at 7:53pm
That's relatively impressive that you knocked out a high-volume trading app with only a few months of PHP. Kudos to that!

I have been evaluationg Wt and Poco for a short time. I've been working with PHP for 10 years or maybe more and have similar short term requirements from a C++ framework.

I started with Wt while keeping the Boost libraries in mind, and I am now looking at POCO. I am not a super wiz-bang with C++, and I'm finding I need to drop back to learn some C++ concepts I've never truly worked with.

From my perspective, both libraries use what I see as advanced abstraction, and Wt uses quite a bit of templating. With the time I'll spend getting up to a comfortable point in C++ to use these libraries properly, I almost could drop back a notch and spend some time learning Boost, and maybe build some of this myself.

Both communities, while helpful, have slightly less patience for lack of C++ skills as opposed to general library implementation, so Jumping to a C++ web app is going to take some commitment (again, my perspective).

I need to check out CSP now.

Oh ya, installation and compiling.. Probably a good idea to get comfortable with Make as well.
Last edited on Mar 17, 2014 at 7:58pm
Mar 17, 2014 at 9:41pm
coder777, you're my hero. Witty sounds amazing, particularly since it has its own DBAL and all of the things i mentioned in my post. thank you good sir.
Topic archived. No new replies allowed.