|
Hi all. I'm writing a web app for personal business use. It's a big job and will handle invoicing, payments, time scheduling and so on. I expect it will take the better part of 6 months or a year to finish in my spare time.
I've made a couple of false starts but seem always to end up with spaghetti code. My major obstacle is keeping the program aware of what it's current status is.
For example, there's a page to add a new customer, or a new supplier and they work fine. sometimes while entering an invoice it happens that the supplier or the customer or work location or something that does not exist. The app. needs to divert to the "New customer" page, get the data and return to the original point. While entering the new customer it might happen that the customer uses a bank that's never been entered before and so it needs to divert to the "New Bank" page and then backtrack to where it started.
To make the problem clearer - please consider the web-interface my bank uses. I have to log in to do anything at all. If I'm half way through a transaction and the session times out, I'm taken to the log-in page again, but after entering the login details I don't go to the main menu again ... it takes me to where I left off with the transaction. Somewhere behind the scenes a clever programmer kept track of what I was doing, so the log-in page can be re-used over and over at different points in a session. That's the kind of thing I need to do.
I've been using session variables and some hidden variables in the pages to assist but as the program grows it becomes cumbersome and confusing. There's an endless list of if's or's and's - rules and exceptions to rules.
Can anybody give some good generic advice about how to integrate and track all the various sub-components of a large application like this?
Thanks in advance.
Angus
|
|
|
|
|
Good Question. There are many ways you can do this.
I would use an array stored in a session variable ("$tasks" - see below). I'd also have each page save data as you go along and refer to everything using a Unique ID - so that if you get halfway through and realise you need to do something else you can go off and do something else and the data will be stored.
I also suggest putting the code that stores a page's data to the database into a function so that you can reference it from any other file. This way, if your form has 5 possible exit points - you only need to write the code that stores the data once.
When you reach a point where they will be redirected to a new page add the current page to the tasks array:
$tasks = $_SESSION['tasks'];
$tasks[] = "/editInvoice.php?id=$invoiceid";
$_SESSION['tasks']= $tasks;
....
(on the next page: )
$tasks = $_SESSION['tasks'];
$tasks[] = "/editCustomer.php?id=$custid";
$_SESSION['tasks']= $tasks;
Then when a task is complete you can pop the array and redirect to the popped item:
$redirect = array_pop($tasks);
$_SESSION['tasks']= $tasks;
header("Location: $redirect");
|
|
|
|
|
Just pointing out that:
$tasks = $_SESSION['tasks'];
$tasks[] = "/editInvoice.php?id=$invoiceid";
$_SESSION['tasks']= $tasks;
Is exactly the same as:
$_SESSION['tasks'][] = "/editInvoice.php?id=$invoiceid";
|
|
|
|
|
Thanks Marc for the ideas. I like the idea of popping and array...I can sort of make a breadcrumb trail that way.
I've taken your advice also to see how others have done this. Finding lots of hidden fields, and useful data embedded into URL's.
I think I will keep analyzing this for a few weeks before starting in earnest. I'd rather get it right first time, not have to patch up an imperfect solution.
And AtliThor - I'm constantly amazed how people can write one line of code when I need half a dozen to do the same thing. Thanks also.
Angus
|
|
|
|
|
Hi guys.
I am TOTALLY new on Linux and we just bought a new Linux server at the office and I have to install some application on it. I need to install and other applcations but unfortunately it does not recognize the exe files as installable files. How do I go about installing them.
Your assistance will be appreciated guys.
kagiso
|
|
|
|
|
Exe files are programs that are compiled for Windows. You need programs that are compiled to run on Linux, simply taking an exe and trying to run it on Linux won't work. Wherever you got the applications from that you're trying to install, you need to go back there and get different versions.
Different Linux distributions have different ways to help you install software. Most have some sort of online repository for software and you use a nice GUI to select the apps you want to install, click a button and viola, the apps are installed. Another common thing is that different distributions have their own installer packages - kind of like Microsoft's MSI files. The idea is that everything you need to install an app is packaged in one file and all you have to do is launch that file. Red Hat's ".rpm" files and Debian's ".deb" files are two types that are pretty standard nowadays.
If you're TOTALLY new on Linux then I strongly suggest you try to find a mentor in your company or get some kind of beginners book to help you.
Last modified: 6hrs 16mins after originally posted --
|
|
|
|
|
matjame wrote: I need to install and other applcations but unfortunately it does not recognize the exe files as installable files. How do I go about installing them.
Some of the EXE files can be executed using wine[^] but not all. Since you are new to LINUX world, I would suggest to start with UBUNTU. It has got simple UI and almost easy to configure. You will get frequent updates and the synaptic package manager makes software installations painless.
|
|
|
|
|
Yeah..I have went through all that.....I now know how to install packages in Linux (CentOS Red Hat)....The problem is that..I have packages already on my desktop and want to install them
kagiso
|
|
|
|
|
matjame wrote: .The problem is that..I have packages already on my desktop and want to install them
Is that in a RPM format? When you install packaged manually, you will run into dependency issues. The package you are installing may be dependent on several other packages and you need to install the dependencies first.
|
|
|
|
|
Thanx Navaneeth..I just went to the CentOS site and got the RPMs and the other applications and they got installed automatically. Now I can install again but I am trying now to install from my desktop.
Which is still giving me a problem by the way..you can help me with that if you know how.
Thank you again for your assistance. Appreciated
kagiso
|
|
|
|
|
First of all, Windows executables (.exe) won't natively run on Linux. Contrary to what others said, WINE isn't the only way of running Windows binaries. If the binaries are .NET-programs, they might actually run if you have the MONO runtimes properly installed. This is mostly limited to console apps, though.
However, you can always install Windows into a virtual machine and run your software there.
If the software is popular, there might be a Linux version, as a binary package or source code. Source code is mostly offered as tarballs (.tar.gz) and requires a compilation after extraction. Under linux, extracting the source-code, changing into the source dir and executing the commands
./configure
make
make install
should configure the toolchain, build the software and install it for you. If you are missing compononents necessary for the build, the output of configure and make will tell you.
Binary packages are usually suitable for one or more distributions. The most famous formats are .deb (Debian-based) and .rpm (Redhat-Package-Manager). DEBs are usually installed with synaptic, aptitude or dpkg, RPMs with yast or another redhat package manager. On Debian-based systems, "apt-get install product" will try to retrieve and install a binary package by the name of "product", resolving dependencies and showing the results for you.
Cheers,
Sebastian
--
"If it was two men, the non-driver would have challenged the driver to simply crash through the gates. The macho image thing, you know." - Marc Clifton
|
|
|
|
|
Hi,
I am new to php, I am using magento tool in windows,in that currency symbol "Rs" is not displayed.Instead "RP" is displayed. What to do, help me.
Thanx in advance.
|
|
|
|
|
Do a find on all the files of magneto looking for one that has "RP"?
|
|
|
|
|
Hello Everybody,
I have a problem getting parameters from url in php. I am using this code:
if(isset($_GET["Letter"]))
{
$Letter = $_GET["Letter"];
}
else
{
$Letter = "";
}
if(isset($_GET["Industry"]))
{
$IndustryID = $_GET["Industry"];
}
else
{
$IndustryID = "0";
}
The code would get the parameter first time I run the page but if I want to reload the page with different parameters it would not get them and would use the parameters from the previous load instead.
I run this code on a joomla web-site through the Sourcerer plugin. However when I try running the same code on my local machine everything works just fine.
Does anybody know what’s causing this problem? Would it be a joomla issue? Any help would be appreciated. Thanks in advance!
|
|
|
|
|
so long as the page you are on has a query string like:
http://yoursite.com/yourpage.php?Letter=abc&Industry=efg
Your code should work fine.
Note, you can shorten your code to:
if($_GET['Letter'])
{
$Letter = $_GET['Letter'];
}
else
{
$Letter = "";
}
if($_GET['Industry'])
{
$IndustryID = $_GET['Industry'];
}
else
{
$IndustryID = "0";
}
|
|
|
|
|
platinum1912 wrote:
if(isset($_GET["Letter"]))
{
$Letter = $_GET["Letter"];
}
else
{
$Letter = "";
}
if(isset($_GET["Industry"]))
{
$IndustryID = $_GET["Industry"];
}
else
{
$IndustryID = "0";
}
This could also be written like this:
$Letter = isset($_GET["Letter"]) ? $_GET["Letter"] : "" ;
$IndustryID = isset($_GET["Industry"]) ? $_GET["Industry"] : "0" ;
I like saving space with my code.
My failometer has shot off the end of the scale!
I seem to have misplaced my ban button.. no wait... found it!
|
|
|
|
|
Thanks for help guys, but I still couldn't figure out what is causing the problem. The url does look like mysite.com/search?Industry=19&Letter=A but the parameters are still not taken into the code. Any ideas?
|
|
|
|
|
I actually found a solution. When a joomla web page opens for the first time it is cached on the server. When it is requested later the cached copy is opened instead of new one. That is why it uses the parameters submitted when the page was loaded first. I just had to turn the caching off to make the site working as needed.
|
|
|
|
|
pls i want to write a code for a each state in a map to link each other
|
|
|
|
|
so you want to know what exactly? You need to be a bit more specific. Post code you've written so far etc. What exactly do you mean "link to each other"?
Do you mean you have a map (i.e: of the US) and you want users to be able to click on different areas of it? If so, then you will probably want to use the <map> and <area> tags.
e.g:
<pre>
<img src="yourImage.jpg" width="480" height="467" border="0" usemap="#Map" alt="buttons" />
<map name="Map" id="Map">
<area shape="rect" coords="6,27,282,136" href="state1.php" alt="State1" />
<area shape="rect" coords="6,170,282,278" href="state2.php" alt="State2" />
</map>
</pre>
|
|
|
|
|
Neonlight,
i have the map already save on jpg but inside the map contain each states of different map. i want a code that will click on each states inside the map and it will take me to their states website. Thanks for the reply Neonlight your code is perfect, but i still need more clarification.
|
|
|
|
|
Well, I'm not going to write it all for you. Do some research on the map and area tags (Google them). If my code is perfect you should have everything you need in my last post.
|
|
|
|
|
yah, have trace the map using dreamweaver map cutting, pls teach me the functionality.
neolight pls give your light to it.
|
|
|
|
|
For each sate trace its outline:
<area shape="poly" coords="288,94,353,129,366,100" href="#">
This is in the format:
<area shape="poly" coords="x,y,x,y,x,y" href="#">
Where each "x,y" is a point of your polygon hotspot.
If you are using dreamweaver, click the image and look for the "polygon hotspot tool" (bottom left).
You can make the hotpsot using that - then just change the hyperlinks
That's your lot. Google the rest. If you don't try and figure it out for yourself you won't remember it. But, if you still need help learning html I suggest visiting <a href="http://www.w3schools.com">http://www.w3schools.com</a>
|
|
|
|
|
mrs gbolagun wrote: pls i want to write a code for a each state in a map to link each other
Permission granted.
|
|
|
|