ok har lavet 1 include på chekoutsiden og sat det her i
også en php file for sig selv med funktionen i
<?php function isValid($number){
// fjerner alle mellemrum
$number = preg_replace('/\s/', '', $number);
// tester om formattet er korrekt
return preg_match("/^\d{8}$/", $number);
}
?>
også checkoutkoden
<?php if (in_array((int) $tpl['option_arr']['o_bf_phone'], array(2,3))) : ?>
<div class="form-group">
<label for="" class="col-lg-3 col-md-3 col-sm-3 col-sx-12 control-label text-capitalize">
<?php __('booking_phone'); ?>
<?php if ((int) $tpl['option_arr']['o_bf_phone'] === 3) : ?><span class="asterisk">*</span><?php endif; ?>
</label>
<div class="col-lg-9 col-md-9 col-sm-9 col-sx-12">
<input class="form-control<?php echo (int) $tpl['option_arr']['o_bf_phone'] === 3 ? ' required' : NULL; ?>" name="c_phone" type="text" value="<?php echo isValid(pjSanitize::html(@$FORM['c_phone'])); ?>" data-msg-required="<?php __('co_v_phone', false, true); ?>">
<div class="help-block with-errors"><ul class="list-unstyled"></ul></div>
</div><!-- /.col-lg-9 col-md-9 col-sm-9 col-sx-12 -->
</div><!-- /.form-group -->
<?php endif; ?>
har også prøvet det andet kode du skrev med 0
som jeg kan se begge to gir bare et 0 inde i selve feltet? der hvor man skal skrive sit telefon nummer ved du hvad der er galt?
hvad med pjsanitize kan det tænkes funktionen skal indæsttes der??
hvordan indsættes jer det her som et array? eller hvad? bare sådan så man kun kan skrive 8 tal i feltet intet andet det vil være lettest
<?php
/**
* Washes strings from unwanted noise. Helpful methods to make unsafe strings usable.
*
* @package framework.components
*/
/**
* Data Sanitization.
*
* Removal of alphanumeric characters, HTML-friendly strings,
* and all of the above on arrays.
*
*/
class pjSanitize
{
/**
* Sanitizes given array or value for safe input. Use the options to specify
* what filters should be applied (with a boolean value). Valid filters:
*
* - odd_spaces - removes any non space whitespace characters
* - encode - Encode any html entities. Encode must be true for the `remove_html` to work.
* - dollar - Escape `$` with `\$`
* - carriage - Remove `\r`
* - unicode -
* - backslash -
* - remove_html - Strip HTML with strip_tags. `encode` must be true for this option to work.
*
* @param string|array $data Data to sanitize
* @param string|array $options Set of options
* @return mixed Sanitized data
*/
public static function clean($data, $options = array())
{
if (empty($data)) {
return $data;
}
$options = array_merge(array(
'odd_spaces' => true,
'remove_html' => false,
'encode' => true,
'dollar' => true,
'carriage' => true,
'unicode' => true,
'backslash' => true
), $options);
if (is_array($data)) {
foreach ($data as $key => $val) {
$data[$key] = pjSanitize::clean($val, $options);
}
return $data;
}
if ($options['odd_spaces']) {
$data = str_replace(chr(0xCA), '', $data);
}
if ($options['encode']) {
$data = pjSanitize::html($data, array('remove' => $options['remove_html']));
}
if ($options['dollar']) {
$data = str_replace("\\\$", "$", $data);
}
if ($options['carriage']) {
$data = str_replace("\r", "", $data);
}
if ($options['unicode']) {
$data = preg_replace("/&#([0-9]+);/s", "\\1;", $data);
}
if ($options['backslash']) {
$data = preg_replace("/\\\(?!&#|\?#)/", "\\", $data);
}
return $data;
}
/**
* Returns given string safe for display as HTML. Renders entities.
*
* strip_tags() does not validating HTML syntax or structure, so it might strip whole passages
* with broken HTML.
*
* ### Options:
*
* - remove (boolean) if true strips all HTML tags before encoding
* - charset (string) the charset used to encode the string
* - quotes (int) see http://php.net/manual/en/function.htmlentities.php
* - double (boolean) doube encode html entities
*
* @param string $string String from where to strip tags
* @param array $options Array of options to use.
* @static
* @access public
* @return string Sanitized string
*/
public static function html($string, $options = array())
{
$default = array(
'remove' => false,
'charset' => 'UTF-8',
'quotes' => ENT_QUOTES,
'double' => true
);
$options = array_merge($default, $options);
if ($options['remove'])
{
$string = strip_tags($string);
}
return htmlentities($string, $options['quotes'], $options['charset'], $options['double']);
}
/**
* Removes any non-alphanumeric characters.
*
* @param string $string String to sanitize
* @param array $allowed An array of additional characters that are not to be removed.
* @static
* @access public
* @return string Sanitized string
*/
public static function paranoid($string, $allowed = array())
{
$allow = null;
if (!empty($allowed))
{
foreach ($allowed as $value)
{
$allow .= "\\$value";
}
}
if (!is_array($string))
{
return preg_replace("/[^{$allow}a-zA-Z0-9]/", '', $string);
}
$cleaned = array();
foreach ($string as $key => $clean)
{
$cleaned[$key] = preg_replace("/[^{$allow}a-zA-Z0-9]/", '', $clean);
}
return $cleaned;
}
/**
* Strips extra whitespace, images, scripts and stylesheets from output
*
* @param string $str String to sanitize
* @static
* @access public
* @return string sanitized string
*/
public static function stripAll($str)
{
return pjSanitize::stripScripts(
pjSanitize::stripImages(
pjSanitize::stripWhitespace($str)
)
);
}
/**
* Strips image tags from output
*
* @param string $str String to sanitize
* @static
* @access public
* @return string Sting with images stripped.
*/
public static function stripImages($str)
{
$preg = array(
'/(<a[^>]*>)(<img[^>]+alt=")([^"]*)("[^>]*>)(<\/a>)/i' => '$1$3$5<br />',
'/(<img[^>]+alt=")([^"]*)("[^>]*>)/i' => '$2<br />',
'/<img[^>]*>/i' => ''
);
return preg_replace(array_keys($preg), array_values($preg), $str);
}
/**
* Strips scripts and stylesheets from output
*
* @param string $str String to sanitize
* @static
* @access public
* @return string String with <link>, <img>, <script>, <style> elements and html comments removed.
*/
public static function stripScripts($str)
{
$regex =
'/(<link[^>]+rel="[^"]*stylesheet"[^>]*>|' .
'<img[^>]*>|style="[^"]*")|' .
'<script[^>]*>.*?<\/script>|' .
'<style[^>]*>.*?<\/style>|' .
'<!--.*?-->/is';
return preg_replace($regex, '', $str);
}
/**
* Strips the specified tags from output. First parameter is string from
* where to remove tags. All subsequent parameters are tags.
*
* Ex.`$clean = pjSanitize::stripTags($dirty, 'b', 'p', 'div');`
*
* Will remove all `<b>`, `<p>`, and `<div>` tags from the $dirty string.
*
* @param string $str,... String to sanitize
* @static
* @access public
* @return string sanitized String
*/
public static function stripTags($str)
{
$params = func_get_args();
for ($i = 1, $count = count($params); $i < $count; $i++)
{
$str = preg_replace('/<' . $params[$i] . '\b[^>]*>/i', '', $str);
$str = preg_replace('/<\/' . $params[$i] . '[^>]*>/i', '', $str);
}
return $str;
}
/**
* Strips extra whitespace from output
*
* @param string $str String to sanitize
* @static
* @access public
* @return string whitespace sanitized string
*/
public static function stripWhitespace($str)
{
return preg_replace('/\s{2,}/u', ' ', preg_replace('/[\n\r\t]+/', '', $str));
}
}
?>
har snakket med dme og de siger validerings formen skal laves i javascript kan det virkelig passe? kan jeg ikke lave dette i php og indsætte det i pjsantizice som en funktion tak
Indlæg senest redigeret d. 19.01.2016 21:27 af Bruger #21230