PHP: Passing URL Parameter in IF and ELSE statement - php

I'm trying to pass an URL parameter in an IF and ELSE statement. This is how the initial code looks like with just the link and without the parameter:
<?php
if ($row_checklist_finding_final['item_class'] == "Major")
{
echo 'Go to NCR';
}
else
{
echo 'Go to OFI';
}
?>
Usually when I'm trying to pass an URL parameter I use this code (this is without if and else statement:
<a href="UserNCR.php?item_id=<?php echo $row_checklist_finding_final['item_id']; ?>">
Go to NCR
</a>
So what I did is, I use my usual way of putting the parameter in the link like this.
The parameter name is item_id which is equal to value $row_checklist_finding_final['item_id']
<?php
if ($row_checklist_finding_final['item_class'] == "Major")
{
Go to NCR
}
else
{
'Go to OFI';
}
?>
I also tried removing the redundant <?php ?> like this:
<?php
if ($row_checklist_finding_final['item_class'] == "Major")
{
Go to NCR
}
else
{
'Go to OFI';
}
?>
But there are still error.
Did I use the wrong syntax?
What should I do to pass the URL parameter in an IF and ELSE statement?

Change your code like this below
<?php
if ($row_checklist_finding_final['item_class'] == "Major")
{
echo ' Go to NCR';
}
else
{
echo 'Go to OFI';
}
?>

You can use the . concatenation operator to join variables together, e.g. as suggested in https://stackoverflow.com/a/45666738/5233704
Another way is to use double quotes for your string as these allow inclusion of variables. Arrays need to be surrounded by curly brackets when doing this:
<?php
if ($row_checklist_finding_final['item_class'] == "Major")
{
echo "Go to NCR';
}
else
{
echo 'Go to OFI';
}
?>
Note that any double quotes inside your string need to be escaped with a backslash.

Related

How to sub a html and php code with php open and close tag into a php echo function

I want to echo out this code but there's already open and close php tag , so how do I sub the html and php in the echo and make the php function works.
This is the code that I want to echo it out.
<div class="tutor-zoom-join-button-wrap">
<?php echo $browser_text; ?>
<?php _e('Join in Zoom App', 'tutor-pro'); ?>
</div>
This is the function that I made(replace with code above with 123)
<?php
$var1 = 1;
if ($var1 = 1) {
echo "123 ";
} else {
echo "The course ID, password and join button will only be shown before 30min of course start";
}
?>
This is what I try but not working
<?php
$var1 = 1;
if ($var1 = 1) {
echo
"<div class="tutor-zoom-join-button-wrap">"
"",.$browser_text."",
""._e('Join in Zoom App', 'tutor-pro')."",
"</div>",
"</div>" ;
} else {
echo "The course ID, password and join button will only be shown before 30min of course start";
}
?>
I have modified your code. Please check and you also refer to some PHP tutorials to learn php.
<?php
$var1 = 1;
if ($var1 == 1) {
echo
"<div class='tutor-zoom-join-button-wrap'>
<a href=" .$browser_url. " target='_blank' class='tutor-btn tutor-button-block'>".$browser_text."</a>,
<a href=".$meeting_data['join_url']."target='_blank' class='tutor-btn bordered-btn tutor-button-block'>"._e('Join in Zoom App', 'tutor-pro')."</a>",
"</div>",
"</div>" ;
}
else {
echo "The course ID, password and join button will only be shown before 30min of course start";
}
?>
The problem is in the long string you want to echo. The double quote " starts and ends the string. You have started and ended the string several times when what you want is one long string. If you want to use a double quotes inside the string you have to precede it with a slash \". To concatenate strings you need to use a dot .. Double quotes also allow you to place variables inside the string that will be replaced. So your echo statement could be done like this:
echo
"<div class=\"tutor-zoom-join-button-wrap\">" .
"$browser_text" .
"" . _e('Join in Zoom App', 'tutor-pro') . "" .
"</div>" .
"</div>" ; // Note that this tag does not appear to be necessary based on the code you have shown
You can write it like this:
<?php
$var1 = 1;
if ($var1 = 1) {
echo `<div class="tutor-zoom-join-button-wrap">
`.$browser_text.`
`._e('Join in Zoom App', 'tutor-pro').`
</div>
</div>` ;
} else {
echo "The course ID, password and join button will only be shown before 30min of course start";
};
?>
Hope It will work for you!

Show url only if value is present

Goal:
Instead of showing simple YES or NO.
If value is found in record, show hyperlink with that value or else show text "No"
How to modify below code for this purpose:
<?php echo $row_RecordsetContacts['propertyFile'] ? '<strong>Yes</strong></br>' : 'No</br>'; ?>
View
</td>
<?php
$file = $row_RecordsetContacts['propertyFile']; # for readability only
if ($file)
{
?>View<?php
}
else
{
?>No<?php
}
I also suggest to avoid mixing echo and HTML markup. In 99% cases it makes the code better for understanding.
Try the following code:
<?php
$prop = $row_RecordsetContacts['propertyFile'];
if(empty($prop)) {
echo "No";
} else {
echo "<a href='propfiles/$prop'>View</a>";
}
?>

How to set a PHP variable via URL?

I'm trying to cause a variable $btn1Pressed to be set via a URL load. For example, loading http://mywebsite.com/myphp.php?btn1Pressed=1 would set the variable to 1. The below test code doesn't seem to be doing anything:
<?php
if ($btn1Pressed == 1) {
echo 'Button One Pressed';
}
else{
echo 'Button Two Pressed';
}
?>
Before the vampires arrive...
<?php
if (isset($_GET['btn1Pressed']) && $_GET['btn1Pressed'] == 1) {
echo 'Button One Pressed';
}
else{
echo 'Button Two Pressed';
}
?>
Anything in the query string will be in PHP's $_GET array. To see the entire array you can print_r($_GET); in your PHP code. In the example I am also testing to make sure the variable has been set, for safeties sake. You should never accept user input without sanitizing, which I have not done here.
You can also set a variable with the array item:
$btn1Pressed = $_GET['btn1Pressed'];
You can try use GET method:
if ($_GET['btn1Pressed'] == 1) {
echo 'Button One Pressed';
}
else{
echo 'Button Two Pressed';
}
<?php
$btn_pressed = filter_input(INPUT_GET, 'btn1Pressed', FILTER_SANITIZE_NUMBER_INT);
if ($btn_pressed == 1) {
echo 'Button One Pressed';
} else {
echo 'anything';
}
?>

Passing a PHP Value from a link

I am new to PHP and learning. I'm trying to pass a value through a url link but it doesn't seem to work.
The link value I am passing is http://www.mysite.com/index.php?id=f
I want to run a js script if ID not F seen below but right now when I run it. It doesn't do anything:
<?php
$ShowDeskTop = $_GET['id'];
if (isset($ShowDeskTop)){
echo $ShowDeskTop;
if ($ShowDeskTop != "f"){
echo "ShowDeskTop Value is not F";
echo "<script type=\"text/javascript\">";
echo "if (screen.width<800)";
echo "{";
echo "window.location=\"../mobile/index.php\"";
echo "}";
echo "</script>";
};
};
?>
I know this is easy PHP 101 but I can't figure it out. I have tried everything from w3schools to other sites on Google for the answer and having no luck. Could someone please tell me what I am doing wrong?
Thank you!
$ShowDeskTop is not the same as $ShowDesktop variables names are case sensitive!
This is never gonna work since you set the variable AFTER checking if it exist..
The most easy way:
<?php
if (isset($_GET['id'])) {
echo $_GET['id'];
if ($_GET['id'] != 'f') {
?>
<script type="text/javascript">
if (screen.width < 800) {
window.location = "../mobile/index.php";
}
</script>
<?php
}
}
?>
I don't think <> is valid in PHP (it is in VB.NET ..) the is not operator is != or !== (strict/loose comparison).
Also you don't have to close if statements with a ;
This:
if (expr) {
}
Is valid and not this:
if (expr) {
};
I thought about writing != instead of <>.
You have a number of problems including bad variable case (i.e. variables not matching), checking for variables before they exist, etc. You can simply do something like this:
if (!empty($_GET['id'])) { // note I check for $_GET['id'] value here not $ShowDeskTop
$ShowDeskTop = $_GET['id'];
echo $ShowDeskTop; // note I change case here
if ($ShowDeskTop !== "f"){ // note the use of strict comparison operator here
echo "YES, the id doesn't = f";
echo "<script type=\"text/javascript\">";
echo "if (screen.width<800)";
echo "{";
echo "window.location=\"../mobile/index.php\"";
echo "}";
echo "</script>";
} // note the removal of semicolon here it is not needed and is bad coding practice in PHP - this is basically just an empty line of code
} // removed semicolon here as well
Fist thing, you need ; at the end of echo $ShowDesktop
And, what does f mean in if ($ShowDeskTop <> "f"){
use strcmp() instead of <> operator.
Try
if(!strcmp($ShowDeskTop, "f")){
echo "YES, the id doesn't = f";
}
<?php
$ShowDeskTop = $_GET['id']; // assign before checking
if (isset($ShowDeskTop)){
//echo $ShowDeskTop;
if ($ShowDeskTop !== "f"){
echo "YES, the id doesn't = f";
echo "<script type='text/javascript'>";
echo "if (screen.width<800)";
echo "{";
echo "window.location.replace('../mobile/index.php');"; // assuming your path is correct
echo "}";
echo "</script>";
}
}
?>

Need help in display members name when logged in using PHP?

for some r.eason I cant display a logged in users name when they are logged in? the code is below
<?php
if (isset($_SESSION['user_id'])) {
echo '<?php if (isset($_SESSION[\'first_name\'])) { echo ", {$_SESSION[\'first_name\']}!"; } ?>';
if ($_SESSION['user_level'] == 1) {
echo 'something else';
}
} else { echo 'something';
}
?>
Thanks every one but i solved it.
Ack! Just look at your code. Do you know what this line is doing?
echo '<?php if (isset($_SESSION[\'first_name\'])) { echo ", {$_SESSION[\'first_name\']}!"; } ?>';
That's so wrong I don't even know where to begin. Just try
echo $_SESSION['first_name'];
And see if that gets you closer to what you want ;)
Make sure you're also calling session_start() before trying to access the variables.
Change your code to:
<?php
session_start();
if (isset($_SESSION['user_id'])) {
if (isset($_SESSION['first_name'])) {
echo ", " . $_SESSION['first_name']} . '!';
if ($_SESSION['user_level'] == 1) {
echo 'something else';
}
} else {
echo 'something';
}
?>
This is not a valid PHP code. Single quote "'" are not pair up. The block ('{' and '}') are also not pairing up.
The most importantly, the code to show the first name is in a string so it will not be shown.
I think the code you are trying to write is:
<?php
if (isset($_SESSION['user_id'])) {
if (isset($_SESSION['first_name'])) {
echo ", {$_SESSION['first_name']}!";
}
if ($_SESSION['user_level'] == 1) {
echo 'something else';
}
} else {
echo 'something';
}
?&gtl
Is it?
Here are the list of possibilities of the mistakes and make sure that you have corrected them
1) have you set the cookie "first_name" using setcookie method...?
2) Then have u called the session_start() function so that the session variables can be called in that page??
3) Try echo $_SESSION['first_name']... i don understand why you have put the flower brackets coz i never have used them even once in my 15 php projects..

Categories