Call-911 Posted September 21, 2009 Share Posted September 21, 2009 Hello All, I have a login system on my website using a mySQL database. What I need to do is display a message to users upon logging to please update their contact information. I don't want to display this to every user, as that would be annoying, but only to the users that have no updated their information. For example, if John Doe's email address is "No Email On File" then I would like upon John Doe logging in a message to pop up saying "Please update your contact information" Any help is great appreciated. Quote Link to comment https://forums.phpfreaks.com/topic/175010-display-message-to-user-if-value-is-x/ Share on other sites More sharing options...
pwnuspoints Posted September 21, 2009 Share Posted September 21, 2009 This is simple to do- but difficult to explain.. and your implementation of the code depends entirely on your comfort level with php. Obviously the error message can only be displayed after logging in to determine if the user has or does not have an e-mail. So, you'll have to grab the users e-mail address when they log in and pass it as a $variable to the first page they see after logging in. Then you'll need to write an if/else statement on that page to determine one way or the other if they have an e-mail address. the concept is: If this users e-mail has an "@" symbol- or "@domain.com" then display nothing. Else, display the following alert message. Which you will have to code and customize using echo strings, html, and css. I have to run for an hour. I'll leave you with that for now-- and if the topic still isn't solved when I get back I'll write you some code to work from. Quote Link to comment https://forums.phpfreaks.com/topic/175010-display-message-to-user-if-value-is-x/#findComment-922396 Share on other sites More sharing options...
pwnuspoints Posted September 21, 2009 Share Posted September 21, 2009 Alllllright. Looks like have some code to give you. first, put on "Little Acorns" by the White Strips- even if you don't like them, it will help. Next, look at my code. This is how I process my login. The login form passes the variables to this code in a php document I've called login-exec.php <?php //Start session session_start(); //Connect to mysql server $link=mysql_connect("host","user","password"); if(!$link) { die('Failed to connect to server: ' . mysql_error()); } //Select database $db=mysql_select_db("databasename"); if(!$db) { die("Unable to select database"); } //Sanitize the value received from login field //to prevent SQL Injection if(!get_magic_quotes_gpc()) { $login=mysql_real_escape_string($_POST['login']); }else { $login=$_POST['login']; } //Create query $qry="SELECT id, email FROM tbmembers WHERE login='$login' AND passwd LIKE'".md5($_POST['password'])."'"; $result=mysql_query($qry); //Check whether the query was successful or not<a href="login-exec.php">login-exec.php</a> if($result) { if(mysql_num_rows($result)>0) { //Login Successful session_regenerate_id(); $member=mysql_fetch_assoc($result); $_SESSION['SESS_EMAIL']=$member['email']; $_SESSION['SESS_MEMBER_ID']=$member['id']; session_write_close(); //Redirect Based on Permission Number<br /> header("location: main-page.php"); exit(); }else { //Login failed header("location: login-failed.php"); exit(); } }else { die("Query failed"); } ?> There is a lot going on in that code. Essentially I've processed the log-in and set a Session variable. This means as long as the person is logged in you will be able to interact with that variable on the subsequent pages. I'm not gonna go into too much detail here. You'll have to do some googling to figure out any terms you don't understand. Now that we have set a session variable we need to include it and authorization on any page you wish to make reference to it. Make a file called auth.php and in it put the following code (modified to suit your needs). <?php //Start session session_start(); //Check whether the session variable $id=$_SESSION['SESS_MEMBER_ID']; $email=$_SESSION['SESS_EMAIL']; //SESS_MEMBER_ID is present or not if(!isset($_SESSION['SESS_MEMBER_ID']) || (trim($_SESSION['SESS_MEMBER_ID'])=='')) { header("location: access-denied.php"); exit(); } ?> Then you need to use require_once on any pages you wish to be secure and make reference to the e-mail. Put the following code at the top of the page you want the error message to appear on. If you are not logged in this requre_once code will redirect you to access-denied.php or show you a blank page... so until you have the login working properly.. this may cause issues. <?php require_once('auth.php'); ?> Finally the code to generate the error message will look something like this: <?php if($email == "No Email On File") { echo "Give us your e-mail, fool"; }else{ echo ""; } ?> The string "No Email On File" is kinda clunky and might cause issues here. I'm not prepared to test it for you. the bolded area is where you will echo your error message. You should know, this code won't work unless you modify it to suit your needs. Stare at it long enough.. and you're bound to figure it out. That's the best I can do. Hope it Helps. Quote Link to comment https://forums.phpfreaks.com/topic/175010-display-message-to-user-if-value-is-x/#findComment-922444 Share on other sites More sharing options...
Call-911 Posted September 21, 2009 Author Share Posted September 21, 2009 pwnuspoints, Thanks so much. I've got the whole login system already set up and coded perfectly. What I can't figure out is how to display a popup message. Almost like an error message. A message like on MS Word when you exit it pops up a box saying "Are You Sure You Want To Quit Without Saving". That's the kind of box I need. I already have the email variable being read on the page, so if $email == "No Email On File" to pop up a message box and say "Please Update Your Contact Information" .... or I guess "Update your email fool!" works too. :-) Quote Link to comment https://forums.phpfreaks.com/topic/175010-display-message-to-user-if-value-is-x/#findComment-922477 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.