boo_lolly Posted February 15, 2007 Share Posted February 15, 2007 here's the error: Parse error: parse error, expecting `T_VARIABLE' or `'$'' in editCouple.php on line 38 here's my code: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML> <HEAD><TITLE>Edit Couple</TITLE></HEAD> <BODY> <CENTER> <?php $location = "<B>Edit Couple</B>"; ?> <TABLE BORDER="1" WIDTH="850" CELLPADDING="20"> <TR> <TD WIDTH="%50" ALIGN="center"><H1>The Very Thing Gifts</H1> <?php echo $location; ?> <form method="POST" action="admin1.php?action=view_all"> <input type="SUBMIT" value="View All"> </form> </TD> <TD><?php include "admin_search.inc" ?></TD> </TR> </TABLE><BR> <HR WIDTH="300"><BR> <TABLE WIDTH="750"> <TR> <TD> <?php /*connect to database*/ @ $db = mysql_connect("xxx", "xxx", "xxx"); if(!$db){ echo "Error: Could not connect to the database. Please try again later."; exit; } /*select database*/ mysql_select_db("my_db", $db); /*update couple information*/ if(isset($_POST)){ if(empty(trim($_POST['brideLname'])) && empty(trim($_POST['groomLname']))){ //<-- line 38 echo "<div align=\"center\"><font color=\"ff0000\">Please enter a last name for Bride <i>and</i> Groom.</font></div>\n"; }else{ /*define function to prevent sql injection*/ function clean($var){ return $var = mysql_real_escape_string(trim($var)); } /*apply clean() to each $_POST variable*/ array_walk($_POST, 'clean'); $sql = "UPDATE my_search_table SET brideFname = '". $_POST['brideFname'] ."', brideLname = '". $_POST['brideLname'] ."', groomFname = '". $_POST['groomFname'] ."', groomLname = '". $_POST['groomLname'] ."', event_month = '". $_POST['event_month'] ."', event_day = '". $_POST['event_day'] ."', event_year = '". $_POST['event_year'] ."', ship_add = '". $_POST['ship_add'] ."', ship_city = '". $_POST['ship_city'] ."', ship_state = '". $_POST['ship_state'] ."', ship_zip = '". $_POST['ship_zip'] ."' WHERE uID = '". $_GET['id'] ."'"; mysql_query($sql); /*confirm/disconfirm update*/ echo "<div align=\"center\">\n"; if(!mysql_query($sql)){ echo "<font color=\"ff0000\">Revisions were not successful. Please try again.</font>\n"; }else{ echo "<font color=\"339933\">Updated information was successful</font>\n"; } echo "</div>\n"; /*unset $_POST variables*/ unset($_POST); } } /*query database*/ $sql = mysql_query("SELECT * FROM my_search_table WHERE uID = '". $_GET['id'] ."'") or die(mysql_error()); $row = mysql_fetch_array($sql); /*pre-populate input fields with values from the database.*/ echo "<TABLE WIDTH=\"700\"><TR><TD>\n"; echo "<form action=\"editCouple.php?id=". $_GET['id'] ."\" method=\"post\">\n"; echo "<div align=\"center\"><b>Bride's Name</div>\n"; echo "<B>First:</B> <input type=\"text\" name=\"brideFname\" value=\"". $row['brideFname'] ."\" size=\"25\"><br />\n"; echo "<B>Last:</B> <input type=\"text\" name=\"brideLname\" value=\"". $row['brideLname'] ."\" size=\"25\"><br /><br />\n"; echo "</TD>\n"; echo "<TD>\n"; echo "<div align=\"center\"><b>Groom's Name</div>\n"; echo "<B>First:</B> <input type=\"text\" name=\"groomFname\" value=\"". $row['groomFname'] ."\" size=\"25\"><br />\n"; echo "<B>Last:</B> <input type=\"text\" name=\"groomLname\" value=\"". $row['groomLname'] ."\" size=\"25\"><br /><br />\n"; echo "</TD></TR>\n"; echo "<TR><TD COLSPAN=\"2\">\n"; echo "<b>Event Date:</b> \n"; /*define months array*/ $array_month = array("January" => "01", "February" => "02", "March" => "03", "April" => "04", "May" => "05", "June" => "06", "July" => "07", "August" => "08", "Steptember" => "09", "October" => "10", "November" => "11", "December" => "12"); echo "<SELECT NAME=\"event_month\">\n"; /*prepopulate the dropdown menu for the event month*/ foreach($array_month as $key => $val){ echo "<OPTION VALUE=\"". $val ."\"". (($val == $row['event_month']) ? (" SELECTED") : ("")) .">". $key ."\n"; } echo "</SELECT>\n"; /*define days array*/ $days = range(1, 31); echo"<SELECT NAME=\"event_day\">\n"; /*prepopulate the dropdown menu for the event day*/ foreach($days as $day){ if($day >= 1 && $day <= 9){ $day = "0". $day; } echo "<OPTION VALUE=\"". $day ."\"". (($day == $row['event_day']) ? (" SELECTED") : ("")) .">". $day ."\n"; } echo "</SELECT>\n"; /*define years array*/ $years = range(2006, 2015); echo "<SELECT NAME=\"event_year\">\n"; /*prepopulate the dropdown menu for the event year*/ foreach($years as $year){ echo "<OPTION VALUE=\"". $year ."\"". (($year == $row['event_year']) ? (" SELECTED") : ("")) .">". $year ."\n"; } echo "</SELECT>\n"; ?> </TD> </TR> <TR> <TD COLSPAN="2"><BR> <?php echo "<TABLE WIDTH=\"500\"><TR><TD COLSPAN=\"2\">\n"; echo "<B>Shipping Information:</B>\n"; echo "</TD></TR><TR><TD align=\"right\" valign=\"top\">\n"; echo "<B>Street:</B> <input type=\"text\" name=\"ship_add\" value=\"". $row['ship_add'] ."\" size=\"30\"><br />\n"; echo "<B>City:</B> <input type=\"text\" name=\"ship_city\" value=\"". $row['ship_city'] ."\" size=\"30\"><br />\n"; echo "</TD><TD align=\"right\" valign=\"top\">\n"; echo "<B>State:</B> <input type=\"text\" name=\"ship_state\" value=\"". $row['ship_state'] ."\" size=\"15\"><br />\n"; echo "<B>Zip Code:</B> <input type=\"text\" name=\"ship_zip\" value=\"". $row['ship_zip'] ."\" size=\"15\"><br /><br />\n"; echo "</TD></TR></TABLE>\n"; ?> </TD> </TR> <TR> <TD COLSPAN="2"> <CENTER> <TABLE WIDTH="500"> <TR> <TD VALIGN="top"> <input type="submit" value="Save"></form></TD> <TD VALIGN="top"> <form method="post" action=updateRegistry.php?regID=<?php echo $_GET['id']; ?>> <input type="submit" value="Continue to Registry >>"></form></TD> </TR> </TABLE> </CENTER> </TD> </TR> </TABLE> </BODY> </HTML> where am i going wrong?[/code] Link to comment https://forums.phpfreaks.com/topic/38678-solved-parse-error-in-nested-if-statement-i-cannot-figure-it-out/ Share on other sites More sharing options...
Daniel0 Posted February 15, 2007 Share Posted February 15, 2007 Change it to: if(empty(trim($_POST['brideLname']) && empty(trim($_POST['groomLname'])){ Link to comment https://forums.phpfreaks.com/topic/38678-solved-parse-error-in-nested-if-statement-i-cannot-figure-it-out/#findComment-185767 Share on other sites More sharing options...
hitman6003 Posted February 15, 2007 Share Posted February 15, 2007 You have an error at line 46 as well... array_walk($_POST), 'clean'); should be: array_walk($_POST, 'clean'); As far as the error at line 38, here is what Zend Studio gives as an error description: Compile Warning: Can't use function return value in write context (line 38) This doesn't return an error: $bln = trim($_POST['brideLname']); $gln = trim($_POST['brideLname']); if (empty($bln) && empty($gln)){ //<-- line 38 echo "<div align=\"center\"><font color=\"ff0000\">Please enter a last name for Bride <i>and</i> Groom.</font></div>\n"; }else{ @Daniel0...you are missing 2 closing parenthesis in your recommendation. Link to comment https://forums.phpfreaks.com/topic/38678-solved-parse-error-in-nested-if-statement-i-cannot-figure-it-out/#findComment-185772 Share on other sites More sharing options...
boo_lolly Posted February 15, 2007 Author Share Posted February 15, 2007 thank you both for the quick replies! hitman, why would that be any different from what i have in my if statement? php can't be that janky... there's GOTTA be another reason... am i right? i tried it and it worked... but why WON'T it work the way i had coded it orginally? there's really no difference that i can see. Link to comment https://forums.phpfreaks.com/topic/38678-solved-parse-error-in-nested-if-statement-i-cannot-figure-it-out/#findComment-185775 Share on other sites More sharing options...
boo_lolly Posted February 15, 2007 Author Share Posted February 15, 2007 after further research i've found out that empty() only checks variables, not the evaluation of a variable. that is why i have to trim my $_POST vars before i examine if they are empty or not. Link to comment https://forums.phpfreaks.com/topic/38678-solved-parse-error-in-nested-if-statement-i-cannot-figure-it-out/#findComment-185814 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.