Edit report at https://bugs.php.net/bug.php?id=49566&edit=1
ID: 49566
User updated by: redbull_1988 at mail dot bg
Reported by: redbull_1988 at mail dot bg
Summary: addcslashes() requires strictly binary string
Status: Bogus
Type: Bug
Package: Unicode Engine related
-Operating System: Irrelevant
+Operating System: Windows XP Pro SP3
PHP Version: 6SVN-2009-09-15 (snap)
Block user comment: N
Private report: N
New Comment:
This is code:
(<?php
include 'functions.php';
if(!$_SESSION['is_logged']==true)
{
my_header('РегиÑÑÑаÑиÑ');
if($_POST['form_submit']==1)
{
$login=trim($_POST['login']);
$pas=trim($_POST['pass']);
$pas2=trim($_POST['pass2']);
$email=trim($_POST['mail']);
$name=trim($_POST['name']);
if(strlen($login)<4)
{
$error_array['login']='ÐÑаÑко име.ТÑÑбва да е поне 4
Ñинвола!';
}
if(strlen($pas)<4)
{
$error_array['pass']='ÐÑаÑка паÑола!';
}
if($pas!=$pas2)
{
$error_array['pass']='ÐаÑолиÑе не вÑпадаÑ!';
}
if(!eregi("^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$", $email))
{
$error_array['mail']='Ðевалиден Email адÑеÑ!';
}
if (!eregi("^[a-zA-Z0-9_]{3,16}$" ,$name))
{
$error_array['name']='Ðевалидно име!';
}
if(!count($error_array)>0)
{
db_init();
$sql='SELECT COUNT(*) as cnt FROM users WHERE login="'.addcslashes($login).'"
OR email="'.addcslashes($email).'"';
$res=mysql_query($sql);
$row=mysql_fetch_assoc($res);
print ($row);
}
}
else
?>
<form action="register.php" method="POST">
<b>User name</b>:<input type="text" name="login" value="" />
<?php
if($error_array['login'])
{
echo $error_array['login'];
}
?>
<br />
<b>ÐаÑола:</b><input type="password" name="pass" value="" size="30" />
<?php
if($error_array['pass'])
{
echo $error_array['pass'];
}
?>
<br />
<b>ÐовÑоÑи паÑола:</b><input type="password" name="pass2" value=""
size="30" /><br />
<b>Email:</b><input type="text" name="mail" value="" />
<?php
if($error_array['mail'])
{
echo $error_array['mail'];
}
?>
<br />
<b>Ðме:</b><input type="text" name="name" value="" />
<?php
if($error_array['name'])
{
echo $error_array['name'];
}
?>
<br />
<input type="hidden" name="form_submit" value="1" />
<input type="submit" name="РегиÑÑÑиÑай Ñе"
value="РегиÑÑÑиÑай Ñе" /><br />
</form>
<?php
footer();
}
else
{
header('Location: index.php');
exit;
})
return error:
(Warning: addcslashes() expects exactly 2 parameters, 1 given in
C:\xampp\htdocs\nfs\register.php on line 42
Warning: addcslashes() expects exactly 2 parameters, 1 given in
C:\xampp\htdocs\nfs\register.php on line 42
Array)
Previous Comments:
------------------------------------------------------------------------
[2010-12-22 15:32:02] [email protected]
The old PHP 6 is on-hold and even then this behaviour would be "Expected" as we
won't know which encoding to use when converting from utf-16.
------------------------------------------------------------------------
[2009-09-15 21:38:34] redbull_1988 at mail dot bg
Description:
------------
addcslashes() should allow Unicode string in both parameters.
I use addcslashes() to escape Unicode string, for example to escape % and _
characters for SQL LIKE operator.
Reproduce code:
---------------
addcslashes("abc", "%_");
Expected result:
----------------
abc
Actual result:
--------------
Warning: addcslashes() expects parameter 1 to be strictly a binary string,
Unicode string given
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=49566&edit=1