Записване в сесийна променлива

rosen92

Registered
Опитвам се да направя едно нещо.. значи искам да направя една листа с думи, които се взима броят им и се избира произволна цифра която отговаря на думата. Искам да запиша числото което се е избрало във сесия, и то да бъде използвано.. за сега съм стигнал до тук, но нещо не мога да направя да се запази стойноста, а не при всеки refresh да се променя..

<?php
session_start();

$list = "duma
duma2
duma3
duma4
";

$list = strtoupper($list);
$words = explode("\n",$list);
$count = count($words) - 1;
$number = $_SESSION["number"];
if($number == '' || $number == '0') {
$number = rand(1,$count);
}
else {
$number = $number;
}
echo("$number");
?>

Изглежда някъде греша, но не мога да разбера къде точно..
 
Просто трябва да направиш проверка, ако няма стойност сесийната променлива, то да се изпълни скрипта, ако има стойност да не се изпълнява
 
еми в примера нали това се опитвам да направя, ако сесийната променлива ($_SESSION['number']) е NULL да изпълнява count($......) и т.н., но нещо не се получава..
 
rosen92 каза:
еми в примера нали това се опитвам да направя, ако сесийната променлива ($_SESSION['number']) е NULL да изпълнява count($......) и т.н., но нещо не се получава..
В примера никъде не се вижда, къде проверяваш за сетната сесийна променлива
 
rosen92 каза:
Опитвам се да направя едно нещо.. значи искам да направя една листа с думи, които се взима броят им и се избира произволна цифра която отговаря на думата. Искам да запиша числото което се е избрало във сесия, и то да бъде използвано.. за сега съм стигнал до тук, но нещо не мога да направя да се запази стойноста, а не при всеки refresh да се променя..

<?php
session_start();

$list = "duma
duma2
duma3
duma4
";

$list = strtoupper($list);
$words = explode("\n",$list);
$count = count($words) - 1;
$number = $_SESSION["number"];
if($number == '' || $number == '0') {
$number = rand(1,$count);
}
else {
$number = $number;
}
echo("$number");
?>

Изглежда някъде греша, но не мога да разбера къде точно..



EТО ЕМАГИ! :D
 
Първо използвай масиви. Много по-лесно и практично е.

Ето виж колко по-лесно е:
Код:
<?php
session_start();

$list = array();
$list[] = "duma";
$list[] = "duma2";
$list[] = "duma3";
$list[] = "duma4";

if (!$_SESSION['number'])
{
	$_SESSION['number'] = array_rand($list);
	$number = $_SESSION['number'];
}
else
{
	$number = $_SESSION['number'];
}
$list = array_map("strtoupper", $list);

echo $number;
?>
Ако някъде искаш да изведеш самата дума, която отговаря на цифрата правиш така: echo $list[$number] и си готов :)
 
А ако все пак си мераклия да стане от стринг.
Ето:
Код:
<?php
session_start();

$list = "duma
duma2
duma3
duma4
";

if (!$_SESSION['number'])
{
	$list = strtoupper($list);
	$count = count(explode("\n", trim($list)));
	$_SESSION['number'] = rand(1, $count);
	$number = $_SESSION['number'];
}
else
{
	$number = $_SESSION['number'];
}

echo $number;
?>
 

Back
Горе