Ich versuche, einen Wert von einer Anmeldeseite an eine andere Seite zu übergeben.Kann Variable nicht halten
Von der Login-Seite gelangt die erfolgreiche Anmeldung den „username“ zurück zur Startseite:
print redirect("http://example.com/cgi-bin/asg2/Assignment2.plx?x=$login");
Die Haupt-Seite erhält die Variable wie folgt:
my $y = param ("x");
und druckt es mit diese Aussage:
if ($y){
print "$y";} else {print "Please log in";}
Wenn ich zuerst umgeleitet werde, wird $ y mit nein gedruckt Probleme. Jedoch, wenn ich ein Formular in der Haupt-Seite ausführen:
<form method="POST" action="http://examplecom/cgi-bin/asg2/Assignment2.plx">
<div id="choices">
<h2>Make a Choice</h2>
<input class="css-checkbox" id="Kadinski1" name="Painting" type="radio" value="Autumn in Bavaria -Wassily Kandinsky" /><span id="Kad1">Autumn in Bavaria</span><br />
<input id="Kadinski2" name="Painting" type="radio" value="Movement I - Wassily Kadinsky" /><span id="Kad2">Movement I</span><br />
<input id="Tamara1" name="Painting" type="radio" value="Autoportrait - Tamara De Lempicka" /><span id="Tam1">Autoportrait</span><br />
<input id="Tamara2" name="Painting" type="radio" value="Group of Four Nudes - Tamara De Lempicka" /><span id="Tam2">Group of Four Nudes</span><br />
<input id="Frida1" name="Painting" type="radio" value="Moses - Frida Kahlo" /><span id="Fri1">Moses</span><br />
<input id="Frida2" name="Painting" type="radio" value="What the Water Gave Me - Frida Kahlo" /><span id="Fri2">What the Water Gave Me</span><br />
<input id="Vincent1" name="Painting" type="radio" value="Skull of a Skeleton with a Burning Cigarette - Vincent van Gogh" /><span id="Vin1">Skull of a Skeleton with a Burning Cigarette</span><br />
<input id="Vincent2" name="Painting" type="radio" value="Cafe Terrace on the Place du Forum - Vincent van Gogh" /><span id="Vin2">Cafe Terrace on the Place du Forum</span><br />
<input id="Salvador1" name="Painting" type="radio" value="Swans Reflecting Elephants - Salvador Dali" /><span id="Sal1">Swans Reflecting Elephants</span><br />
<input id="Salvador2" name="Painting" type="radio" value="The Persistence of Memory - Salvador Dali" /><span id="Sal2">The Persistence of Memory</span><br />
<br />
<input type="submit" value="Submit">
<br />
<br />
</div>
</form>
es kann nicht den Wert von $ y halten und druckt die „else“ Anweisung egal, was ich tue. Bitte helfen Sie!
Sie müssten den Benutzernamen auch als Parameter senden, wenn Sie das Formular absenden, z. indem man es in ein verstecktes Formularfeld legt. Aber Session-Management ist ein großer Schmerz in CGI.pm; Sie sollten ein Framework mit integrierter Sitzungsverwaltung verwenden, wie [Dancer2] (https://metacpan.org/pod/Dancer2), [Mojolicious] (https://metacpan.org/pod/Mojolicious), [Catalyst]. (https://metacpan.org/pod/Catalyst) oder sogar [CGI :: Application] (https://metacpan.org/pod/CGI::Application). – ThisSuitIsBlackNot
Wie lautet der Aktionswert im Formular-Tag? – adrianp
Das Formular hat keine Eingabe mit dem Namen 'x', also wird '$ y' natürlich nie gesetzt. – ikegami