Вообщем есть вопросы и ответы, нужен бот или скрипт чтобы сам отвичал на определенный вопрос правильным вариантом ответа. Возможно ли найти бесплатно, если нет то сколько это будет стоить? <div class="contest quiz"> <div class="contest_top"></div> <div class="contest_cont"> <div class="question-number">Вопрос 1 из 1</div> <div class="question"> <p>Что было раньше — курица или яйцо ?</p> <div class="quiz_timer"> <span id="quiz_count"></span> </div> </div> <form method="POST" action="."> <div style='display:none'><input type='hidden' name='csrfmiddlewaretoken' value='5778cca3ee693c18489d8cbfa72191db' /></div> <div class="answers"> <ul> <li><label for="id_choice_0"><input value="12" type="radio" class="styled" name="choice" id="id_choice_0" /> курица</label></li> <li><label for="id_choice_1"><input value="13" type="radio" class="styled" name="choice" id="id_choice_1" /> яйцо</label></li> </ul> </div> <input type="submit" value="" class="next_quiz"> </form> </div>
<?php $link = "http://"; //ccылка на опрос $otvet = "13"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $link); curl_setopt($ch, CURLOPT_POST, 1); //будет POST curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_POSTFIELDS, "choice=$otvet"); curl_exec($ch); curl_close($ch); echo "ok\n"; ?>
Извиняюсь, завтыкал. Если этот токен не меняется при каждом обновлении страницы - должно работать. <?php $link = "http://"; //ccылка на опрос $otvet = "13"; //ответ $res = file_get_contents($link); preg_match("#value='(.*?)' />#", $res, $t); $t=$t[1]; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $link); curl_setopt($ch, CURLOPT_POST, 1); //будет POST curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_POSTFIELDS, "csrfmiddlewaretoken=$t&choice=$otvet"); curl_exec($ch); curl_close($ch); echo "ok\n"; ?>
Security-токены вообще-то созданы для защиты от CSRF и меняются при каждом обновлении страницы / сессии.
Та я это уже понял... 1 запрос чтобы сграбить токен 2 запрос - POST с данными И на втором запросе уже генерируется другой токен. Как можно решить эту проблему?
Повторю то, что я написал выше. При втором запросе сгенерируется НОВЫЙ токен, а старый, сграбленый при первом запросе будет уже не действителен. Тоесть: $res=file_get_contents($link); //скачиваем страницу preg_match("#value='(.*?)' />#", $res, $t);$t=$t[1]; //вытаскиваем токен №1 Теперь делаем POST запрос, отправляем нужные данные, и токен. $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $link); curl_setopt($ch, CURLOPT_POST, 1); //будет POST curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_POSTFIELDS, "csrfmiddlewaretoken=$t&choice=$otvet"); curl_exec($ch); //А вот здесь отправляется запрос с токеном №1, но так как идет обращение к тому же скрипту, то генерируется токен №2, а первый становится НЕ ДЕЙСТВИТЕЛЬНЫМ. curl_close($ch);