Variablen in perl übergeben
Kirstin
- perl
hallo,
kann mir jemand weiterhelfen?
ich möchte von einem perlprogramm in ein anderes eine variable übergeben(an die url anhängen)und probiere schon seit stunden.
hilft mir jemand?
grüße, kirstin
Hi,
ich möchte von einem perlprogramm in ein anderes eine variable übergeben(an die url anhängen)und probiere schon seit stunden.
es existiert _kein_ Weg, in _keiner_ Sprache, per URL irgendwelche Variablen zu übergeben. Das sind Parameter. Sie haben programmtechnisch nicht die geringste Bedeutung. Jede Programmlogik hat die Möglichkeit, die Parameter auszuwerten und in variablenähnlicher Form zur Verfügung zu stellen. Wer jedoch per se Variablen erwartet, wird niemals zum Erfolg kommen.
Die sehr schöne Schnittstelle in Perl, um die Parameter und -werte zu erhalten, ist beschrieben in
perldoc CGI
Cheatah
mir der url übergeben meinte ich diese art wie es in php problemlos funtioniert.
<a target="Links2" href="<?php $start = "start.php?nummer=" . $nummer; echo urldecode($start); PHP?>">
kirstin
Hi,
mir der url übergeben meinte ich diese art wie es in php problemlos funtioniert.
dann ist Dein PHP fehlkonfiguriert und stellt somit ein Sicherheitsrisiko dar. Mehr findest Du im Archiv. Übrigens redete ich vom exakt selben.
Cheatah
also zum rätselraten hab ich heute bestimmt keine lust mehr.
mir kommt es vor als das du es selber nicht weißt, deswegen ist kein kommentar oft besser.
dann gute nacht!!!
Hi,
also zum rätselraten hab ich heute bestimmt keine lust mehr.
das brauchst Du auch nicht, ich hab Dir schließlich schon in der ersten Antwort gesagt, wo Du die Lösung nachlesen sollst.
mir kommt es vor als das du es selber nicht weißt, deswegen ist kein kommentar oft besser.
Inquiry: Laus, Leber? Denk bitte nebenbei auch darüber nach, wer hier was von wem will.
Cheatah
Hi,
dann ist Dein PHP fehlkonfiguriert und stellt somit ein Sicherheitsrisiko dar. Mehr findest Du im Archiv. Übrigens redete ich vom exakt selben.
Diese Aussage ist nicht richtig. PHP ist korrekt konfiguriert - jedoch nicht sicher. Eine Fehlkonfiguration hätte zur Folge, das PHP nicht funktionieren würde.
Es ist - mal abgesehen von der Pedanterie - absolut nicht zu empfehlen diese Konfigurationseinstellung beizubehalten, da sie ein massives Sicherheitsproblem darstellt.
Gruß
Axel
Hi,
dann ist Dein PHP fehlkonfiguriert und stellt somit ein Sicherheitsrisiko dar. Mehr findest Du im Archiv. Übrigens redete ich vom exakt selben.
Diese Aussage ist nicht richtig. PHP ist korrekt konfiguriert - jedoch nicht sicher. Eine Fehlkonfiguration hätte zur Folge, das PHP nicht funktionieren würde.
okay, einverstanden. Meiner Ansicht nach ist das Einkonfigurieren eines Sicherheitsrisikos ein Fehler; dies als Fehlkonfiguration zu bezeichnen ist aber in der Tat unkorrekt. Ich gelobe Besserung.
Cheatah
Hallo,
Kleine Korrektur:
Es ist möglich, serialisierte Variablen zu übergeben. Dabei bleibt Typisierung und Wert erhalten. Sogar das Referenzieren einer entfernt liegenden Variable ist möglich. (s. .NET-Remoting - hier wird auf Wunsch SOAP als Transporthülle verwendet)
Das geht nicht mit Perl - hier werden lediglich "Übergabeparameter" gesendet, die in Varaiblen trasnferiert werden. Es ist nicht o.w. möglich hier eine Typisierung zu übermitteln. Auch das Referenzieren einer entfernt liegenden Variablen ist nicht o.w. möglich.
Mittels PHP wäre es möglich ein Objekt zu serialisieren und als Parameter zu übergeben - auf der Empfängerseite müsste das Objekt dann wieder deserialisiert werden.
Gruß
Axel
ich gehe mal davon aus das
use CGI qw(standard); #kein problem ist
dann:
$query = new CGI;
mit:
$wert = $query->param('wert')
erhälst du dann den wert von wert :)
Dabei ist es egal ob die werte via URL oder POST (Formular) ankommen. Das macht das modul automatisch.
Übergen geht ganz prima via hidden fledern in Formularen
<input type="hidden"> name="wert" value="100">
oder du hängst es nach einem fragezeichen an die URL an
index2.html?wert=100
mehrere Parameter werden mit dem & Zeichen getrennt.
index2.html?werta=100&wertb=200
Hast du freitext den du übermitteln wilst solltest du diesesn "escapen". Das geht mit dem modul:
use URI::Escape;
$safe = uri_escape($wert);
--> print "index2.html?wert=$save";
achja schalt den Taint modus an.
#!/usr/bin/perl -T
oder sorge dafür das du alle parameter die dein script empfängst genau überprüfst.
Perl is like nuclear power... it can be used for god or evil.
(Frei nach Scott Adams)
RTFM:
perldoc CGI
perldoc URI::Escape
Immer gut wenns möglich ist: www.masonhq.com