Jump to content

Tenaciousmug

Members
  • Posts

    159
  • Joined

  • Last visited

Everything posted by Tenaciousmug

  1. Alright I got everything working now, but the PHP isn't grabbing the gender value. Here is my Javascript: <script> function chooseGender() { var gender = $('input[name=gender]:checked', '#submitgender').val(); if(gender) { $.ajax( { type: "POST", url: window.location.pathname, data: "gender="+ gender, success: function() { $("#submitgender").hide(); $("#rest").show(); } }); } else { alert('Select a gender.'); } } </script> And here is the table that displays and pulls stuff from the MySQL database where the gender = what they selected: <table cellspacing="0" class="news" align="center" id="rest" style="display: none;"> <tr> <td height="400px" width="300" style="border-right:1px solid #000;"> <center><img src="#" alt="image"></center> </td> <td height="400px" width="300" valign="top"> <div id="tabs"> <ul> <li><a href="#bases">Base</a></li> <li><a href="#eyes">Eyes</a></li> <li><a href="#mouths">Mouth</a></li> <li><a href="#noses">Nose</a></li> <li><a href="#hairs">Hair</a></li> </ul> <div id="bases"> <p> <?php $gender = $_POST['gender']; $sql = "SELECT * FROM habases WHERE gender='".$gender."'"; $result = mysqli_query($cxn, $sql) or die(mysqli_error($cxn)); print_r($sql); while ($row = mysqli_fetch_assoc($result)) { $baseimage = $row['image']; $baseskin = $row['skin']; echo "<img src=\"http://www.elvonica.com/".$baseimage."\" value=\"".$baseskin."\">"; } ?> </p> </div> <div id="eyes"> <p>Eyes here.</p> </div> <div id="mouths"> <p>Mouths here.</p> </div> <div id="noses"> <p>Noses here.</p> </div> <div id="hairs"> <p>Hairs here.</p> </div> </div> </td> </tr> </table>
  2. Right now, it is showing the #gendersubmit AND #rest tables. I only want it to show the #gendersubmit when the page first loads, but then once they click the button and have a gender selected, I want the page to not reload and hide the #gendersubmit form, then show the #rest table displaying the bases, eyes, etc for whatever gender they selected. Here is my Javascript code: <script> $("#submitgender").submit(function() { var gender = $('gender').attr('value'); $.ajax( { type: "POST", url: window.location.pathname, data: "gender="+ Selectgender, success: function() { $("#submitgender").hide(); $("#rest").show(); } }); return false; }); </script> And here is my HTML/PHP: <form id="submitgender" method="post"> <table cellspacing="0" class="news" align="center" id="gender"> <tr> <td colspan="2" style="border-bottom:1px solid #000;"> <center>Click on your gender:<br> </td> </tr> <tr> <td style="border-right:1px solid #000; border-bottom:1px solid #000;" width="300"> <center><input type="radio" name="gender" value="Male"><b>Male</b></center> </td> <td style="border-right:1px solid #000; border-bottom:1px solid #000;" width="300"> <center><input type="radio" name="gender" value="Female"><b>Female</b></center> </td> </tr> <tr> <td style="border-right:1px solid #000;" width="300" height="400"> <center><img src="http://www.elvonica.com/wardrobe/imgs/maleimage.png" /></center> </td> <td style="border-right:1px solid #000;" width="300" height="400"> <center><img src="http://www.elvonica.com/wardrobe/imgs/femaleimage.png" /></center> </td> </tr> <tr> <td colspan="2" style="border-top:1px solid #000;"> <button type="button">Next</button> </td> </tr> </table> </form> <table cellspacing="0" class="news" align="center" id="rest"> Not showing the PHP yet since I want to find a solution for the AJAX first. </table>
  3. How do you SELECT * FROM table WHERE field='(a jquery value)' All I want to know is to know what gender they clicked on so I could run this query: SELECT * FROM table WHERE gender='whatever they clicked'; Here is my Javascript code: <script> $(document).ready(setupBeginning); function setupBeginning() { $("#rest").hide(); $(".femaleTrigger").click(showRestFemale); $(".maleTrigger").click(showRestMale); } function showRestFemale() { $("#rest").show(); $("#gender").hide(); } function showRestMale() { $("#rest").show(); $("#gender").hide(); } $(function() { $( "#tabs" ).tabs(); }); </script> Now here is my HTML code: <table cellspacing="0" class="news" align="center" id="gender"> <tr> <td colspan="2" style="border-bottom:1px solid #000;"> <center>Click on your gender:<br> </td> </tr> <tr> <td style="border-right:1px solid #000; border-bottom:1px solid #000;" width="300"> <center><b>Male</b></center> </td> <td style="border-right:1px solid #000; border-bottom:1px solid #000;" width="300"> <center><b>Female</b></center> </td> </tr> <tr> <td class="maleTrigger" name="Male" style="border-right:1px solid #000;" width="300" height="400"> <center><img src="http://www.elvonica.com/wardrobe/imgs/maleimage.png"></center> </td> <td class="femaleTrigger" name="Female" style="border-right:1px solid #000;" width="300" height="400"> <center><img src="http://www.elvonica.com/wardrobe/imgs/femaleimage.png"></center> </td> </tr> </table> <table cellspacing="0" class="news" align="center" id="rest"> <tr> <td height="400px" width="300" style="border-right:1px solid #000;"> <center><img src="#" alt="image"></center> </td> <td height="400px" width="300" valign="top"> <div id="tabs"> <ul> <li><a href="#bases">Base</a></li> <li><a href="#eyes">Eyes</a></li> <li><a href="#mouths">Mouth</a></li> <li><a href="#noses">Nose</a></li> <li><a href="#hairs">Hair</a></li> </ul> <div id="bases"> <p>Bases here.</p> </div> <div id="eyes"> <p>Eyes here.</p> </div> <div id="mouths"> <p>Mouths here.</p> </div> <div id="noses"> <p>Noses here.</p> </div> <div id="hairs"> <p>Hairs here.</p> </div> </div> </td> </tr> </table> Now I want to use PHP to SELECT * FROM tablename WHERE gender='whatever they clicked'; How would I receive the data of what gender they clicked on?
  4. And then located at Located at /home1/elvonica/php/HTML/BBCodeParser/Filter/Basic.php: <?php /* vim: set expandtab tabstop=4 shiftwidth=4: */ // +----------------------------------------------------------------------+ // | PHP Version 4 | // +----------------------------------------------------------------------+ // | Copyright (c) 1997-2003 The PHP Group | // +----------------------------------------------------------------------+ // | This source file is subject to version 2.02 of the PHP license, | // | that is bundled with this package in the file LICENSE, and is | // | available at through the world-wide-web at | // | http://www.php.net/license/2_02.txt. | // | If you did not receive a copy of the PHP license and are unable to | // | obtain it through the world-wide-web, please send a note to | // | license@php.net so we can mail you a copy immediately. | // +----------------------------------------------------------------------+ // | Author: Stijn de Reede <sjr@gmx.co.uk> | // +----------------------------------------------------------------------+ // // $Id: Basic.php,v 1.6 2007/07/02 16:54:25 cweiske Exp $ // /** * @package HTML_BBCodeParser * @author Stijn de Reede <sjr@gmx.co.uk> */ include("/home1/elvonica/php/HTML/BBCodeParser/Filter.php"); class HTML_BBCodeParser_Filter_Basic extends HTML_BBCodeParser_Filter { /** * An array of tags parsed by the engine * * @access private * @var array */ var $_definedTags = array( 'b' => array( 'htmlopen' => 'strong', 'htmlclose' => 'strong', 'allowed' => 'all', 'attributes'=> array()), 'i' => array( 'htmlopen' => 'em', 'htmlclose' => 'em', 'allowed' => 'all', 'attributes'=> array()), 'u' => array( 'htmlopen' => 'span style="text-decoration:underline;"', 'htmlclose' => 'span', 'allowed' => 'all', 'attributes'=> array()), 's' => array( 'htmlopen' => 'del', 'htmlclose' => 'del', 'allowed' => 'all', 'attributes'=> array()), 'sub' => array( 'htmlopen' => 'sub', 'htmlclose' => 'sub', 'allowed' => 'all', 'attributes'=> array()), 'sup' => array( 'htmlopen' => 'sup', 'htmlclose' => 'sup', 'allowed' => 'all', 'attributes'=> array()) ); } ?>
  5. Well yeah I know it's unable to find it, but it's in the exact folder that it should be... everything is where it should be, I don't understand why it can't find the Basic Filter. Located at /home1/elvonica/php/HTML/BBCodeParser.php <?php /* vim: set expandtab tabstop=4 shiftwidth=4: */ // +----------------------------------------------------------------------+ // | PHP Version 4 | // +----------------------------------------------------------------------+ // | Copyright (c) 1997-2003 The PHP Group | // +----------------------------------------------------------------------+ // | This source file is subject to version 2.02 of the PHP license, | // | that is bundled with this package in the file LICENSE, and is | // | available at through the world-wide-web at | // | http://www.php.net/license/2_02.txt. | // | If you did not receive a copy of the PHP license and are unable to | // | obtain it through the world-wide-web, please send a note to | // | license@php.net so we can mail you a copy immediately. | // +----------------------------------------------------------------------+ // | Author: Stijn de Reede <sjr@gmx.co.uk> | // +----------------------------------------------------------------------+ // // $Id: BBCodeParser.php,v 1.17 2007/07/02 18:46:30 cweiske Exp $ // /** * @package HTML_BBCodeParser * @author Stijn de Reede <sjr@gmx.co.uk> * * * This is a parser to replace UBB style tags with their html equivalents. It * does not simply do some regex calls, but is complete stack based * parse engine. This ensures that all tags are properly nested, if not, * extra tags are added to maintain the nesting. This parser should only produce * xhtml 1.0 compliant code. All tags are validated and so are all their attributes. * It should be easy to extend this parser with your own tags, see the _definedTags * format description below. * * * Usage: * $parser = new HTML_BBCodeParser(); * $parser->setText('normal [b]bold[/b] and normal again'); * $parser->parse(); * echo $parser->getParsed(); * or: * $parser = new HTML_BBCodeParser(); * echo $parser->qparse('normal [b]bold[/b] and normal again'); * or: * echo HTML_BBCodeParser::staticQparse('normal [b]bold[/b] and normal again'); * * * Setting the options from the ini file: * $config = parse_ini_file('BBCodeParser.ini', true); * $options = &PEAR::getStaticProperty('HTML_BBCodeParser', '_options'); * $options = $config['HTML_BBCodeParser']; * unset($options); * * * The _definedTags variables should be in this format: * array('tag' // the actual tag used * => array('htmlopen' => 'open', // the opening tag in html * 'htmlclose' => 'close', // the closing tag in html, * can be set to an empty string * if no closing tag is present * in html (like <img>) * 'allowed' => 'allow', // tags that are allowed inside * this tag. Values can be all * or none, or either of these * two, followed by a ^ and then * followed by a comma seperated * list of exceptions on this * 'attributes' => array() // an associative array containing * the tag attributes and their * printf() html equivalents, to * which the first argument is * the value, and the second is * the quote. Default would be * something like this: * 'attr' => 'attr=%2$s%1$s%2$s' * ), * 'etc' * => (...) * ) */ include("/home1/elvonica/php/PEAR.php"); class HTML_BBCodeParser { /** * An array of tags parsed by the engine, should be overwritten by filters * * @access private * @var array */ var $_definedTags = array(); /** * A string containing the input * * @access private * @var string */ var $_text = ''; /** * A string containing the preparsed input * * @access private * @var string */ var $_preparsed = ''; /** * An array tags and texts build from the input text * * @access private * @var array */ var $_tagArray = array(); /** * A string containing the parsed version of the text * * @access private * @var string */ var $_parsed = ''; /** * An array of options, filled by an ini file or through the contructor * * @access private * @var array */ var $_options = array( 'quotestyle' => 'double', 'quotewhat' => 'all', 'open' => '[', 'close' => ']', 'xmlclose' => true, 'filters' => 'Basic' ); /** * An array of filters used for parsing * * @access private * @var array */ var $_filters = array(); /** * Constructor, initialises the options and filters * * Sets the private variable _options with base options defined with * &PEAR::getStaticProperty(), overwriting them with (if present) * the argument to this method. * Then it sets the extra options to properly escape the tag * characters in preg_replace() etc. The set options are * then stored back with &PEAR::getStaticProperty(), so that the filter * classes can use them. * All the filters in the options are initialised and their defined tags * are copied into the private variable _definedTags. * * @param array options to use, can be left out * @return none * @access public * @author Stijn de Reede <sjr@gmx.co.uk> */ function HTML_BBCodeParser($options = array()) { // set the already set options $baseoptions = &PEAR::getStaticProperty('HTML_BBCodeParser', '_options'); if (is_array($baseoptions)) { foreach ($baseoptions as $k => $v) { $this->_options[$k] = $v; } } // set the options passed as an argument foreach ($options as $k => $v ) { $this->_options[$k] = $v; } // add escape open and close chars to the options for preg escaping $preg_escape = '\^$.[]|()?*+{}'; if ($this->_options['open'] != '' && strpos($preg_escape, $this->_options['open'])) { $this->_options['open_esc'] = "\\".$this->_options['open']; } else { $this->_options['open_esc'] = $this->_options['open']; } if ($this->_options['close'] != '' && strpos($preg_escape, $this->_options['close'])) { $this->_options['close_esc'] = "\\".$this->_options['close']; } else { $this->_options['close_esc'] = $this->_options['close']; } // set the options back so that child classes can use them */ $baseoptions = $this->_options; unset($baseoptions); // return if this is a subclass if (is_subclass_of($this, 'HTML_BBCodeParser_Filter')) { return; } // extract the definedTags from subclasses */ $this->addFilters($this->_options['filters']); } /** * Option setter * * @param string option name * @param mixed option value * @author Lorenzo Alberton <l.alberton@quipo.it> */ function setOption($name, $value) { $this->_options[$name] = $value; } /** * Add a new filter * * @param string filter * @author Lorenzo Alberton <l.alberton@quipo.it> */ function addFilter($filter) { $filter = ucfirst($filter); if (!array_key_exists($filter, $this->_filters)) { $class = 'HTML_BBCodeParser_Filter_'.$filter; @include_once 'HTML/BBCodeParser/Filter/'.$filter.'.php'; if (!class_exists($class)) { PEAR::raiseError("Failed to load filter $filter", null, PEAR_ERROR_DIE); } $this->_filters[$filter] = new $class; $this->_definedTags = array_merge( $this->_definedTags, $this->_filters[$filter]->_definedTags ); } } /** * Remove an existing filter * * @param string $filter * @author Lorenzo Alberton <l.alberton@quipo.it> */ function removeFilter($filter) { $filter = ucfirst(trim($filter)); if (!empty($filter) && array_key_exists($filter, $this->_filters)) { unset($this->_filters[$filter]); } // also remove the related $this->_definedTags for this filter, // preserving the others $this->_definedTags = array(); foreach (array_keys($this->_filters) as $filter) { $this->_definedTags = array_merge( $this->_definedTags, $this->_filters[$filter]->_definedTags ); } } /** * Add new filters * * @param mixed (array or string) * @return boolean true if all ok, false if not. * @author Lorenzo Alberton <l.alberton@quipo.it> */ function addFilters($filters) { if (is_string($filters)) { //comma-separated list if (strpos($filters, ',') !== false) { $filters = explode(',', $filters); } else { $filters = array($filters); } } if (!is_array($filters)) { //invalid format return false; } foreach ($filters as $filter) { if (trim($filter)){ $this->addFilter($filter); } } return true; } /** * Executes statements before the actual array building starts * * This method should be overwritten in a filter if you want to do * something before the parsing process starts. This can be useful to * allow certain short alternative tags which then can be converted into * proper tags with preg_replace() calls. * The main class walks through all the filters and and calls this * method. The filters should modify their private $_preparsed * variable, with input from $_text. * * @return none * @access private * @see $_text * @author Stijn de Reede <sjr@gmx.co.uk> */ function _preparse() { // default: assign _text to _preparsed, to be overwritten by filters $this->_preparsed = $this->_text; // return if this is a subclass if (is_subclass_of($this, 'HTML_BBCodeParser')) { return; } // walk through the filters and execute _preparse foreach ($this->_filters as $filter) { $filter->setText($this->_preparsed); $filter->_preparse(); $this->_preparsed = $filter->getPreparsed(); } } /** * Builds the tag array from the input string $_text * * An array consisting of tag and text elements is contructed from the * $_preparsed variable. The method uses _buildTag() to check if a tag is * valid and to build the actual tag to be added to the tag array. * * TODO: - rewrite whole method, as this one is old and probably slow * - see if a recursive method would be better than an iterative one * * @return none * @access private * @see _buildTag() * @see $_text * @see $_tagArray * @author Stijn de Reede <sjr@gmx.co.uk> */ function _buildTagArray() { $this->_tagArray = array(); $str = $this->_preparsed; $strPos = 0; $strLength = strlen($str); while (($strPos < $strLength)) { $tag = array(); $openPos = strpos($str, $this->_options['open'], $strPos); if ($openPos === false) { $openPos = $strLength; $nextOpenPos = $strLength; } if ($openPos + 1 > $strLength) { $nextOpenPos = $strLength; } else { $nextOpenPos = strpos($str, $this->_options['open'], $openPos + 1); if ($nextOpenPos === false) { $nextOpenPos = $strLength; } } $closePos = strpos($str, $this->_options['close'], $strPos); if ($closePos === false) { $closePos = $strLength + 1; } if ($openPos == $strPos) { if (($nextOpenPos < $closePos)) { // new open tag before closing tag: treat as text $newPos = $nextOpenPos; $tag['text'] = substr($str, $strPos, $nextOpenPos - $strPos); $tag['type'] = 0; } else { // possible valid tag $newPos = $closePos + 1; $newTag = $this->_buildTag(substr($str, $strPos, $closePos - $strPos + 1)); if (($newTag !== false)) { $tag = $newTag; } else { // no valid tag after all $tag['text'] = substr($str, $strPos, $closePos - $strPos + 1); $tag['type'] = 0; } } } else { // just text $newPos = $openPos; $tag['text'] = substr($str, $strPos, $openPos - $strPos); $tag['type'] = 0; } // join 2 following text elements if ($tag['type'] === 0 && isset($prev) && $prev['type'] === 0) { $tag['text'] = $prev['text'].$tag['text']; array_pop($this->_tagArray); } $this->_tagArray[] = $tag; $prev = $tag; $strPos = $newPos; } } /** * Builds a tag from the input string * * This method builds a tag array based on the string it got as an * argument. If the tag is invalid, <false> is returned. The tag * attributes are extracted from the string and stored in the tag * array as an associative array. * * @param string string to build tag from * @return array tag in array format * @access private * @see _buildTagArray() * @author Stijn de Reede <sjr@gmx.co.uk> */ function _buildTag($str) { $tag = array('text' => $str, 'attributes' => array()); if (substr($str, 1, 1) == '/') { // closing tag $tag['tag'] = strtolower(substr($str, 2, strlen($str) - 3)); if (!in_array($tag['tag'], array_keys($this->_definedTags))) { return false; // nope, it's not valid } else { $tag['type'] = 2; return $tag; } } else { // opening tag $tag['type'] = 1; if (strpos($str, ' ') && (strpos($str, '=') === false)) { return false; // nope, it's not valid } // tnx to Onno for the regex // split the tag with arguments and all $oe = $this->_options['open_esc']; $ce = $this->_options['close_esc']; $tagArray = array(); if (preg_match("!$oe([a-z0-9]+)[^$ce]*$ce!i", $str, $tagArray) == 0) { return false; } $tag['tag'] = strtolower($tagArray[1]); if (!in_array($tag['tag'], array_keys($this->_definedTags))) { return false; // nope, it's not valid } // tnx to Onno for the regex // validate the arguments $attributeArray = array(); $regex = "![\s$oe]([a-z0-9]+)=(\"[^\s$ce]+\"|[^\s$ce]"; if ($tag['tag'] != 'url') { $regex .= "[^=]"; } $regex .= "+)(?=[\s$ce])!i"; preg_match_all($regex, $str, $attributeArray, PREG_SET_ORDER); foreach ($attributeArray as $attribute) { $attNam = strtolower($attribute[1]); if (in_array($attNam, array_keys($this->_definedTags[$tag['tag']]['attributes']))) { if ($attribute[2][0] == '"' && $attribute[2][strlen($attribute[2])-1] == '"') { $tag['attributes'][$attNam] = substr($attribute[2], 1, -1); } else { $tag['attributes'][$attNam] = $attribute[2]; } } } return $tag; } } /** * Validates the tag array, regarding the allowed tags * * While looping through the tag array, two following text tags are * joined, and it is checked that the tag is allowed inside the * last opened tag. * By remembering what tags have been opened it is checked that * there is correct (xml compliant) nesting. * In the end all still opened tags are closed. * * @return none * @access private * @see _isAllowed() * @see $_tagArray * @author Stijn de Reede <sjr@gmx.co.uk>, Seth Price <seth@pricepages.org> */ function _validateTagArray() { $newTagArray = array(); $openTags = array(); foreach ($this->_tagArray as $tag) { $prevTag = end($newTagArray); switch ($tag['type']) { case 0: if (($child = $this->_childNeeded(end($openTags), 'text')) && $child !== false && /* * No idea what to do in this case: A child is needed, but * no valid one is returned. We'll ignore it here and live * with it until someone reports a valid bug. */ $child !== true ) { if (trim($tag['text']) == '') { //just an empty indentation or newline without value? continue; } $newTagArray[] = $child; $openTags[] = $child['tag']; } if ($prevTag['type'] === 0) { $tag['text'] = $prevTag['text'].$tag['text']; array_pop($newTagArray); } $newTagArray[] = $tag; break; case 1: if (!$this->_isAllowed(end($openTags), $tag['tag']) || ($parent = $this->_parentNeeded(end($openTags), $tag['tag'])) === true || ($child = $this->_childNeeded(end($openTags), $tag['tag'])) === true) { $tag['type'] = 0; if ($prevTag['type'] === 0) { $tag['text'] = $prevTag['text'].$tag['text']; array_pop($newTagArray); } } else { if ($parent) { /* * Avoid use of parent if we can help it. If we are * trying to insert a new parent, but the current tag is * the same as the previous tag, then assume that the * previous tag structure is valid, and add this tag as * a sibling. To add as a sibling, we need to close the * current tag. */ if ($tag['tag'] == end($openTags)){ $newTagArray[] = $this->_buildTag('[/'.$tag['tag'].']'); array_pop($openTags); } else { $newTagArray[] = $parent; $openTags[] = $parent['tag']; } } if ($child) { $newTagArray[] = $child; $openTags[] = $child['tag']; } $openTags[] = $tag['tag']; } $newTagArray[] = $tag; break; case 2: if (($tag['tag'] == end($openTags) || $this->_isAllowed(end($openTags), $tag['tag']))) { if (in_array($tag['tag'], $openTags)) { $tmpOpenTags = array(); while (end($openTags) != $tag['tag']) { $newTagArray[] = $this->_buildTag('[/'.end($openTags).']'); $tmpOpenTags[] = end($openTags); array_pop($openTags); } $newTagArray[] = $tag; array_pop($openTags); /* why is this here? it just seems to break things * (nested lists where closing tags need to be * generated) while (end($tmpOpenTags)) { $tmpTag = $this->_buildTag('['.end($tmpOpenTags).']'); $newTagArray[] = $tmpTag; $openTags[] = $tmpTag['tag']; array_pop($tmpOpenTags); }*/ } } else { $tag['type'] = 0; if ($prevTag['type'] === 0) { $tag['text'] = $prevTag['text'].$tag['text']; array_pop($newTagArray); } $newTagArray[] = $tag; } break; } } while (end($openTags)) { $newTagArray[] = $this->_buildTag('[/'.end($openTags).']'); array_pop($openTags); } $this->_tagArray = $newTagArray; } /** * Checks to see if a parent is needed * * Checks to see if the current $in tag has an appropriate parent. If it * does, then it returns false. If a parent is needed, then it returns the * first tag in the list to add to the stack. * * @param array tag that is on the outside * @param array tag that is on the inside * @return boolean false if not needed, tag if needed, true if out * of our minds * @access private * @see _validateTagArray() * @author Seth Price <seth@pricepages.org> */ function _parentNeeded($out, $in) { if (!isset($this->_definedTags[$in]['parent']) || ($this->_definedTags[$in]['parent'] == 'all') ) { return false; } $ar = explode('^', $this->_definedTags[$in]['parent']); $tags = explode(',', $ar[1]); if ($ar[0] == 'none'){ if ($out && in_array($out, $tags)) { return false; } //Create a tag from the first one on the list return $this->_buildTag('['.$tags[0].']'); } if ($ar[0] == 'all' && $out && !in_array($out, $tags)) { return false; } // Tag is needed, we don't know which one. We could make something up, // but it would be so random, I think that it would be worthless. return true; } /** * Checks to see if a child is needed * * Checks to see if the current $out tag has an appropriate child. If it * does, then it returns false. If a child is needed, then it returns the * first tag in the list to add to the stack. * * @param array tag that is on the outside * @param array tag that is on the inside * @return boolean false if not needed, tag if needed, true if out * of our minds * @access private * @see _validateTagArray() * @author Seth Price <seth@pricepages.org> */ function _childNeeded($out, $in) { if (!isset($this->_definedTags[$out]['child']) || ($this->_definedTags[$out]['child'] == 'all') ) { return false; } $ar = explode('^', $this->_definedTags[$out]['child']); $tags = explode(',', $ar[1]); if ($ar[0] == 'none'){ if ($in && in_array($in, $tags)) { return false; } //Create a tag from the first one on the list return $this->_buildTag('['.$tags[0].']'); } if ($ar[0] == 'all' && $in && !in_array($in, $tags)) { return false; } // Tag is needed, we don't know which one. We could make something up, // but it would be so random, I think that it would be worthless. return true; } /** * Checks to see if a tag is allowed inside another tag * * The allowed tags are extracted from the private _definedTags array. * * @param array tag that is on the outside * @param array tag that is on the inside * @return boolean return true if the tag is allowed, false * otherwise * @access private * @see _validateTagArray() * @author Stijn de Reede <sjr@gmx.co.uk> */ function _isAllowed($out, $in) { if (!$out || ($this->_definedTags[$out]['allowed'] == 'all')) { return true; } if ($this->_definedTags[$out]['allowed'] == 'none') { return false; } $ar = explode('^', $this->_definedTags[$out]['allowed']); $tags = explode(',', $ar[1]); if ($ar[0] == 'none' && in_array($in, $tags)) { return true; } if ($ar[0] == 'all' && in_array($in, $tags)) { return false; } return false; } /** * Builds a parsed string based on the tag array * * The correct html and attribute values are extracted from the private * _definedTags array. * * @return none * @access private * @see $_tagArray * @see $_parsed * @author Stijn de Reede <sjr@gmx.co.uk> */ function _buildParsedString() { $this->_parsed = ''; foreach ($this->_tagArray as $tag) { switch ($tag['type']) { // just text case 0: $this->_parsed .= $tag['text']; break; // opening tag case 1: $this->_parsed .= '<'.$this->_definedTags[$tag['tag']]['htmlopen']; if ($this->_options['quotestyle'] == 'single') $q = "'"; if ($this->_options['quotestyle'] == 'double') $q = '"'; foreach ($tag['attributes'] as $a => $v) { //prevent XSS attacks. IMHO this is not enough, though... //@see http://pear.php.net/bugs/bug.php?id=5609 $v = preg_replace('#(script|about|applet|activex|chrome):#is', "\\1&#058;", $v); $v = htmlspecialchars($v); $v = str_replace('&amp;', '&', $v); if (($this->_options['quotewhat'] == 'nothing') || (($this->_options['quotewhat'] == 'strings') && is_numeric($v)) ) { $this->_parsed .= ' '.sprintf($this->_definedTags[$tag['tag']]['attributes'][$a], $v, ''); } else { $this->_parsed .= ' '.sprintf($this->_definedTags[$tag['tag']]['attributes'][$a], $v, $q); } } if ($this->_definedTags[$tag['tag']]['htmlclose'] == '' && $this->_options['xmlclose']) { $this->_parsed .= ' /'; } $this->_parsed .= '>'; break; // closing tag case 2: if ($this->_definedTags[$tag['tag']]['htmlclose'] != '') { $this->_parsed .= '</'.$this->_definedTags[$tag['tag']]['htmlclose'].'>'; } break; } } } /** * Sets text in the object to be parsed * * @param string the text to set in the object * @return none * @access public * @see getText() * @see $_text * @author Stijn de Reede <sjr@gmx.co.uk> */ function setText($str) { $this->_text = $str; } /** * Gets the unparsed text from the object * * @return string the text set in the object * @access public * @see setText() * @see $_text * @author Stijn de Reede <sjr@gmx.co.uk> */ function getText() { return $this->_text; } /** * Gets the preparsed text from the object * * @return string the text set in the object * @access public * @see _preparse() * @see $_preparsed * @author Stijn de Reede <sjr@gmx.co.uk> */ function getPreparsed() { return $this->_preparsed; } /** * Gets the parsed text from the object * * @return string the parsed text set in the object * @access public * @see parse() * @see $_parsed * @author Stijn de Reede <sjr@gmx.co.uk> */ function getParsed() { return $this->_parsed; } /** * Parses the text set in the object * * @return none * @access public * @see _preparse() * @see _buildTagArray() * @see _validateTagArray() * @see _buildParsedString() * @author Stijn de Reede <sjr@gmx.co.uk> */ function parse() { $this->_preparse(); $this->_buildTagArray(); $this->_validateTagArray(); $this->_buildParsedString(); } /** * Quick method to do setText(), parse() and getParsed at once * * @return none * @access public * @see parse() * @see $_text * @author Stijn de Reede <sjr@gmx.co.uk> */ function qparse($str) { $this->_text = $str; $this->parse(); return $this->_parsed; } /** * Quick static method to do setText(), parse() and getParsed at once * * @return none * @access public * @see parse() * @see $_text * @author Stijn de Reede <sjr@gmx.co.uk> */ function staticQparse($str) { $p = new HTML_BBCodeParser(); $str = $p->qparse($str); unset($p); return $str; } } ?> Located at /home1/elvonica/php/HTML/BBCodeParser/Filter.php: <?php include("/home1/elvonica/php/HTML/BBCodeParser.php"); /** * Dummy class that filters need to extend from. */ class HTML_BBCodeParser_Filter extends HTML_BBCodeParser { } ?>
  6. Ok I have PEAR installed on my Bluehost account and I have the HTML_BBCodeParser package along with the default packages. For EVERYONE else, this code works to submit BBCode, but this error message keeps popping up for me: Here is my code: <?php if (isset($_POST['submit'])) { if (!empty($_POST['text'])){ echo "<div style=\"border: solid 1px orange; padding:20px; margin: 20px\">"; require_once '/home1/elvonica/php/HTML/BBCodeParser.php'; $parser = new HTML_BBCodeParser(); $parser->setText($_POST['text']); $parser->parse(); echo $parser->getParsed(); echo "</div>"; } } ?> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <br> <textarea name="text" style="width: 300px; height: 200px"><?php echo @$_POST['text']; ?></textarea> <br> <br /> <br> <input type="submit" name="submit" /> <br> </form>
  7. Ok I'm trying to select the pet with the current eggid in the url. That part works fine, but when I try to select more than one color, it gets all messed up. Because I don't know how to do it and I can't find it on the internet anywhere. $sql = "SELECT * FROM pets WHERE eggid='".$_GET['eggid']."' AND color='blue' OR 'green' OR 'yellow' OR 'red'"; Does anyone know how to do that? Because whenever I put this: $sql = "SELECT * FROM pets WHERE eggid='".$_GET['eggid']."' AND color='blue' OR color='yellow' OR color='green' OR color='red'"; It gets all messed up. It selects ALL the colors even if the eggid isn't the current eggid. So it displays the colors of all the pets that have those colors.. :/ EDIT: OR is this the only way I can do it: $sql = "SELECT * FROM pets WHERE eggid='".$_GET['eggid']."' AND color='blue' OR eggid='".$_GET['eggid']."' AND color='green' OR eggid='".$_GET['eggid']."' AND color='yellow' OR eggid='".$_GET['eggid']."' AND color='red'";
  8. Nevermind, I used the ereg() instead. (: Works so much better! Got it working. Thanks though!
  9. Is that another way of doing it? I really rather stick with the preg_match since I'm more familiar with it doing characters. Is there any way to do this with preg_match? And it does have an ending delimiter. That's the $...
  10. I can't ever get this stupid function to work. I do it all the time and try to find other ways around it because I can never get ANY of mine to work. And then I go to boards and copy theirs to see if they work and they don't.... so I really don't get what I'm doing wrong. $depositamt = $_POST['depositamt']; if (!preg_match("^[0-9]+$", $depositamt)) This is what I have. Well not the whole code, but you get what I'm doing...
  11. Thank you so much (: Works brilliantly!
  12. Just a general question, but could someone help me and tell me how to allow the user to enter a <br> without actually typing it. Like when they're typing in the forums, I want it to automatically go on a new line when they hit the ENTER key. Or could someone lead me to a guide? I tried searching everywhere and just can't seem to find it.
  13. Nevermind. (: Got it to work! Thanks!!!
  14. You're logic works, but since they didn't post anything to begin with, it's selecting blanks and not even showing the lists... :/ <select name="dobd"> <?php $dayOptions = "<option value=\"\">Day</option>\n"; for($day = 1; $day <= 31; $day++) { $selected = ($day==$_POST['dobd']) ? ' selected="selected"' : ''; $dayOptions .= "<option value=\"".$day."\" selected=\"".$selected."\">".date('d', mktime(0,0,0,0,$day,0))."</option>\n"; } ?> </select> <select name="dobm"> <?php $monthOptions = "<option value=\"\">Month</option>\n"; for($month = 1; $month <= 12; $month++) { $selected = ($month==$_POST['dobm']) ? ' selected="selected"' : ''; $monthOptions .= "<option value=\"".$month."\" selected=\"".$selected."\">".date('M', mktime(0,0,0,$month+1,0,0))."</option>\n"; } ?> </select> <select name="doby"> <?php $yearOptions = "<option value=\"\">Month</option>\n"; for($year = 1998; $year >= 1911; --$year) { $selected = ($year==$_POST['doby']) ? ' selected="selected"' : ''; $yearOptions .= "<option value=\"".$year."\" selected=\"".$selected."\">".$year."</option>\n"; } ?> </select>
  15. I'm trying to get each day, month, and year that they select stickied. If they post any errors throughout their signup, I want these values to be the same so they don't have to go through the dates again to select their birth date. <select name="dobd"> <option value="">Day</option> <?php for($i = 1; $i <= 31; $i++) { echo "<option value=\"".$i."\" selected=\"".$_POST['dobd']."\">".date('d', mktime(0,0,0,0,$i,0))."</option>\n"; } ?> </select> <select name="dobm"> <option value="">Month</option> <?php for($i = 1; $i <= 12; $i++) { echo "<option value=\"".$i."\" selected=\"".$_POST['dobm']."\">".date('M', mktime(0,0,0,$i+1,0,0))."</option>\n"; } ?> </select> <select name="doby"> <option value="">Year</option> <?php for($i = 1998; $i >= 1911; --$i) { echo "<option value=\"".$i."\" selected=\"".$_POST['doby']."\">".$i."</option>\n"; } ?> </select>
  16. Ah! Thank you so much. I wasn't aware of the --$i. I thought it was $i-1. Question though. Why is it starting out at 1996 when I want it to start at 1998? <?php for($i = 1998; $i >= 1911; --$i) { if ($_POST['dobm'] == $i) { echo '<option selected="selected" value="'.$i.'">'.date('Y', mktime(0,0,0,0,0,$i-1)).'</option>\n'; } else { echo '<option value="'.$i.'">'.date('Y', mktime(0,0,0,0,0,$i-1)).'</option>\n'; } } ?>
  17. Ok so here is my code. Ignore the $_POST['dobm']. That is part of the whole script. All I want to know is how to set the list from 1998 to 1911 in descending order. I already tried making $i = 1998 and make $i - 1 til $i >= 1911. It seems to go in an infinite loop when I do that. <?php for($i = 1911; $i <= 1998; $i++) { if ($_POST['dobm'] == $i) { echo '<option selected="selected" value="'.$i.'">'.date('Y', mktime(0,0,0,0,0,$i+1)).'</option>\n'; } else { echo '<option value="'.$i.'">'.date('Y', mktime(0,0,0,0,0,$i+1)).'</option>\n'; } } ?>
  18. Ok I'm sorry to bring this back up. But I just realized I needed a DATETIME instead of TIME. I've been trying for the last hour to get it to work.. I just can't. I thought it would be easy since I understood the time, but I just can't do it.. { $sql = "SELECT incubation FROM eggs WHERE eggid='".$_POST['eggid']."'"; $result = mysqli_query($cxn, $sql) or die(mysqli_error($cxn)); $row = mysqli_fetch_assoc($result); $incubation = $row['incubation']; echo $incubation."<br>"; $starttime = date("Y-m-d H:i:s")."<br>"; print_r($starttime); $endtime = date("Y-m-d H:i:s", $starttime+$incubation); print_r($endtime); $sql2 = "UPDATE incubator SET status='incubating', starttime='".$starttime."', endtime='".$endtime."' WHERE userid='".$_SESSION['userid']."' AND eggid='".$_POST['eggid'].""; mysqli_query($cxn, $sql2); $hours = intval(intval($row['incubation_seconds']) / 3600); $error = "<p align=\"center\">You have started the incubation. You're egg will be fully incubated in ".$hours." hours.</p>"; } The endtime keeps coming out : 1969-12-31 19:33:31 ... It's definitely not 1969.. o.o
  19. Nevermind, I got it. (: I just typed this statement: $hours = intval(intval($row['incubation_seconds']) / 3600);
  20. Ohhh. Sorry. Thanks! It's working now! (: But, is there anyway I can convert the incubation time to say 4 hours or would I have to do another sql statement since that one converted it into seconds already?
  21. $sql = "SELECT TIME_TO_SEC('incubation') as 'incubation_seconds' FROM eggs WHERE eggid='".$_POST['eggid']."'"; $result = mysqli_query($cxn, $sql) or die(mysqli_error($cxn)); $row = mysqli_fetch_assoc($result); $endtime = date("H:i:s", time()+$row['incubation_seconds']); echo $endtime; It's displaying today's current time. And I'm not going to learn a code that doesn't work. I learn from codes that work because I read over them and then I finally understand what it's doing.. EDIT $sql = "SELECT incubation FROM eggs WHERE eggid='".$_POST['eggid']."'"; $result = mysqli_query($cxn, $sql) or die(mysqli_error($cxn)); $row = mysqli_fetch_assoc($result); $incubation = $row['incubation']; $incubation = strtotime($incubation); $starttime = date("H:i:s"); $endtime = date("H:i:s", time()+$incubation); echo $endtime; And this one works on the minutes and seconds, but it's setting the hours to 0 EDIT WAIT, I take that back. It's jumping 3 more hours onto each incubation time. Why is it doing that?
  22. Requinix, your result gives me : 20:57:26. It's suppose to be 8:57:26. Xyph, your result gives me : 04:00:00 EDIT I even tried it this way: $incubation = $row['incubation']; $incubation = strtotime($incubation); $starttime = date("H:i:s"); $starttime = strtotime($starttime); $endtime = $starttime+$incubation; $endtime = date("H:i:s", $endtime); echo $endtime;
  23. Ok, I have a variable ($incubation) set as 04:00:00. Then I have another variable ($starttime) set to the current time. Both are printing out fine. But I'm trying to get an $endtime from adding the incubation time to the start time. $incubation = $row['incubation']; //IM GRABBING THIS TIME FROM THE DATABASE. It prints 04:00:00 $starttime = date("H:i:s"); //prints 16:23:39 $endtime = date("H:i:s", $starttime+$incubation); //prints 20:00:00 when it's suppose to print 20:23:39
  24. Mjdamato, you're a genius. (: I totally forgot about the JOIN... now I need to fix all my other codes. Thanks so much!
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.