Pokaż wyniki 1 do 2 z 2

Temat: use CGI - generowanie stron (start_html)???

  1. #1
    Zarejestrowany
    Oct 2007
    Postów
    11

    Question use CGI - generowanie stron (start_html)???

    Witam mam zapytanie,
    mój skrypt ma czytac informacje zawarte w formularzu i
    zapisywac je do pliku, po czym generowac strone z informacjami o
    popelnionych bledach w formularzu badz powodzeniu rejestracji.
    Skrypt tworzy LOGFILE z danymi wprowadzonymi w formularzu lecz,
    nie generuje stronki z potwierdzeniem.
    W moim edytorze perla po uruchomieniu skryptu pojawia się komunikat:

    Cant locate object method "start_html" via package "obiektCGI" at...
    print obiektCGI->start_html('WoW'); lub print obiektCGI->h2 i inne

    moj skrypt:

    #!/cgi-bin/perl/bin/perl
    use CGI;
    $obiektCGI=new CGI;
    $uzytkownik=$obiektCGI->param("uzytkownik");
    $email=$obiektCGI->param("email");
    $wiek=$obiektCGI->param("wiek");
    print $obiektCGI->header(-charset=>'iso-8859-2');
    if (&sprawdzDane())
    {&zapiszDane()}
    else
    {&bladDanych()}
    sub sprawdzDane()
    {
    $blednePola="";
    $formularzPoprawny=1;
    $polePoprawne=$uzytkownik=~/^[a-zA-Z]+$/;
    unless ($polePoprawne)
    {
    $blednePola.="Uzytkownik, ";
    $formularzPoprawny=1;
    }
    $polePoprawne=$email=~/[a-zA-Z\-]+\@[a-zA-Z\-]+\.[a-zA-Z\-]+/;
    unless ($polePoprawne)
    {
    $blednePola.="Email, ";
    $formularzPoprawny=1;
    }
    return $formularzPoprawny
    }
    sub bladDanych()
    {
    chop($blednePola);
    print obiektCGI->start_html(
    -TITLE=>"Problem z rejestracją",
    -BGCOLOR=>"white");
    print $obiektCGI->h2(
    "Następujące Pola zle:<BR>");
    print obiektCGI->h3("$blednePola<BR>");
    print "Wróc i popraw";
    print obiektCGI->end_html();
    }
    sub zapiszDane()
    {
    unless (open(LOGFILE,">>rejestr.log"))
    {
    print "Wystapily problemy pry otwieraniu";
    exit;
    }
    seek(LOGFILE, 0, 2);
    print LOGFILE "$uzytkownik\t\t\t$email\t\t\t$wiek\n";
    unless (close(LOGFILE))
    {
    print "Blad przy zamykaniu";
    exit;
    }
    print obiektCGI->start_html('WoW');
    print obiektCGI->h2('Rejestracja zakonczona pomyslnie');
    }

    Inny problem to:
    Błąd: use of uninitialized value in pattern match (m//) at...line16

    15 $formularzPoprawny=1;
    16 $polePoprawne=$uzytkownik=~/^[a-zA-Z]+$/;
    17 unless ($polePoprawne)

    Z góry dziękuje za pomoc.
    PS. perl 5.6...; CGI.pm jest.

  2. #2
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    1. nie obiektCGI tylko $obiektCGI
    2. robisz z kodu straszne spaghetti - popatrz co daje perltidy (kawalek dalej)
    3. regex do sprawdzania maila nie bedzie /[a-zA-Z\-]+\@[a-zA-Z\-]+\.[a-zA-Z\-]+/ tylko /^[\w\-\.]+\@[\w\-]\.[\w\-\.]+$/ - lewa strona moze zawierac znak kropki (choc RFC o twierdzi ze nie to wiele osob ma takie maile) domena musi skladac sie z 2 czesci minimum (lub wiecej) dlatego dalem w drugiej czesci kropke... no i ^ oraz $ jako domkniecia... ostatni w sumie koncowke mozna zapisac jako \.[\w\-]+/ i tez bedzie ok...
    4. Sugerowalbym korzystaz z modulu Email::Valid - tam calosc zostala swietnie rozpracowana... bo co zrobi Twoj regex gdy podam 2 maile w polu? Stwierdzi ze ok... albo moge wstawic cos co rozwali email ale skrypt to przelknie.

    P.S.
    Wyjscie z perltidy wyglada mniej wiecej tak (przykladowy fragment):

    Kod:
    sub bladDanych() {
        chop($blednePola);
        print $obiektCGI->start_html(
            -TITLE   => "Problem z rejestracja",
            -BGCOLOR => "white"
        );
        print $obiektCGI->h2("Nastepujace Pola zle:<BR>");
        print $obiektCGI->h3("$blednePola<BR>");
        print "Wróc i popraw";
        print $obiektCGI->end_html();
    }
    ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)

Podobne wątki

  1. Zapytanie (Rankingi Stron Mp3)
    By desire121 in forum Newbie - dla początkujących!
    Odpowiedzi: 11
    Autor: 11-08-2007, 19:19
  2. Rejestrowanie stron - wypowiedzcie sie
    By northdakota in forum Off Topic
    Odpowiedzi: 40
    Autor: 09-01-2007, 13:27
  3. Nauka zakładania stron www.
    By DiabloII in forum Newbie - dla początkujących!
    Odpowiedzi: 5
    Autor: 06-10-2007, 18:48
  4. Powolne ładowanie się stron-Serwer Proxy
    By fedor in forum TCP/IP/Analiza/Badanie
    Odpowiedzi: 4
    Autor: 04-23-2007, 12:49
  5. Wczytywanie stron
    By northdakota in forum HTML/DHTML/XHTML
    Odpowiedzi: 6
    Autor: 03-15-2007, 17:06

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52