Показване на резултат

semprom

Registered
Здравейте.
Може ли да ми кажете каква е логиката това
Код:
die("".$row2['account_num']."");
да работи, а това

Код:
die($row2['account_num']);

да не работи?
Под работи имам предвид да показва нещо.

PHP версия 5.4.16 ако има някакво значение.

Благодаря.
 
ЗАЩОТО.. в първия пример използваш конкантиниране, или по-точно прилепяш стринг към променлива .. и това е валидно, а при 2-рия
die($row2['account_num'].);
там само ЗАПОЧВАШ да конкантинираш като слагаш точка накрая ама НЕ СЕ ЗНАЕ С КАКВО и затова не работи ;)

Бтв, може и просто така да го напишеш : die($row2['account_num']);

Надявам се да схаващаш .. :?:
 
joTunkiq каза:
ЗАЩОТО.. в първия пример използваш конкантиниране, или по-точно прилепяш стринг към променлива .. и това е валидно, а при 2-рия
die($row2['account_num'].);
там само ЗАПОЧВАШ да конкантинираш като слагаш точка накрая ама НЕ СЕ ЗНАЕ С КАКВО и затова не работи ;)

Бтв, може и просто така да го напишеш : die($row2['account_num']);

Надявам се да схаващаш .. :?:

Моя грешка. Няма точка във втория пример.
Точно това казвам, че ако го направя по първия начин показва резултат, а ако го направя по втория не връща.
:D
 
Die() е еквивалент на еxit() и можеш да го замениш с него.
http://bg2.php.net/manual/en/function.die.php
http://bg2.php.net/manual/en/function.exit.php
PHP:
<?php
$a = "tekst";
die($a);
?>
Така при мен си работи. Вероятно ти връща грешка заради кавичките на
$row2['account_num'] и приема че преди и след тях трябва да има .точка. Приравни променливата да нещо и тествай пак :

PHP:
<?php
$a = $row2['account_num'];
die($a);
?>

При мен и така работи:
PHP:
<?php
$a['t'] = "tekst";
die($a['t']);
?>
blaaa
 
dakata__92 каза:
Die() е еквивалент на еxit() и можеш да го замениш с него.
http://bg2.php.net/manual/en/function.die.php
http://bg2.php.net/manual/en/function.exit.php
PHP:
<?php
$a = "tekst";
die($a);
?>
Така при мен си работи. Вероятно ти връща грешка заради кавичките на
$row2['account_num'] и приема че преди и след тях трябва да има .точка. Приравни променливата да нещо и тествай пак :

PHP:
<?php
$a = $row2['account_num'];
die($a);
?>

При мен и така работи:
PHP:
<?php
$a['t'] = "tekst";
die($a['t']);
?>
blaaa

То по принцип се слага в сесия.
Код:
$_SESSION['user'] = $row2['account_num'];

но сесията винаги е нищо. На другия ми хост акаунт работи идеално, но преместих сайта на друг и край. Някаква настройка ли има?
 
Проверяваш дали е сетната променливата със isset или == "" ? Прочети тук : http://web-tourist.net/forum/viewtopic.php?p=659043#659043

Без малък код за тест не виждам как ще ти помогнем по въпроса. Принципно трябва да си работи така. :)
 
Такъв проблем съм срещал и аз. При мен се оказа, че подавам да die число, а не стринг, каквото die очаква. Пробвайте следния прост пример:
PHP:
<?php
die(5);
?>
Не извежда нищо, нали :?:
Трябва да го превърнеш в стринг, за да работи.

А и самото име на променливата подсказва, че стойността ѝ е число - account_num

Мисля, че това е обяснението! :?:

joTunkiq, тая кафява точка я помислих за мръсно върху екрана и се опитах да го изчистя :D:D:D:D:D

п.п. ето защо не извежда нищо:

php.net каза:
If status is an integer, that value will be used as the exit status and not printed. Exit statuses should be in the range 0 to 254, the exit status 255 is reserved by PHP and shall not be used. The status 0 is used to terminate the program successfully.
...
Note: PHP >= 4.2.0 does NOT print the status if it is an integer.
Ще ви избоде очите :)
DOCS
 
semprom каза:
Добре забравете exit и die. Защо когато искам да сетна сесия, не става, освен ако не го направя $_SESSION['user'] = "".$row2['account_num']."";
Дай си кода! Какво се съдържа в дадената променлива $row2['account_num'] ?
 
dakata__92 каза:
semprom каза:
Добре забравете exit и die. Защо когато искам да сетна сесия, не става, освен ако не го направя $_SESSION['user'] = "".$row2['account_num']."";
Дай си кода! Какво се съдържа в дадената променлива $row2['account_num'] ?

Числото на потребителя :D
 
Опитай да използваш (string)$row2['account_num'] или пък {$row2['account_num']} - така PHP ще изчита променливата като низ, а не като число
 
raiden каза:
Опитай да използваш (string)$row2['account_num'] или пък {$row2['account_num']} - така PHP ще изчита променливата като низ, а не като число
Предполагам без да съм го тествал, че по тази логика ще може и ето така :

"".$row2['account_num']
 
Добре, аз не разбирам, защо просто не използваш ехо и exit след него, абсолютно същото прави :D

PHP:
echo $row2['account_num'];
exit;
:?: :?:
 
Интересното е защо ти сетва сесията само на стринг а не и като число. Нещо не си направил, като хората или с проверките за сетната сесия не са ти правилни. :)
 
dakata__92 каза:
Интересното е защо ти сетва сесията само на стринг а не и като число. Нещо не си направил, като хората или с проверките за сетната сесия не са ти правилни. :)

Мисля че го разгадах. Имах проверка с ctype_digit която ме спъваше. Замених я с is_int и сега е наред. Но странното е, че когато бях на предния хост проверката с ctype_digit работеше без проблем. Това с die го правя за да видя какъв резултат ми връщаше променливата.
 
semprom каза:
dakata__92 каза:
Интересното е защо ти сетва сесията само на стринг а не и като число. Нещо не си направил, като хората или с проверките за сетната сесия не са ти правилни. :)

Мисля че го разгадах. Имах проверка с ctype_digit която ме спъваше. Замених я с is_int и сега е наред. Но странното е, че когато бях на предния хост проверката с ctype_digit работеше без проблем. Това с die го правя за да видя какъв резултат ми връщаше променливата.

(PHP 4 >= 4.0.4, PHP 5)

Before PHP 5.1.0, this function returned TRUE when text was an empty string.
http://bg2.php.net/manual/en/function.ctype-digit.php

Както и да е въпроса е че си се справил. Може да правиш проверка и така: (int)$_POST['neshto'] примерно и прочие. Както казах преди, за да ти се бъркат нещата така с кавички вероятно е защото някъде проверките ти не са правилно структорирани. :) Без наличието на целият код ние просто гадаем какво правиш и обясняваме неща, които си работят и при теб просто без да я има сбърканата валидация. :)
 

Back
Горе