I am trying to use a php script to only show a link, when a “user” in a MySQL table is “logged in”. What is wrong with the php code which I have tried? Mine is here below:
<?
session_start();
if(!session_is_registered(myusername)){
header("location:main_login.php");
}
?>
<html>
<head>
require_once(checklogin.php)
</head>
<body>
<?php
if($myusername == "admin");
echo "<a href="test.html"> Click Me! </a>";
?>
</body>
</html>
The $myusername variable comes from the file below which checks the username from a form (on another page) against the mysql table and opens a session.
<?php
ob_start();
$host="-----";// Mysql username
$password="-----"; // Mysql password
$db_name="-------"; // Database name
$tbl_name="-------"; // Table name
// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
// Define $myusername and $mypassword
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];
// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
session_register("myusername");
session_register("mypassword");
header("location:login_success.php");
}
else {
echo "Wrong Username or Password";
}
ob_end_flush();
?>
So to repeat my question: What exactly is wrong with this block of code
if($myusername == "admin");
echo "<a href="test.html"> Click Me! </a>";
?>
which should recognize the user and display the link
try like this
when you start the string with double inverted coma(“) you must have to use single inverted coma(‘) in that statement if parser found another double inverted coma (“) it will consider as a end of string
may be this issue