[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите новичку с foreach
solovets
Здравствуйте!

Целый день никак не могу решить одну задачку.

В начале скрипты стоит:

$names = file("C:\names.txt");


далее по тексту:

$input->set_value_by_name('name',$names[mt_rand(0,count($names)-1)]);


Т.е. сейчас скрипт берет случайное значение из names.txt. Мне же необходимо, чтобы значения брались одно за другим в порядке строгой очереди.

Часа два мучил foreach, но куда его вставлять так и не понял.

Буду очень признателен за помощь.



Спустя 1 час, 23 минуты, 18 секунд (3.05.2010 - 02:49) Nikitian написал(а):

foreach($names as $name)
$input->set_value_by_name('name',$name);

Спустя 7 часов, 54 минуты, 23 секунды (3.05.2010 - 10:43) solovets написал(а):
Nikitian

К сожалению, не работает. Отладчик пишет "terminate" и все. В поле input никаких значений не попадает.

Спустя 43 минуты, 44 секунды (3.05.2010 - 11:27) Nikitian написал(а):
Какой инпут? В вашем вопросе не было ни слова про инпут, только передача всех возможных значений массива по порядку в метод объекта.

Спустя 39 минут, 2 секунды (3.05.2010 - 12:06) solovets написал(а):
Nikitian

Строка

$input->set_value_by_name('name',$names[mt_rand(0,count($names)-1)]);


втсавляет в поле input с именем name значения из файла manes.txt

Спустя 9 минут, 36 секунд (3.05.2010 - 12:16) Nikitian написал(а):
Инпут с именем name у вас один, соответственно и вставляться туда будет только последнее значение из массива. Оно перебъёт все предыдущие.

Спустя 39 минут, 56 секунд (3.05.2010 - 12:56) solovets написал(а):
Nikitian

Ых, тут я малость недопонимаю.

Вот код, который у меня есть с Вашими правками:


// файл с именами юзеров
$manes = file("C:\names.txt");

//переход на сайт
$browser->navigate('http://sdgr.ru/');
$browser->wait_for(240,1);


// заполнение логин-пароль
foreach($names as $name)
$input->set_value_by_name('name',$name);
$input->set_value_by_name('password',$pass);


В таком виде ровным счетом ничего не происходит.Может, я этот foreach не туда вставил?

Спустя 1 час, 23 минуты, 45 секунд (3.05.2010 - 14:19) MatrixGod написал(а):
solovets
$manes = file("C:\names.txt");
опечатка. не "manes" должно быть а "names".

а Nikitian правильно написал:
foreach($names as $name)
$input->set_value_by_name('name',$name);

Спустя 5 часов, 25 минут, 58 секунд (3.05.2010 - 19:45) solovets написал(а):
MatrixGod
К сожалению, даже с правкой опечатки не пашет :-(

Спустя 1 час (3.05.2010 - 20:45) MatrixGod написал(а):
solovets
объясни четко что тебе надо вывести, как и зачем...

Спустя 33 минуты, 16 секунд (3.05.2010 - 21:19) solovets написал(а):
MatrixGod, Nikitian

Хых, а теперь дружно написали мне сто комментов "мудак, не трать время серьезных людей!". Если б MatrixGod не попросил расписать подробно и я не полез копипастить нужный кусок html, то сам бы не заметил.

Я имя формы перепутал. Каюсь.

Было set_value_by_name('name',$name);
Стало set_value_by_name('user',$name);

Последний вопрос, если можно. Этот foreach переберет все значения из names.txt без повторов, учитывая, что php-скрипт у меня рандомный (повторяется 5 раз)?

UPD

Проглядел сообщение Nikitian:

Цитата
Инпут с именем name у вас один, соответственно и вставляться туда будет только последнее значение из массива. Оно перебъёт все предыдущие.


Глобальная задача скрипта - 5 раз зайти ко мне на сайт под разными логинами и добавить разные новости.

Все верно, вставляется последнее значение из файла names.txt. А как сделать так, чтобы они вставлялись одно за другим каждый прогон скрипта (он рандомится 5 раз)? Ну, или не одно за другим, а в случайном порядке, но без повторов? с mt_rand повторы были, собственно, из-за чего я вам на уши и сел.

Файл names.txt выглядит так:

name1
name2
name3
name4
name5

Спустя 2 часа, 20 минут, 6 секунд (3.05.2010 - 23:39) solovets написал(а):
Все, спасибо! Со всем разобрался!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.