Drewdle Posted January 15, 2011 Share Posted January 15, 2011 Hey peeps, I have this page: <?php include ('header.php'); ?></center> <div class=content> <?php if(!empty($_SESSION['LoggedIn']) && !empty($_SESSION['Username'])) { $nameuser = $_SESSION['Username']; $checkinfo = mysql_query("SELECT * FROM users WHERE Username = '$nameuser'"); while($results = mysql_fetch_array($checkinfo,MYSQL_ASSOC)){ $id = $results['UserID']; $username = $results['Username']; $email = $results['EmailAddress']; $location = $results['Location']; $website = $results['Website']; $about = $results['About']; } if ($_SERVER['REQUEST_METHOD'] == 'POST') { $editEMAIL=$_POST['email']; $editLOCATION=$_POST['location']; $editWEBSITE=$_POST['website']; $editABOUT=$_POST['about']; $editID=$_POST['id']; $editquery = mysql_query("UPDATE users SET EmailAddress='$editEMAIL' , Location='$editLOCATION', Website='$editWEBSITE', About='$editWEBSITE' WHERE UserID='$editID'"); if($editquery) { echo "<b>Success!</b><br>"; echo "Your profile was successfully updated. Please click<span class=class1><a href=index.php> here </a></span>to return to the index.<br><br>"; } else { echo "<b>Error</b>"; echo "<p>Sorry, your profile update failed. Please go back and try again.</p>"; } } } ?> <b>Edit your Profile</b> <br><br> Please enter your details below to update your profile. <br><br> <form method="post" action="editprofile.php" name="editform" id="editform"> <table width=700px border=0 cellspacing=10><tr><td valign=top><table border=0> <b>Required Information:</b><br><br> <tr><td> <b>Username:</b> </td><td> <?php echo $username; ?> </td></tr><tr><td> <b>Email Address:</b> </td><td> <input type="text" name="email" id="email" value="<?php echo $email; ?>"> <input type="hidden" name="id" value="<?php echo $id; ?>"> </td></tr></table></td><td valign=top> <table border=0> <b>Optional Information:</b><br><br> <tr><td> <b>Location:</b> </td><td> <input type="text" name="location" id="location" value="<?php echo $location; ?>"> </td></tr><tr><td> <b>Your Website:</b> </td><td> <input type="text" name="website" id="website" value="<?php echo $website; ?>"> </tr></td><tr><td valign=top> <b>Short About:</b> </td><td> <textarea name="about" id="about" rows="10" cols="20"><?php echo $about; ?></textarea> </td></tr></td> </table> </td></tr> </table> <input type="submit" name="register" id="register" value="Update" class=btn /> </form> </div> <?php include ('footer.php'); ?> When the user clicks the update button the page is refreshed and displays either the error or success message, however, it also still shows the form. Where would I add the if and else tags so that it only shows one of them untill its refreshed with a meta refresh? Thanks Link to comment https://forums.phpfreaks.com/topic/224531-ifelse-help/ Share on other sites More sharing options...
Pikachu2000 Posted January 15, 2011 Share Posted January 15, 2011 You need to set a "flag" variable, then use it as the condition for whether to display the form or not. Give this a shot, and see if it does what you need it to. . . . if($editquery) { echo "<b>Success!</b><br>"; echo "Your profile was successfully updated. Please click<span class=class1><a href=index.php> here </a></span>to return to the index.<br><br>"; $display_form = FALSE; } else { echo "<b>Error</b>"; echo "<p>Sorry, your profile update failed. Please go back and try again.</p>"; $display_form = TRUE; } } } if( $display_form === TRUE ) { ?> <b>Edit your Profile</b> [sNIP] </form> </div> <?php } include ('footer.php'); ?> Link to comment https://forums.phpfreaks.com/topic/224531-ifelse-help/#findComment-1159801 Share on other sites More sharing options...
Drewdle Posted January 15, 2011 Author Share Posted January 15, 2011 Doesn't display anything whatsoever. Just pure blankness! Untill I changed this: if( $display_form === TRUE ) { To this: if( $display_form = TRUE ) { And then it just did as before, showed both the message and form. Link to comment https://forums.phpfreaks.com/topic/224531-ifelse-help/#findComment-1159804 Share on other sites More sharing options...
seanthreeZ Posted January 15, 2011 Share Posted January 15, 2011 if( $display_form = TRUE ) { This would simply set $display_form to TRUE, you should be able to change it to the following and get the result you're looking for if ($display_form) { I would also suggest looking into php's extract() function so you don't have to redeclare variables Link to comment https://forums.phpfreaks.com/topic/224531-ifelse-help/#findComment-1159805 Share on other sites More sharing options...
Pikachu2000 Posted January 15, 2011 Share Posted January 15, 2011 And you have error_reporting at it's highest level, and display_errors ON, right? Link to comment https://forums.phpfreaks.com/topic/224531-ifelse-help/#findComment-1159820 Share on other sites More sharing options...
Drewdle Posted January 15, 2011 Author Share Posted January 15, 2011 Still shows a blank page! I wouldn't know the difference between error reporting levels and I presume errors are on because I do get them. for instance when I try to echo after if ($display_form) { I get a unexpected T_STRING, expecting ',' or ';' error. Link to comment https://forums.phpfreaks.com/topic/224531-ifelse-help/#findComment-1159823 Share on other sites More sharing options...
Pikachu2000 Posted January 15, 2011 Share Posted January 15, 2011 When you're getting errors returned, it's a good idea to post them verbatim, as they tend to be much more informative than, "It doesn't work." Post the revised code, please. Link to comment https://forums.phpfreaks.com/topic/224531-ifelse-help/#findComment-1159828 Share on other sites More sharing options...
Drewdle Posted January 15, 2011 Author Share Posted January 15, 2011 post them verbatim? How would I do that? Current code: <?php include ('header.php'); ?></center> <div class=content> <?php if(!empty($_SESSION['LoggedIn']) && !empty($_SESSION['Username'])) { $nameuser = $_SESSION['Username']; $checkinfo = mysql_query("SELECT * FROM users WHERE Username = '$nameuser'"); while($results = mysql_fetch_array($checkinfo,MYSQL_ASSOC)){ $id = $results['UserID']; $username = $results['Username']; $email = $results['EmailAddress']; $location = $results['Location']; $website = $results['Website']; $about = $results['About']; } if ($_SERVER['REQUEST_METHOD'] == 'POST') { $editEMAIL=$_POST['email']; $editLOCATION=$_POST['location']; $editWEBSITE=$_POST['website']; $editABOUT=$_POST['about']; $editID=$_POST['id']; $editquery = mysql_query("UPDATE users SET EmailAddress='$editEMAIL' , Location='$editLOCATION', Website='$editWEBSITE', About='$editWEBSITE' WHERE UserID='$editID'"); if($editquery) { echo "<b>Success!</b><br>"; echo "Your profile was successfully updated. Please click<span class=class1><a href=index.php> here </a></span>to return to the index.<br><br>"; $display_form = FALSE; } else { echo "<b>Error</b>"; echo "<p>Sorry, your profile update failed. Please go back and try again.</p>"; $display_form = TRUE; } } } if ($display_form) { ?> <b>Edit your Profile</b> <br><br> Please enter your details below to update your profile. <br><br> <form method="post" action="editprofile.php" name="editform" id="editform"> <table width=700px border=0 cellspacing=10><tr><td valign=top><table border=0> <b>Required Information:</b><br><br> <tr><td> <b>Username:</b> </td><td> <?php echo $username; ?> </td></tr><tr><td> <b>Email Address:</b> </td><td> <input type="text" name="email" id="email" value="<?php echo $email; ?>"> <input type="hidden" name="id" value="<?php echo $id; ?>"> </td></tr></table></td><td valign=top> <table border=0> <b>Optional Information:</b><br><br> <tr><td> <b>Location:</b> </td><td> <input type="text" name="location" id="location" value="<?php echo $location; ?>"> </td></tr><tr><td> <b>Your Website:</b> </td><td> <input type="text" name="website" id="website" value="<?php echo $website; ?>"> </tr></td><tr><td valign=top> <b>Short About:</b> </td><td> <textarea name="about" id="about" rows="10" cols="20" ><?php echo $about; ?></textarea> </td></tr></td> </table> </td></tr> </table> <input type="submit" name="register" id="register" value="Update" class=btn /> </form> </div> <?php } include ('footer.php'); ?> Link to comment https://forums.phpfreaks.com/topic/224531-ifelse-help/#findComment-1159855 Share on other sites More sharing options...
Pikachu2000 Posted January 15, 2011 Share Posted January 15, 2011 Verbatim: exactly; word for word as it appears; cut and paste. I just pasted in the code above, and it has no parse errors. Additionally, I can change it back to read as I posted earlier, and it works as it should (to the extent that I can test it without setting up your database structure locally). You do however have several html errors, such as unquoted attributes like class=btn, and mixing use of html and xhtml tag closing styles. Link to comment https://forums.phpfreaks.com/topic/224531-ifelse-help/#findComment-1159880 Share on other sites More sharing options...
Pikachu2000 Posted January 15, 2011 Share Posted January 15, 2011 Alright, I went through and formatted your code so it would be easier to follow, and this should be the resolution: Change if( $display_form === TRUE ) { To if ($display_form === TRUE || $_SERVER['REQUEST_METHOD'] != 'POST') { EDIT: Here's the code, formatted, and with any html syntax errors I spotted corrected. <?php include ('header.php'); ?> </center> <div class="content"> <?php if(!empty($_SESSION['LoggedIn']) && !empty($_SESSION['Username'])) { $nameuser = $_SESSION['Username']; $checkinfo = mysql_query("SELECT * FROM users WHERE Username = '$nameuser'"); while($results = mysql_fetch_array($checkinfo,MYSQL_ASSOC)) { $id = $results['UserID']; $username = $results['Username']; $email = $results['EmailAddress']; $location = $results['Location']; $website = $results['Website']; $about = $results['About']; } if ($_SERVER['REQUEST_METHOD'] == 'POST') { $editEMAIL=$_POST['email']; $editLOCATION=$_POST['location']; $editWEBSITE=$_POST['website']; $editABOUT=$_POST['about']; $editID=$_POST['id']; $editquery = mysql_query("UPDATE users SET EmailAddress='$editEMAIL' , Location='$editLOCATION', Website='$editWEBSITE', About='$editWEBSITE' WHERE UserID='$editID'"); if($editquery) { echo "<b>Success!</b><br>"; echo "Your profile was successfully updated. Please click<span class=\"class1\"><a href=\"index.php\"> here </a></span>to return to the index.<br><br>"; $display_form = FALSE; } else { echo "<b>Error</b>"; echo "<p>Sorry, your profile update failed. Please go back and try again.</p>"; $display_form = TRUE; } } } if ($display_form === TRUE || $_SERVER['REQUEST_METHOD'] != 'POST') { ?> <b>Edit your Profile</b> <br><br> Please enter your details below to update your profile. <br><br> <form method="post" action="editprofile.php" name="editform" id="editform"> <table width="700px" border="0" cellspacing="10"><tr><td valign="top"><table border="0"> <b>Required Information:</b><br><br> <tr><td> <b>Username:</b> </td><td> <?php echo $username; ?> </td></tr><tr><td> <b>Email Address:</b> </td><td> <input type="text" name="email" id="email" value="<?php echo $email; ?>"> <input type="hidden" name="id" value="<?php echo $id; ?>"> </td></tr></table></td><td valign="top"> <table border="0"> <b>Optional Information:</b><br><br> <tr><td> <b>Location:</b> </td><td> <input type="text" name="location" id="location" value="<?php echo $location; ?>"> </td></tr><tr><td> <b>Your Website:</b> </td><td> <input type="text" name="website" id="website" value="<?php echo $website; ?>"> </tr></td><tr><td valign=top> <b>Short About:</b> </td><td> <textarea name="about" id="about" rows="10" cols="20" ><?php echo $about; ?></textarea> </td></tr></td> </table> </td></tr> </table> <input type="submit" name="register" id="register" value="Update" class="btn"> </form> </div> <?php } include ('footer.php'); ?> Link to comment https://forums.phpfreaks.com/topic/224531-ifelse-help/#findComment-1159882 Share on other sites More sharing options...
Drewdle Posted January 15, 2011 Author Share Posted January 15, 2011 Thanks, works great! Link to comment https://forums.phpfreaks.com/topic/224531-ifelse-help/#findComment-1159888 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.