Witam.
Mam problem z zapisywaniem wiadomości wysyłanych do bota w plik .txt. Chciałbym, aby każda wiadomość była zapisywana w nowym wierszu. Świetnie byłoby, jakby jeszcze do tego był dodawany numer osoby piszącej. Problem polega na tym, że udaje mi się tylko zapisywać jedną linię ciągłą i takie coś jest kompletnie nieczytelne. Zrobiłem to tak:
Potem próbowałem, aby każda wiadomość była w nowej linii dodając $HTTP_RAW_POST_DATA = "\n"; ale to jedynie skutkowało tworzeniu się nowych pustych linii.
Nie wiem jak to rozwiązać.
Od razu mam też drugie pytanie.
Chciałem zrobić zagnieżdżanie warunków, gdzie spełnieniem warunku byłoby odpowiadanie na pytanie - coś w rodzaju quizu. Aby móc później to rozwinąć, na przykład za odpowiedź dać punkt chciałem rozbić switch, gdyż wcześniej na tym to opierałem. Wadą switcha jest to, że na przykład można było udzielić odpowiedzi na następne pytanie, a z warunkiem if wyobrażałem to sobie, że nie jest możliwe przejście do następnego pytania bez poprawnej odpowiedzi na aktualne. Również możliwe jest wtedy napisanie kilka wariantów odpowiedzi, tzn. że nie musi się akurat zaczynać wielką literą, bądź małą, czyli można to uwzględnić poprzez || w warunku.
Przykład jak chciałem to rozwiązać, a nie wychodzi:
Przy czym "zaczynamy" jakby rozpoczyna "moduł" quizu. Niestety to nie działa tak jak myślałem. Chyba zachodzi kolizja w $HTTP_RAW_POST_DATA. Domyślanie chciałem, aby po "zaczynamy" następowało pytanie. Udzieleniem dobrej odpowiedzi, a więc spełnienie następnego warunku przenosi do następnego pytania i następny warunek. A więc zagnieżdżone w sobie if.
A może inaczej to rozwiązać? Może kombinacja if i switch?
Dziękuję z góry.
Mam problem z zapisywaniem wiadomości wysyłanych do bota w plik .txt. Chciałbym, aby każda wiadomość była zapisywana w nowym wierszu. Świetnie byłoby, jakby jeszcze do tego był dodawany numer osoby piszącej. Problem polega na tym, że udaje mi się tylko zapisywać jedną linię ciągłą i takie coś jest kompletnie nieczytelne. Zrobiłem to tak:
Kod php:
$dane = $HTTP_RAW_POST_DATA;
$file = "informacje.txt";
$fp = fopen($file, "a+");
fwrite($fp, $dane);
fclose($fp);
Nie wiem jak to rozwiązać.
Od razu mam też drugie pytanie.
Chciałem zrobić zagnieżdżanie warunków, gdzie spełnieniem warunku byłoby odpowiadanie na pytanie - coś w rodzaju quizu. Aby móc później to rozwinąć, na przykład za odpowiedź dać punkt chciałem rozbić switch, gdyż wcześniej na tym to opierałem. Wadą switcha jest to, że na przykład można było udzielić odpowiedzi na następne pytanie, a z warunkiem if wyobrażałem to sobie, że nie jest możliwe przejście do następnego pytania bez poprawnej odpowiedzi na aktualne. Również możliwe jest wtedy napisanie kilka wariantów odpowiedzi, tzn. że nie musi się akurat zaczynać wielką literą, bądź małą, czyli można to uwzględnić poprzez || w warunku.
Przykład jak chciałem to rozwiązać, a nie wychodzi:
Kod php:
$początek = "zaczynajmy";
$początek2 = "Zaczynajmy";
$odp = "tak";
$odp2 = "nie";
if(($początek == $HTTP_RAW_POST_DATA) || ($początek2 == $HTTP_RAW_POST_DATA)) {
$M->addText("Oczywiście. Czy ptaki latają? A. Nie \n B. Tak");
if($odp = $HTTP_RAW_POST_DATA) {
$M->addText("Dobrze. Następne pytanie...");
}
if( $coś tam = $HTTP_RAW_POST_DATA) {
$M->addText("I tak dalej...");
}
}
else {
$M->addBBcode('Napisz [u]zaczynajmy[/u]');
};
A może inaczej to rozwiązać? Może kombinacja if i switch?
Dziękuję z góry.
Komentarz