Visualizzazione dei risultati da 1 a 4 su 4

Discussione: passare un oggetto?

  1. #1

    passare un oggetto?

    Ho in una sub la funzione per controllare se un user è loggato,ma la funzione è in una libreria esterna...

    il mio script inizia cosi':
    codice:
    use cgi;
    require "...";
    my $q = new CGI();
    &check_login;
    ...
    ma al momento di &check_login; mi va in errore lo script dicendomi che la funzione cookie non esiste...

    questo è il codice nella libreria:
    codice:
    sub check_login {
    
      my $are_you_logged = $q->cookie(-name=>'MYSIMPLENEWS', -path=>'/cgi-bin/MYSIMPLENEWS/');
    
      if ($are_you_logged ne "y")
      {
       print $q->header();
       print qq~<html>You are not logged!</html>~;
       exit(0);
      }
      
      return;
    }
    1;
    sono bloccato e non sò come andare avanti...qualche consiglio?!

    Grazie!

  2. #2
    Puoi fare in due modi, il primo più facile ma deprecato:

    use strict;
    use vars qw($q $altre_variabili_globali);
    use cgi;
    require "...";
    $q = new CGI();
    &check_login;

    il secodo molto più sicuro:

    use strict;
    use cgi;
    require "...";
    my $q = new CGI();
    &check_login($q);
    ........
    sub check_login {
    my $q = shift;
    my $are_you_logged = $q->cookie(-name=>'MYSIMPLENEWS', -path=>'/cgi-bin/MYSIMPLENEWS/');

    if ($are_you_logged ne "y")
    {
    print $q->header();
    print qq~<html>You are not logged!</html>~;
    exit(0);
    }

    return;
    }
    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
    Approposito del tuo metodo...

    codice:
    use strict; 
    use cgi; 
    require "..."; 
    my $q = new CGI(); 
    &check_login($q); 
    ........ 
    sub check_login { 
    my $q = shift;
    andrebbe bene se invece facessi...?

    codice:
    use strict; 
    use cgi; 
    require "..."; 
    my $q = new CGI(); 
    &check_login(\$q); 
    ........ 
    sub check_login { 
    my $q = shift;
    my $valore = $$q->param

  4. #4
    funzionerebbe, ma non ha molto senso. $q è GIA' un reference, per cui non faresti altro che creare un reference ad un reference.
    Marco Allegretti
    shishii@tiscalinet.it
    Lang: PERL, PHP, SQL.
    Linux user n° 268623 Fedora Core 10, Fedora Core 6, Debian Sarge on mips

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 © 2024 vBulletin Solutions, Inc. All rights reserved.