Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Aiuto per uno script.cgi

    Ciao,

    Ho approntato uno script per aggiungere automaticamente delle pagine web ad un sito;in pratica lo script dovrebbe prelevare un numero di titoli a random da un file di testo chiamato key_list.txt e sottoporli all'apposito form di un pannello di controllo, sempre cgi, che provvede a trasformarli in pagine web vere e proprie.Lo script in questione dovrebbe funzionare con un cron job così da aggiungerne un tot al giorno e restituirmi il relativo output: In realtà ciò che accade è che tutto funziona, l'output conferma il numero e il titolo delle pagine create, ma quando entro nel pannello di controllo,delle pagine nessuna traccia...
    Ho ripassato lo script un milione di volte ma non riesco a capire l'errore...

    C'è qualcuno che può darmi gentilmente una mano?

    Questo è lo script, testato in localhost (ma l'ho già testato su un vero server):

    #!perl


    # Configurazione

    # password cpanel

    $password = 'blabla';

    # url del cpanel

    $admin_url_base = 'http://localhost/cgi-bin/sector/test/control.cgi';

    # cartella file del cpanel

    $data_dir = 'data';


    # numero minimo di pagine

    $minpages = 1;

    # numero massimo di pagine

    $maxpages = 5;

    # path allo script

    $fullpath = '/indigoperl/apache/cgi-bin/sector/test/';


    ##### script #####

    use CGI::Carp qw (fatalsToBrowser);
    use HTTP::Request::Common qw(POST);
    use LWP::UserAgent;
    $ua = LWP::UserAgent->new;

    $keywords = 'key_list.txt';
    $klist = '';
    $admin_url = $admin_url_base . '?createpages';
    open (KEYS, "<$fullpath$keywords");
    @kd = <KEYS>;
    close (KEYS);

    srand();
    $range = $maxpages - $minpages;
    $random_number = int(rand($range)) + $minpages;

    for ($a=1;$a<=$random_number;$a++){
    $klist .= shift(@kd);
    }
    chomp($klist);

    @completed = split(/\n/,$klist);

    open (KEYS, ">$fullpath$keywords");
    print KEYS @kd;
    close (KEYS);

    $req = (POST $admin_url,
    [
    'pass' => $password,
    'dataflag' => '1',
    'pagenames' => $klist
    ]);

    $response = $ua->request($req);

    print "Content-type: text/html\n\n";
    print "Number of pages created: $random_number
    \n";
    foreach(@completed){
    print $_."
    \n";
    Grazie per l'aiuto

    Ciao!

  2. #2
    Sei sicuro che sia esatto:
    $fullpath = '/indigoperl/apache/cgi-bin/sector/test/'; ?

    questo non mi convince:
    $req = (POST $admin_url,
    [
    'pass' => $password,
    'dataflag' => '1',
    'pagenames' => $klist
    ]);

    trattandosi di unhash dovrebbe essere:

    $req = (POST $admin_url,
    {
    'pass' => $password,
    'dataflag' => '1',
    'pagenames' => $klist
    });
    Marco Allegretti
    shishii@tiscalinet.it
    Lang: PERL, PHP, SQL.
    Linux user n° 268623 Fedora Core 10, Fedora Core 6, Debian Sarge on mips

  3. #3
    Ciao,

    Grazie intanto per la risposta.

    Ho provato la graffa per l'hash ma niente.

    La variabile $fullpath è corretta:Il file key_list.txt è caricato nella stessa directory dello script.E infatti lo script in sè, sembra funzionare correttamente, dal momento che ad ogni "chiamata" genera un report con numero e nome delle pagine create le quali vengono regolarmente cancellate dal file originale.
    Ho più che altro l'impressione che fallisca il login al pannello di controllo:
    O che una volta logato non trovi il file di testo da sovrascrivere.
    Lo script,infatti,sarebbe stato inteso come un "helper":una volta prelevati i titoli che gli occorrono,dovrebbe fare login ad un pannello di controllo all'url $admin_url_base e copiarli su un altro file di testo appositamente richiamato...
    Dove sbaglio?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.