SP1LOP Temat założony przez niniejszego użytkownika |
Jak zapisać definicje cyfr lub liter » 2014-06-03 11:46:00 Witam Korzystam z pewnego programu *.cpp z którym mam problem z SPAM'em z automatów mianowicie mam taką wersję części pliku: http.cpp Próbuje zdefiniować czy 2 znak w w zmiennej lt to cyfra czy litera if (lt[1] == 'A') subj = ""; jeśli występuje litera na drugiej pozycji to 'subj' ma być pusty "" lub inaczej jeśli na 2 - 4 pozycji nie znajdują się cyfry to 'subj' jest puste: "" { if( !to ) to = ""; if( !lt ) lt = ""; if( !subj ) subj = ""; html_putf( "<h2><i>%s</i></h2>\n", ms( m_http_sendmail ) ); html_putf( "<pre><form method=post action=\"/sendok\">\n" ); if( !strcmp( to, m.sysopcall ) ) { if( !m.httpshowsysopcall ) html_putf( "%20s: <input type=\"text\" name=\"to\" " "value=\"\" size=30><BR>", ms( m_http_to ) ); else html_putf( "%20s: %s <input type=\"hidden\" <name=\"to\" " "value=\"%s\" size=8><BR>", ms( m_http_to ), to, to ); } else html_putf( "%20s: <input type=\"text\" name=\"to\" " "value=\"%s\" size=30><BR>", ms( m_http_to ), to ); html_putf( "%20s: <input type=\"text\" name=\"life\" " "value=\"%s\" size=3 maxlenght=3><BR>", ms( m_http_lifetime ), lt ); html_putf( "%20s: <input type=\"text\" name=\"subj\" " "value=\"%s\" maxlenght=36 size=37>\n", ms( m_http_subject ), subj );
|
|
pekfos |
» 2014-06-03 12:31:15 isalpha(), isdigit(), isalnum(). |
|
SP1LOP Temat założony przez niniejszego użytkownika |
» 2014-06-03 14:56:04 Nie wiem jak to zrobić proszę o podpowiedź: isalpha(), isdigit(), isalnum(). |
proszę o podpowiedz jak to mam zapisać ja próbowałem tak: if (lt[1] == 'A') subj = ""; |
Jeśli można jakiś przykład bardzo proszę ciężko mi się myśli (76l) nie mogę sobie przypomnieć ... >>> |
|
michal11 |
» 2014-06-03 17:23:34 if( isdigit( lt[ 1 ] ) ) { }
Nie wiem tylko czy akurat o funkcję isdigit chodzi w tym konkretnym przypadku. Ale tak się korzysta z każdej z wymienionych przez pekfosa funkcji. |
|
SP1LOP Temat założony przez niniejszego użytkownika |
» 2014-06-04 01:00:38 if( isdigit( lt[ 1 ] ) ) { } Chodzi o to aby system sprawdzał dla pola INPUT o nazwie lt (lifetime <- czas żywotności maila, max wartość to 999 wiadomość nie będzie automatycznie kasowalna) tu trzeba sprawdzać czy są cyfry czy litery Jeśli są litery (to wystarczy wyzerować tytuł: 'subj' <- Subject jeśli jest puste czyli "" to wiadomość nie zostanie zapisana, a jeśli się w 'lt' pojawią litery to tytuł wiadomości powinien być pusty: "" i tu wpisałem warunek: if( lt[ 1 ] == 'A' ) subj = "";
'A' tu trzeba by zdefiniować czy na pozycji 1-2-3-ciej w lifetime 'lt' jest litera lub ciąg liter, jeśli tak to trzeba wyzerować tytuł: 'subj' a potem wykonać dalsze linie, kodu cpp jaki podałem... Mam problemy z wyjaśnieniem o co mi chodzi... Chodzi o system wysyłania maila do SysOp'a... Automaty 'SPAM'erskie nie widzą tej części INPUT lt i wysyłają tekst dlatego otrzymuję SPAM'y. A gdyby to kontrolować jak wystąpią w 'lt' Litery to wyzerować tytuł.. Mail bez tytułu nie zostanie wysłany do SysOp'a... Można to zobaczyć jak wygląda na linku: http://www.sr1bsz.ampr.org:8088/send |
|
SP1LOP Temat założony przez niniejszego użytkownika |
» 2014-06-10 17:39:54 No niestety nie wiem jak to zrobić więc zrobiłem to inaczej, zmieniłem zamiast jako pierwsze dać 'reset' potem 'submit' a nie jak było pierwsze było 'submit' potem 'reset' i chyba to się udało, na razie nie mam spamu z automatów... html_putf( "<br> <input type=\"reset\" value=\"%s\">", ms( m_http_clearform ) ); html_putf( " <input type=\"submit\" value=\"%s\">", ms( m_http_sendmail ) ); html_putf( "\n</form></pre>\n" );
Dalej nie wiem jak zapisać w C++ aby można wpisywać, tylko cyfry dla 'LT' html_putf( "%20s: <input type=\"text\" name=\"life\" " "value=\"%s\" maxlength=\"3\" size=\"2\"><br>", ms( m_http_lifetime ), lt );
Chodzi o te 3 znaki.... dopuszczalne tylko są cyfry a nie litery... Temat uważam za zamknięty... Pozdrawiam wszystkich... Jakby ktoś rozwiązał ten problem bardzo proszę o info maile też do mnie nie tylko tu.. |
|
maly |
» 2014-06-10 19:27:51 #include<iostream> #include <cstdlib>
int main() { char * lt = "12384a"; char * resend; long l = std::strtol( lt, & resend, 10 ); if( * resend != 0 ) { std::cout << "nie liczba" << std::endl; } else { std::cout << "liczba " << l << std::endl; } return 0; } |
|
SP1LOP Temat założony przez niniejszego użytkownika |
» 2014-06-13 21:43:16 Użytkownik 'maly' podał przykład jak wyżej, ale to za mądre jak na obecna moja chwilę.... Nie bardzo widzę ten przykład jako wstawkę do części całości http.cpp. Może prościej użycie byłoby "captcha" mam prostą wersje w php a ale wpisuje się to jest ok, po wywołaniu pokazuje obrazek z kodem który trzeba wpisać,.. a potem trzeba wywołać inną cześć co sprawdza poprawność, to tego nie wiem jak zrobić sprawdzanie czy poprawny kod a jak nie to reset danych w pliku...
No chyba tak pozostawię nie dam rady... A może usunę możliwość wysyłania maili, do sysopa...
Pozdrawiam |
|
« 1 » |