show logout only if user is not logged in - php

I have a php script for the navigation bar. This is what I have but it keeps showing a blank page, if I remove the links and put a redirect instead it works without any problems.
<?php
session_start();
if (!isset($_SESSION['id'])) {
echo "<a href='create.php'>Create</a>"
echo "<a href='search.php'>Search</a>"
} else {
echo "<a href='logout.php'>Logout</a>"
echo "<a href='create.php'>Create</a>"
echo "<a href='search.php'>Search</a>"
}
?>

You're missing all the semicolons
echo "<a href='create.php'>Create</a>"; <---
echo "<a href='search.php'>Search</a>"; <----
}
else {
echo "<a href='logout.php'>Logout</a>"; <---
echo "<a href='create.php'>Create</a>"; <---
echo "<a href='search.php'>Search</a>"; <---

You forgot semicolons ; after every echo.
If you had placed error_reporting(-1); after your opening php tag you would have seen errors.

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!

How to get current page for php/mysql pagination

I created a simple php/mysql pagination and I'd like to get current page to set the class active . The answers I found around here do not necessarily represents the kind of pagination I have created which is very basic.
pagination
<?php
//pagination
$perpage=403;
if(isset($_GET['page'])){
$page=$_GET['page'];
}
else{
$page=1;
}
$offset=($page-1)*$perpage;
$sqlu="SELECT * FROM ve_users u
ORDER BY IsOnline DESC";
$resultu=mysqli_query($db,$sqlu);
$total_rows=mysqli_num_rows($resultu);
$total_pages=ceil($total_rows/$perpage);
echo"<div class='paginations'>";
echo "<a href='users.php?page=1'>«</a>";
for($i=1;$i<=$total_pages;$i++){
echo "<a class='' href='users.php?page=$i'>$i</a>";
}
echo "<a href='users.php?page=$total_pages'>»</a>";
echo"</div>";
?>
$page is where you capture the current page, so you have to change the pagination links' code block in the following way,
// your code
echo "<a href='users.php?page=1'>«</a>";
for($i=1;$i<=$total_pages;$i++){
if($i == $page){
echo "<a class='active' href='users.php?page=$i'>$i</a>";
}else{
echo "<a href='users.php?page=$i'>$i</a>";
}
}
echo "<a href='users.php?page=$total_pages'>»</a>";
// your code

How to assign a PHP expression to a PHP variable

I need to do something like
$var = "Hello World ..the value is <?php echo 'XYZ' ?>";
Any help will be highly useful. I am stuck in this from the very long time but not able to acheive this. please help
Below is my PHP code that I need to assigned again to php variable (this variable will be passed to return of my ajax call)
<div class="photo-post">
<h4 class="h4-1">Some data...</h4>
<?php
$i=0;
$unique_seq="888094499";
$pic_counter=1;
foreach (glob("target/*".$unique_seq."*") as $filename)
{
$i++;
}
$total_pics=$i;
echo "<div id='post-photo-slider'>";
if($i>1)
{
echo "<a href='#' class='control_next_photo'>></a>";
echo "<a href='#' class='control_prev_photo'><</a>";
}
echo "<ul>";
foreach (glob("target/*".$unique_seq."*") as $filename)
{
echo "<li>";
echo "<div class='photos-slide-container'>";
echo "<img src='".$filename."' width='540px' height='225px'>";
echo "<span class='count-span-photos'>".$pic_counter." of ".$total_pics."</span>";
echo "</div>";
echo "</li>";
$pic_counter++;
}
if ($i==1)
{
echo "<li></li>";
}
echo "</ul>";
echo "</div><!-- post-photo-slider END -->";
echo "<hr class='hr4'>";
?>
</div><!-- photo end -->
you cannot do it in this way
$var = "Hello World ..the value is <?php echo 'XYZ' ?>";
when you return this string to your javascript php code cannot be execute on client side!!!!
why do not return do this simple way?
$var = "Hello World ..the value is " . "XYZ";

PHP Session SID URL - url does not have SID

I'm trying to learn how to use Sessions to maintain state between pages.
I think my problem is that I dont know how to escape properly. When I load the page im not getting the SID at the end of the url, instead I'm getting this:
mytestsite.com/login.php?<?php echo SID;?>
I have session_start() at the top of every page. And the session initialy works as I see the login name appear on the page and the Register and Login links, but then when I click to another page the session is not maintained.
The main site nav is dynamically createdusing an array($nav) and foreach loop. Here too I'm not sure how to echo the url and php SID constant. I don't think my syntax is correct.
//LOGIN BAR
echo "<nav id='statusBar'>";
echo "<ul>";
if(isset($_SESSION['userIn']) && $_SESSION['userIn'] != ''){
echo "<li id='userLo'>Log Out</li>";
echo "<li id='userLi'>User Logged In: " . $_SESSION['userIn'] . "</li>";
} else{
echo '<li>Register</li>';
echo '<li>Login</li>';
}
echo "</ul>";
echo "</nav>";
//START MAIN MENU
echo "<nav id='nav'> ";
$nav = array();
$nav['index.php?<?php echo SID;?>'] = 'Home';
$nav['public1.php?<?php echo SID;?>'] = 'Public 1';
$nav['public2.php?<?php echo SID;?>'] = 'Public 2';
$nav['members.php?<?php echo SID;?>'] = 'Members';
//CREATE UNORDERED LIST
echo '<ul>';
foreach ($nav as $key => $navValues) {
echo "<li>";
echo "<a href='$key'>$navValues</a>";
echo "</li>";
}
echo '</ul>';
echo "</nav>";
Below everything within echo '..'; is interpreted as html.
echo '<li>Login</li>';
If you want to use variables inside the string you have to concatenate them like so:
echo 'Login' ;
For concatenating php code take a look at:
http://php.net/manual/en/language.operators.string.php
and more about sessions:
http://php.net/manual/en/session.constants.php

I want to add .html at the end or a full url fetch from Database and php query between echo

I am going to write following code for my blog. But problem, I am facing with:
"echo 'a href=".$query2['url']."</a>';" I want to add .$query2['url']. in echo and also want to add .html at the end of url like
"a href=".$query2['url'].html.".
If you have any idea please tell me as soon as possible thanks. Basically I am fetching this data from database .
<?php
$start=0;
$limit=5;
if(isset($_GET['id']))
{
$id=$_GET['id'];
$start=($id-1)*$limit;
}
$query=mysql_query("select * from tbl_services LIMIT $start, $limit");
echo "<div class='entry'>";
while($query2=mysql_fetch_array($query))
{
echo '<h2>' .$query2['name'].'</h2>';
echo "<p>".$query2['Contents']."</p>";
echo "<div class='meta'><i class='fa fa-clock-o'></i>".$query2['date']. "<b><i class='fa fa-user'></i></b> Written by <strong>Arslan Ali</strong> <b><i class='fa fa-comment-o'></i></b>" ;
echo "</div>";
}
echo "</div>";
$rows=mysql_num_rows(mysql_query("select * from tbl_services"));
$total=ceil($rows/$limit);
echo "<ul class='pagination'>";
if($id>1)
{
echo "<li><a href='?id=".($id-1)."' class='disabled'><<</a></li>";
}
for($i=1;$i<=$total;$i++)
{
if($i==$id) { echo "<li class='current'>".$i."</li>"; }
else { echo "<li><a href='?id=".$i."'>".$i."</a></li>"; }
}
if($id!=$total)
{
echo "<li><a href='?id=".($id+1)."' class='disabled'>>></a></li>";
}
echo "</ul>";
?>
(Updated)
Replace this line
echo '<h2>' .$query2['name'].'</h2>';
with
echo "<a href='".$query2['url'].".html'>".$query2['name']."</a>";
There is still one problem with the solution made by Syntax Error. The href is in single quotes. This is not the proper Syntax. It is easily remedied by reversing the use of the single and double quotes as I have shown here.
echo '' . $query2['name']. '';

Categories