Thread Mojolicoius: POST-Daten abgreifen (6 answers)
Opened by Molaf at 2014-10-08 09:59

Molaf
 2014-10-08 09:59
#177711 #177711
User since
2007-10-11
119 Artikel
BenutzerIn
[default_avatar]
Hallo,

ich nutze grade zum ersten mal mit Mojolicious ein Formular und übertrage POST Daten. Dummerweise kann ich anschliessend im Controller nicht mehr drauf zugreifen.

Der Code:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#!/usr/bin/env perl
use Mojolicious::Lite;

# Documentation browser under "/perldoc"
plugin 'PODRenderer';

get '/' => sub {
  my $c = shift;
  $c->render('index');
};

post '/lo' => sub {
  my $c = shift;
  my @params = $c->req->body_params;
  $c->stash('all_post_params'=> join(',',@params) );
  
  $c->stash('tx'=> $c->req->param('textentry') );
  $c->stash('pw'=> $c->req->body_params->param('passw'));
  $c->stash('hid'=> $c->param('hid') );

  $c->render('parameter');
};

# get rid of the secrets-warning
app->secrets(['abcd']);

app->start;

__DATA__

@@ index.html.ep
<!DOCTYPE html>
<html>
  <head><title>Parameter Test</title></head>
  <body>
    <form action="/lo" method="post" enctype="text/plain">
      <p>Textentry<br/>
      <input type="text" size="8" name="textentry" /></p>
        <hr/>
      <p>Password<br/>
      <input type="password" size="8" name="passw" /></p>
        <hr/>
      <input type="submit" value="send" name="1"/>
      <input type="submit" value="send anyway"/>
        <br/>
      <input type="hidden" value="<%=rand(5)%>" name="hid"/><br/>
      <a href="/">reload</a>
    </form>
  </body>
</html>

@@ parameter.html.ep
<!DOCTYPE html>
<html>
  <head><title>Parameter Results</title></head>
  <body>
    <p>Text: <strong><%=stash('tx')%></strong><br/>
      </p><hr/>
    <p>Password: <strong><%= param('passw') %></strong><br/>
      </p><hr/>
    <p>Hidden: <strong><%= param('hid') %></strong><br/>
      </p><hr/>
    <p>All POST-params:<strong>
      <%=stash('all_post_params')%></strong><hr/></p>
    <a href="/">again</a>
  </body>
</html>

Erwartetes Verhalten: Nach Formularübermittlung werden die Werte der Formularfelder auf der nächsten Seite angezeigt.
Engestelltes Verhalten: Werte werden nicht angezeigt.


Von Zeile 14-19 nutze ich verschiedene Möglichkeiten (die laut Doku alle gehen sollten), um an die benötigten Daten zu kommen - leider ohne Erfolg.

Ich beziehe mich mit den Parametzern auf beispielsweise param-liste und die Doku von Mojolicious param

Perl ist v5.18.1
Mojolicious ist 5.17

Per Wireshark habe ich auch mal die POST-Übermittlung untersucht, die sieht nicht anders aus als sonst, auch habe ich natürlich verschiedene Browser genutzt, um deren Schuld auszuschliessen.

Danke für die Aufmerksamkeit :)

View full thread Mojolicoius: POST-Daten abgreifen