• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 642
  • Last Modified:

Confirmation message on same page

I've been wondering how I can display confirmation or error messages inside the same page, kind of like what the admin area of wordpress does.

For example if a user updates a database table through a form field and it's a success then the user would be returned back to the original page (using the php header function) with the confirmation echoed inside a <div> tag or something similar.

Or how about when a user tries to log in and enters the wrong username or password. How would I then display a message like "Sorry, try again" on the same page as the form?

Anyone got any ideas how to do this? it would help me a lot for my project!
0
thephiller
Asked:
thephiller
  • 3
  • 2
  • 2
1 Solution
 
wildzeroCommented:
You could use sessions to do this which would mean it wouldn't effect your URL.
eg
Lets say they update there table, at the top of the php make sure to have
session_start();

then have like

If (do this operation) {
  //-- do some fancy stuff.
  $_SESSION['message'] = 'Operation was complete';
}

now all we have to do is call out the message when we want to display it, if it's set. So on your original page, make sure to have session_start(); at the very very top then have like

<?PHP
If (isset($_SESSION['message'])) {
  echo "<div>".$_SESSION['message']."</div>";
  unset($_SESSION['message']);
}
?>

Notice the unset there - this means if they refresh the page the message wont show again.

That make sense?
0
 
deanmbCommented:
here is a very simple way..  on the main main page put sessions like
start the session on both pages with

session_start();  
header("Cache-control: private");

then on the main page put sessions like

echo $_SESSION["confirmation"]; // this echos the session
unset($_SESSION['confirmation']); //this unsets it so if they hit back or forward its no longer there

then on the page that does the login or whatever put

if($password == $dbpassword){ //or whatever your if statement is
Header("Location:yourmainpage.php");
$_SESSION["confirmation"] = "your confirmation message";
}else{
Header("yourmainpage.php");
$_SESSION["confirmation"] = "error message";
}
0
 
deanmbCommented:
Very sorry wildzero i was typing my message when you submitted yours, funny we had the same idea and i thought mine was original haha.  Sorry again.
0
Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

 
wildzeroCommented:
hehe yea it sucks to get pipped at the post :-) happens alot lol
0
 
thephillerAuthor Commented:
Hahaha, thanks for the enthusiastic reaction guys. I'll try it out now and report back ;)
0
 
thephillerAuthor Commented:
Thanks both!

I did give the points to wildzero since he replied first. I hope this is the OK way to do this? (i'm fairly new).
Thanks again, solution worked like a charm.
0
 
wildzeroCommented:
Sure, but I didn't mind a split since it was so close :-)
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

  • 3
  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now