When i run this I allways get: (what ever is wdl form).
copy ("templates/colors/win.txt", "tips/$today/color.txt");
copy ("templates/text/win.txt", "tips/$today/wdl.txt");
which means the last commands, the if on my php code is not working. the code:
<?php
echo ("Setting up colors...");
if($_GET["wdl"] == "D");
{
copy ("templates/colors/dr.txt", "tips/$today/color.txt");
copy ("templates/text/dr.txt", "tips/$today/wdl.txt");
}
if($_GET["wdl"] == "L");
{
copy ("templates/colors/lose.txt", "tips/$today/color.txt");
copy ("templates/text/lose.txt", "tips/$today/wdl.txt");
}
if($_GET["wdl"] == "W");
{
copy ("templates/colors/win.txt", "tips/$today/color.txt");
copy ("templates/text/win.txt", "tips/$today/wdl.txt");
}
?>
how can i fix it?
the solusion was to remove the: ex: ;
from if($_GET["wdl"] == "W");
is best way to replace if with switch statement
<?php
echo ("Setting up colors...");
switch($_GET["wdl"]) {
case "D" :
copy ("templates/colors/dr.txt", "tips/$today/color.txt");
copy ("templates/text/dr.txt", "tips/$today/wdl.txt");
break;
case "W" :
copy ("templates/colors/win.txt", "tips/$today/color.txt");
copy ("templates/text/win.txt", "tips/$today/wdl.txt");
break;
case "L" :
copy ("templates/colors/lose.txt", "tips/$today/color.txt");
copy ("templates/text/lose.txt", "tips/$today/wdl.txt");
break;
}
?>
Remove the ;
at the end of the if
, before the {
if($_GET["wdl"] == "D");
{
should be
if($_GET["wdl"] == "D")
{
and so on..
;
is an instruction separator. Read more here
This is a common area of mistake, so to avoid this, you could do
if($_GET["wdl"] == "D") {
...
That way you can avoid the accidental ;
after the looping constructs
So the code block looks like this:
<?php
echo ("Setting up colors...");
if($_GET["wdl"] == "D") {
copy ("templates/colors/dr.txt", "tips/$today/color.txt");
copy ("templates/text/dr.txt", "tips/$today/wdl.txt");
}
if($_GET["wdl"] == "L") {
copy ("templates/colors/lose.txt", "tips/$today/color.txt");
copy ("templates/text/lose.txt", "tips/$today/wdl.txt");
}
if($_GET["wdl"] == "W") {
copy ("templates/colors/win.txt", "tips/$today/color.txt");
copy ("templates/text/win.txt", "tips/$today/wdl.txt");
}
?>
if($_GET["wdl"] == "W");
Because of semicolon(;
) after IF
statement
Remove semicolon after all IF
statement. It looks like
if($_GET["wdl"] == "D") {
copy ("templates/colors/dr.txt", "tips/$today/color.txt");
copy ("templates/text/dr.txt", "tips/$today/wdl.txt");
}
if($_GET["wdl"] == "L") {
copy ("templates/colors/lose.txt", "tips/$today/color.txt");
copy ("templates/text/lose.txt", "tips/$today/wdl.txt");
}
if($_GET["wdl"] == "W") {
copy ("templates/colors/win.txt", "tips/$today/color.txt");
copy ("templates/text/win.txt", "tips/$today/wdl.txt");
}
Try this:
if($_GET["wdl"] == "D"){
copy ("templates/colors/dr.txt", "tips/$today/color.txt");
copy ("templates/text/dr.txt", "tips/$today/wdl.txt");
}else if($_GET["wdl"] == "L"){
copy ("templates/colors/lose.txt", "tips/$today/color.txt");
copy ("templates/text/lose.txt", "tips/$today/wdl.txt");
}else if($_GET["wdl"] == "W"){
copy ("templates/colors/win.txt", "tips/$today/color.txt");
copy ("templates/text/win.txt", "tips/$today/wdl.txt");
}
You need to remove the ;
from the end of the if
statements and you can also make it an else if
to prevent it from testing the remaining statements once one matches.