WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Cookies && perl ? möglich? (http://www.wcm.at/forum/showthread.php?t=76228)

Uurtyp 06.11.2002 23:00

Cookies && perl ? möglich?
 
Hi!

leute ich hab ein riesen problem mit den scheiss cookies in perl.

Ich fang mal so an.
Ist es mit perl irgendwie möglich, einem cookie einen speziellen namen zu vergeben? ich weiss das das in PHP und überall anders geht. Nur in perl finde ich diese möglichkeit nicht.
-> wird immer ein cookie "user@domain" erstellt.
da unter dieser domain aber mehrere cookies existieren, möchte ich meines speziell nennen. So das ich dann "name@domain" habe. Ist das irgendwie möglich?
weil falls ja, erspare ich mir und euch das lange und komplizierte erklären von den weiteren problemen. Damit wäre glaube ich alles gelöst ;)

Ach ja - und wenn das geht, wie kann ich dann speziell DIESES cookie wieder abfragen bzw prüfen ob es überhaupt existiert?

plz help
thx
Uurtyp

_m3 07.11.2002 08:13

cgi.pm http://stein.cshl.org/WWW/CGI/#cookies
PHP-Code:

    $cookie $query->cookie(-name=>'sessionID',
                 -
value=>'xyzzy',
                 -
expires=>'+1h',
                 -
path=>'/cgi-bin/database',
                 -
domain=>'.capricorn.org',
                 -
secure=>1);
    print 
$query->header(-cookie=>$cookie); 

Ein größeres Beispiel: http://stein.cshl.org/WWW/docs/hando...e_with_Cookies

Uurtyp 07.11.2002 08:22

hm ja so habe ich das eh
nuuur
jetzt legt er ein cookie an, das wie folgt heisst

name des in Win eingeloggted user @ domain.txt

ich wollte dass das cookie dann zB:
sessionID@domain.txt heisst - oder so.

Aber gut - sollte das nicht gehen ist es nicht soo tragisch
dann brauche ich allerdings irgendne hilfe, wie ich das abfrage

ich habe er derzeit so

if(%cookies = CGI::Cookie->fetch)
{
#werte zuweisen
$ID = $cookies{sessionID}->value;
}

Das ganze funkioniert einwandfrei, solange ich der einzige bin, der cookies unter der domain macht.
Auf dem server machen aber mehrere cookies
-> geht das fetchen nat. gut - auch wenn ich noch keines erzeugt habe.
und dann kommt jedes mal die fehlermeldung beim wertezuweisen, dass er nicht auf value von sessionID zugreifen kann.
klar - die existiert ja auch nicht
-> wie checke ich dann ab ob MEIN cookie vorhanden ist?

danke für deine Hilfe!

Uurtyp

_m3 07.11.2002 08:29

Zitat:

Original geschrieben von Uurtyp
jetzt legt er ein cookie an, das wie folgt heisst

name des in Win eingeloggted user @ domain.txt

ich wollte dass das cookie dann zB:
sessionID@domain.txt heisst - oder so.

Moooment! ;)
Was für ein Server? Welche Authentifizierung?

Uurtyp 07.11.2002 08:36

ähm

linuxserver (debian) auf dem apache läuft
authentifizierung? .. gute frage
i verwend .htaccess ... wenn das deine frage beantwortet.
auf meinem linuxkübel halt
nur da is es mir auch egal wenn es so läuft, weil da hab ich nur ein cookie

aber auf nem offiziellen win2k server, läuft IIS
aber ich glaub das er die cookies so anlegt liegt an perl ned am server. weil das macht er bei beiden gleich

käptn 07.11.2002 11:55

Asooooooooooooooooooo....

Annahme:
Du verwendest IE?


Der IE speichert alle Cookies einer Domain in einer Textdatei die er [winuser]@domain nennt.

Darin sind AFAIK alle Cookies dieser Domain separat enthalten.

HTH

~

Uurtyp 07.11.2002 12:02

ahaaaaaaaaaaaaaaaaaaaaa

annahme bestätigt ;)
echt ? das war aber nicht schon immer so oder?
hmmm however

ich muss trotzdem no abchecken ob ein bestimmtes cookie vorhanden ist oder nicht. wie mache ich das?

thx
Uurtyp

_m3 07.11.2002 13:04

To retrieve the names of all cookies passed to your script, call cookie() without any parameters. This allows you to iterate through all cookies:
PHP-Code:

    foreach $name ($query->cookie()) {
            print 
$query->cookie($name);
        } 


Uurtyp 07.11.2002 18:40

hmm
warum hast du php geschrieben? eigentlich is das perl - oda funzt das bei beiden gleich?

egal - habs probiert wie unten dann folgt.
nur es fetzt ihn immer mit der meldung:
Can't call method "value" on an undefined value at checkCookie.pm line 24.

das is genau dort, wo er nur reingehen sollte wenn das cookie existiert - nachdem ich nicht eingelogged bin, ist das nicht der fall -> crashed er.

hier mal meine funktion die das ganze handeln sollte:

sub checkCookie
{ $loggedin = 0;

$cgi = new CGI;

#pruefen ob ein Cookie mit dem Namen "schui" existiert
foreach $cookie (CGI::cookie())
{
if ($cookie == "schui")
{
$loggedin = 1;
}
}

if ($loggedin == 1)
{

# Cookie fetchen und Inhalte zuweisen
%cookies = CGI::Cookie->fetch;
line 24 -----> $user = $cookies{user}->value;
$pw = $cookies{pw}->value;
$admin = $cookies{level}->value;
$login = "1";
return ($login, $user, $pw, $admin);
}
}
return "true";

hoffentlich seht ihr den fehler
dank euch vielmals
mfg
Uurtyp


Alle Zeitangaben in WEZ +2. Es ist jetzt 03:47 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag