Променлива
11 отговора
553 прегледа
Променлива
Здравейте, преди да постна тук потърсих информация, но не намерих това, което ме интересува.
Значи от едно input type=text и по пост си предавам стойноста му, която е число. Но после като я взема с $_POST и ПХП-то не и я разбира така, а като стринг... Как да го оправя тоя проблем?
Значи от едно input type=text и по пост си предавам стойноста му, която е число. Но после като я взема с $_POST и ПХП-то не и я разбира така, а като стринг... Как да го оправя тоя проблем?
Re: Променлива
Тези 2те под внимание
1:
if (!is_numeric($_POST['textfield'])) {
echo 'Хм това явно не е число. Може би някой иска да ме хакне :) ?!';
}
2:
$variable = (int) $_POST['textfield']; //$variable е винаги число - евентуално 0.
1:
if (!is_numeric($_POST['textfield'])) {
echo 'Хм това явно не е число. Може би някой иска да ме хакне :) ?!';
}
2:
$variable = (int) $_POST['textfield']; //$variable е винаги число - евентуално 0.
Много странно
Пишеше ми се та си направих нещо такова (набързо). Като сложа число (даже и float да е) си ми дава bool(true).
От неизбежното се възмущава само този, който е неразумен.
<?
if($_SERVER['REQUEST_METHOD']=='GET')
{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "[линк]">
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=windows-1251"/>
<title></title>
<style type="text/css">
<!--
DIV{
text-align: center;
}
BODY{
background-color: Black;
color: White;
}
-->
</style>
</head>
<body>
<form action="<?=$_SERVER['SCRIPT_NAME'];?>" method="post">
<div>
<input type="text" name="testnumber"/>
<input type="submit" value="test number"/>
</div>
</form>
</body>
</html>
<?
}
elseif($_SERVER['REQUEST_METHOD']=='POST')
{
var_dump(is_numeric($_POST['testnumber']));
}
?>
От неизбежното се възмущава само този, който е неразумен.
Re: Много странно
Е числа са си спор няма. Странното е как на човека му ги възприема не като "числа ами като стрингове".
От неизбежното се възмущава само този, който е неразумен.
От неизбежното се възмущава само този, който е неразумен.
Редактирано от Учeщ на
Re: Променлива
$variable = (int) $_POST['textfield']; //$variable е винаги число - евентуално 0.
А ако е флоат? Най-лесно е просто $variable+=0;, нищо, че не е по учебник.
А ако е флоат? Най-лесно е просто $variable+=0;, нищо, че не е по учебник.
Re: Погледни
Те тва ама въобще не е по учебник:
Задаваме стойности на полетата 1 и 2 и резултатът очудващо е 12...
Те за тва питам.........
<?
if(!$_GET['num1']){
?>
<form method=get>
<input type=text name=num1 size=1>
<input type=text name=num2 size=1>
<input type=submit>
</form>
<?
}else{
$num1 = $_GET['num1'];
$num2 = $_GET['num2'];
$num3 = $num1 + $num2;
echo $num3;
}
?>
Задаваме стойности на полетата 1 и 2 и резултатът очудващо е 12...
Те за тва питам.........
Re: Погледни
Защото пхп-то обича да се прави на умно. Сложи +0+ между тях или ги умножи по 1 (по добре, щото при +0 може и да не стане) и ще стане. или ползвай (int), но ако не знаеш дали ще получиш инт или флоат, малко ти се усложнява писането
Аз гледам ама ....
... виждам само че нещо ме лъжеш
при :
$num1 = $_GET['num1'];
$num2 = $_GET['num2'];
$num3 = $num1 + $num2;
echo $num3;
НЯМА начин да получи резултат 12. При математическата операция + винаги параметрите се кастват до числа.
Знака за конкатенация на стрингове е .
Кажи си че се опитваш да ръчкаш с JavaScript и тогава получаваш този резултат и ще ти повярвам !
root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy
при :
$num1 = $_GET['num1'];
$num2 = $_GET['num2'];
$num3 = $num1 + $num2;
echo $num3;
НЯМА начин да получи резултат 12. При математическата операция + винаги параметрите се кастват до числа.
Знака за конкатенация на стрингове е .
Кажи си че се опитваш да ръчкаш с JavaScript и тогава получаваш този резултат и ще ти повярвам !
root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy
Re: Аз гледам ама ....
Рошавия е прав
Ако небяха числа ми нещо друго, резултатът щеше да е 0.
12 ще получиш само при $num3 = $num1.$num2;
Провери си пак скрипта или направи пълен копи/пейст да го разгледаме...
Знае ли човек...
Ако небяха числа ми нещо друго, резултатът щеше да е 0.
12 ще получиш само при $num3 = $num1.$num2;
Провери си пак скрипта или направи пълен копи/пейст да го разгледаме...
Знае ли човек...