Переменные внутри цикла.

Yuriy_S

-=PHP-Club=-
Переменные внутри цикла.

Подскажите как можно, если можно конечно, сделать вот что:
У меня есть цикл, который читает файл, и ищет совпадение элемента массива в строках. (ввод с формы пароля и поиск его в файле). Так вот, когда совпадение найдено, мне необходимо присвоить некоторой переменной это совпадение (внутри цикла присвоить), как сдалать что бы при закрытии цикла } эта переменная со значением этим, была доступна за пределами цикла, то есть что бы можно было ее использовать! вот. ?
 

.des.

Поставил пиво кому надо ;-)
Yuriy_S ты бы сначала пробовал, прежде чем вопрос задать.
переменная будет видна и вне цикла.
ман variable scope
 

tony2001

TeaM PHPClub
она и так будет доступна.
PHP:
while(не найдено) {
//ищем
//если найдем - ставим флаг "найдено" или делаем break;
//переменная, которую мы при этом объявим будет видна и дальше.
}
если у тебя не так, показывай код (не весь, только ключевую часть, 5-10 строк)
 

Yuriy_S

-=PHP-Club=-
начиться так:
нада присвоить из цикла перемеенную ссылке:
<?
echo "<a href=index.php?s=$s>";
$file="user.txt";
$dat=file($file);
for($i=0;$i<count($data);$i++){
list($nomer,$name,$pass)=explode("|",$dat[$i]);
if ($forma_password == $nomer){
$s=$nomer;
}
не пашет что то она..:( То есть как бы можно после цикла сделать echo $s; но выведется токо последнее значение count($dat)...
}
 

EkyT

Guest
PHP:
$s = getNomer($forma_password);
echo "<a href=index.php?s=".($s) ? $s : 1.">";

function getNomer($p)
{
    $file="user.txt";
    $data=file($file);
    for ($i=0;$i<count($data);$i++)
   {
       list($nomer,$name,$pass)=explode("|",$data[$i]);
       if ($f == $nomer)
           return $nomer;
   }
   return false;
}
 

.des.

Поставил пиво кому надо ;-)
PHP:
for($i=0;$i<10;$i++)
{
    if ($i==5)
   {
        $s=$i;
   }
}
echo $s;
что выведет?
Правильно - 5.
все остальное баги у тебя. отлаживай по частям выводи переменные echo $variable чтобы посмотреть, что они показывают. Учись находить ошибки!
 

Yuriy_S

-=PHP-Club=-
нет, 10, потому что нету breake; у меня така же, цикл перебирает строки файла, я поставил breake и останавливается на нужном. Но все же, это мало что дало...
после цикла то выводится, но мне нужно, обязательно нужно, что бы при нажатии кнопки формы, если пароль правильный, то в адресной строке появлялась эта переменная. Сама форма находится после скрипта, но все равно, куда ее не пихай.. одна малина. И хидден есть ,name=s value=$s... Вот.
Ещё в самом начале скрипта у меня стоит нечто вроде этого:
if($pass!=""){
header("location: index.php?s=$s");
}
тут так ваще, в строке нету значения, просто s= и все. :(
что делать. как....:(
 

.des.

Поставил пиво кому надо ;-)
так 10 у тебя может получиться только в случае если ты
if($i=5) делаешь а не
if($i==5) ПРОВЕРЬ ==
 

Yuriy_S

-=PHP-Club=-
ДЕс, да все у меня так как надо, поверь мне, у меня нет ошибок, ни синтаксиса, и нет такого =, все уже смотрено, пересмотрено, я с утра мучаюсь, никак не могу сделать...
Вот я щас брейк сделал, и получается вот что:
можно сделать echo или ссылку после переменной, НО, почему то, эта переменная не доступна в форме (Хидден) и в заголовках (редирект). Вот в чем основная беда...
 

Yuriy_S

-=PHP-Club=-
и ещё что я заметил, выше этого скрипта, переменная не действует ...
 

Larson

Новичок
Вы что, совсем что-ли?
Сначала echo "<a href=index.php?s=$s>";
А потом цикл и проверка.
И что по вашему должно быть в ссылке?
 

.des.

Поставил пиво кому надо ;-)
Короче Юра_С намудрил ты там явно...
возьми чистый белый лист (=открой новый файл)
и напиши мой пример.. и если ты мне скажешь что он выводит у тебя 10 ... пойдем вместе писать баг - репорт.
 

.des.

Поставил пиво кому надо ;-)
Larson ну ссылка.. меня интересует цикл.. почему у него не выводится.. $s ну я просто не пойму.. ну в ссылке ничего не должно быть $s не определена, но мне до этого дела нет
 

tony2001

TeaM PHPClub
>почему у него не выводится
потому что у него один код, говорит он о другом, а в форум выкладывает третий.
 
Сверху