Toon posts:

[javascript] submit in functie werkt 2x en dan weer niet!

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hey ik heb een vraagje.
Ik maak in mijn site gebruik van phpBB2 en nu is het de bedoeling dat men hier automatisch op inlogd lukt aardig login scherm wordt ingevuld met var's uit een session en vervolgens wil ik die form submitten met de volgende code:

<script language=javascript">
function verzend(){
document.formnaam.submit();
}

verzend();
</script>

Deze heeft slechts 2x gewerkt een daarna gaf hij alleen nog maar de fout melding: "Deze eigenschap of methode wordt niet ondersteund door dit object".


Ik hoop dat iemand hier een antwoord op heeft..

greetz

[ Voor 5% gewijzigd door Verwijderd op 25-08-2004 13:30 ]


Verwijderd

document.forms['formuliernaam'].submit();

document.getElementsByName['formuliernaam'].submit();

document.getElementById['formulierID'].submit();

[ Voor 62% gewijzigd door Verwijderd op 25-08-2004 13:31 ]


Verwijderd

Topicstarter
Sorry maar met form(nu formnaam) bedoelde ik al de naam van het formulier, maar dat verklaart nogsteeds waarom hij het eerst wel 2x deed en daarna niet meer. toch?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 06:53

gorgi_19

Kruimeltjes zijn weer op :9

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Verwijderd schreef op 25 augustus 2004 @ 13:31:
Sorry maar met form(nu formnaam) bedoelde ik al de naam van het formulier, maar dat verklaart nogsteeds waarom hij het eerst wel 2x deed en daarna niet meer. toch?
Nee dat is vreemd i.d.d. Heb je gecontroleerd d.m.v. een alert of de functie sowieso wel aangeroepen wordt?

Verwijderd

Topicstarter
Ik zal het ff controleren met een alert, maar om ff terug je te komen op je vorige post, met getElementsByName of getElementsByID geeft ie aan dat het leeg is of geen object is. en als ik document.forms['formuliernaam'].submit();
gebruik dat gaat ie flippen, het lijkt er op alsof ie blijft refreshen ofzo... dus..

Btw sorry dat ik hier fout zit

Verwijderd

Topicstarter
De functie wordt sowieso aan geroepen, een alert werkt maar bijv. de value van een textfield in het debetrefende form wijzigen werkt ook.

:(

  • CrashOne
  • Registratie: Juli 2000
  • Niet online

CrashOne

oOoOoOoOoOoOoOoOoOo

Ze hem eens in een onload.

Huur mij in als freelance SEO consultant!


Verwijderd

Topicstarter
werkt ook niet

Verwijderd

Heeft je formulier toevallig een input met name="submit"?

code:
1
2
<!-- Dit zorgt voor problemen met form.submit(); -->
<input type="submit" name="submit" />

Verwijderd

Topicstarter
Nee dat was het eerst waar ik aan dacht, er zit geen knop meer in emt de naam submit

  • Salandur
  • Registratie: Mei 2003
  • Laatst online: 23-05 08:17

Salandur

Software Engineer

Geef eens een link naar die pagina, of post de html-code van de pagina hier. Dan kunnen we wat beter zien wat er mis gaat.

Assumptions are the mother of all fuck ups | iRacing Profiel


Verwijderd

Topicstarter
Het is een aardige lap code de eerste is het TPL bestand met het form de tweede is het bij behorende php bestand:

code:
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
<form name="formulier" action="{S_LOGIN_ACTION}" method="post" target="_top">

<table width="100%" cellspacing="2" cellpadding="2" border="0" align="center">
  <tr> 
    <td align="left" class="nav"><a href="{U_INDEX}" class="nav">{L_INDEX}</a></td>
  </tr>
</table>

<table width="100%" cellpadding="4" cellspacing="1" border="0" class="forumline" align="center">
  <tr> 
    <th height="25" class="thHead" nowrap="nowrap">{L_ENTER_PASSWORD}</th>
  </tr>
  <tr> 
    <td class="row1"><table border="0" cellpadding="3" cellspacing="1" width="100%">
          <tr> 
            <td colspan="2" align="center">&nbsp;</td>
          </tr>
          <tr> 
            <td width="45%" align="right"><span class="gen">{L_USERNAME}:</span></td>
            <td> 
              <input type="text" name="username" size="25" maxlength="40" value="{USERNAME}" />
            </td>
          </tr>
          <tr> 
            <td align="right"><span class="gen">{L_PASSWORD}:</span></td>
            <td> 
              <input type="password" name="password" size="25" maxlength="32" value="Wachtwoord" />
            </td>
          </tr>
          <tr align="center"> 
            <td colspan="2"><span class="gen">{L_AUTO_LOGIN}: <input type="checkbox" name="autologin" /></span></td>
          </tr>
          <tr align="center"> 
            <td colspan="2">{S_HIDDEN_FIELDS}<input type="submit" name="login" class="mainoption" value="{L_LOGIN}" /></td>
          </tr>
          <tr align="center"> 
            <td colspan="2"><span class="gensmall"><a href="{U_SEND_PASSWORD}" class="gensmall">{L_SEND_PASSWORD}</a></span></td>
          </tr>
        </table></td>
  </tr>
</table>
<script language="javascript">
function verzend(){
document.formulier.submit();
}
verzend();
</script>
</form>


php bestand:
code:
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
<?php
/***************************************************************************
 *                                login.php
 *                            -------------------
 *   begin                : Saturday, Feb 13, 2001
 *   copyright            : (C) 2001 The phpBB Group
 *   email                : support@phpbb.com
 *
 *   $Id: login.php,v 1.47.2.16 2004/07/17 13:48:32 acydburn Exp $
 *
 *
 ***************************************************************************/

/***************************************************************************
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 ***************************************************************************/

//
// Allow people to reach login page if
// board is shut down
//
define("IN_LOGIN", true);

define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

//
// Set page ID for session management
//
$userdata = session_pagestart($user_ip, PAGE_LOGIN);
init_userprefs($userdata);
//
// End session management
//

// session id check
if (!empty($HTTP_POST_VARS['sid']) || !empty($HTTP_GET_VARS['sid']))
{
    $sid = (!empty($HTTP_POST_VARS['sid'])) ? $HTTP_POST_VARS['sid'] : $HTTP_GET_VARS['sid'];
}
else
{
    $sid = '';
}

if( isset($HTTP_POST_VARS['login']) || isset($HTTP_GET_VARS['login']) || isset($HTTP_POST_VARS['logout']) || isset($HTTP_GET_VARS['logout']) )
{
    if( ( isset($HTTP_POST_VARS['login']) || isset($HTTP_GET_VARS['login']) ) && !$userdata['session_logged_in'] )
    {
        $username = isset($HTTP_POST_VARS['username']) ? trim(htmlspecialchars($HTTP_POST_VARS['username'])) : '';
        $username = substr(str_replace("\\'", "'", $username), 0, 25);
        $username = str_replace("'", "\\'", $username);
        $password = isset($HTTP_POST_VARS['password']) ? $HTTP_POST_VARS['password'] : '';

        $sql = "SELECT user_id, username, user_password, user_active, user_level
            FROM " . USERS_TABLE . "
            WHERE username = '" . str_replace("\\'", "''", $username) . "'";
        if ( !($result = $db->sql_query($sql)) )
        {
            message_die(GENERAL_ERROR, 'Error in obtaining userdata', '', __LINE__, __FILE__, $sql);
        }

        if( $row = $db->sql_fetchrow($result) )
        {
            if( $row['user_level'] != ADMIN && $board_config['board_disable'] )
            {
                redirect(append_sid("index.$phpEx", true));
            }
            else
            {
                if( md5($password) == $row['user_password'] && $row['user_active'] )
                {
                    $autologin = ( isset($HTTP_POST_VARS['autologin']) ) ? TRUE : 0;

                    $session_id = session_begin($row['user_id'], $user_ip, PAGE_INDEX, FALSE, $autologin);

                    if( $session_id )
                    {
                        $url = ( !empty($HTTP_POST_VARS['redirect']) ) ? str_replace('&amp;', '&', htmlspecialchars($HTTP_POST_VARS['redirect'])) : "index.$phpEx";
                        redirect(append_sid($url, true));
                    }
                    else
                    {
                        message_die(CRITICAL_ERROR, "Couldn't start session : login", "", __LINE__, __FILE__);
                    }
                }
                else
                {
                    $redirect = ( !empty($HTTP_POST_VARS['redirect']) ) ? str_replace('&amp;', '&', htmlspecialchars($HTTP_POST_VARS['redirect'])) : '';
                    $redirect = str_replace('?', '&', $redirect);

                    if (strstr(urldecode($redirect), "\n") || strstr(urldecode($redirect), "\r"))
                    {
                        message_die(GENERAL_ERROR, 'Tried to redirect to potentially insecure url.');
                    }

                    $template->assign_vars(array(
                        'META' => "<meta http-equiv=\"refresh\" content=\"3;url=login.$phpEx?redirect=$redirect\">")
                    );

                    $message = $lang['Error_login'] . '<br /><br />' . sprintf($lang['Click_return_login'], "<a href=\"login.$phpEx?redirect=$redirect\">", '</a>') . '<br /><br />' .  sprintf($lang['Click_return_index'], '<a href="' . append_sid("index.$phpEx") . '">', '</a>');

                    message_die(GENERAL_MESSAGE, $message);
                }
            }
        }
        else
        {
            $redirect = ( !empty($HTTP_POST_VARS['redirect']) ) ? str_replace('&amp;', '&', htmlspecialchars($HTTP_POST_VARS['redirect'])) : "";
            $redirect = str_replace("?", "&", $redirect);

            if (strstr(urldecode($redirect), "\n") || strstr(urldecode($redirect), "\r"))
            {
                message_die(GENERAL_ERROR, 'Tried to redirect to potentially insecure url.');
            }

            $template->assign_vars(array(
                'META' => "<meta http-equiv=\"refresh\" content=\"3;url=login.$phpEx?redirect=$redirect\">")
            );

            $message = $lang['Error_login'] . '<br /><br />' . sprintf($lang['Click_return_login'], "<a href=\"login.$phpEx?redirect=$redirect\">", '</a>') . '<br /><br />' .  sprintf($lang['Click_return_index'], '<a href="' . append_sid("index.$phpEx") . '">', '</a>');

            message_die(GENERAL_MESSAGE, $message);
        }
    }
    else if( ( isset($HTTP_GET_VARS['logout']) || isset($HTTP_POST_VARS['logout']) ) && $userdata['session_logged_in'] )
    {
        if( $userdata['session_logged_in'] )
        {
            session_end($userdata['session_id'], $userdata['user_id']);
        }

        if (!empty($HTTP_POST_VARS['redirect']) || !empty($HTTP_GET_VARS['redirect']))
        {
            $url = (!empty($HTTP_POST_VARS['redirect'])) ? htmlspecialchars($HTTP_POST_VARS['redirect']) : htmlspecialchars($HTTP_GET_VARS['redirect']);
            $url = str_replace('&amp;', '&', $url);
            redirect(append_sid($url, true));
        }
        else
        {
            redirect(append_sid("index.$phpEx", true));
        }
    }
    else
    {
        $url = ( !empty($HTTP_POST_VARS['redirect']) ) ? str_replace('&amp;', '&', htmlspecialchars($HTTP_POST_VARS['redirect'])) : "index.$phpEx";
        redirect(append_sid($url, true));
    }
}
else
{
    //
    // Do a full login page dohickey if
    // user not already logged in
    //
    if( !$userdata['session_logged_in'] )
    {
        $page_title = $lang['Login'];
        include($phpbb_root_path . 'includes/page_header.'.$phpEx);

        $template->set_filenames(array(
            'body' => 'login_body.tpl')
        );

        if( isset($HTTP_POST_VARS['redirect']) || isset($HTTP_GET_VARS['redirect']) )
        {
            $forward_to = $HTTP_SERVER_VARS['QUERY_STRING'];

            if( preg_match("/^redirect=([a-z0-9\.#\/\?&=\+\-_]+)/si", $forward_to, $forward_matches) )
            {
                $forward_to = ( !empty($forward_matches[3]) ) ? $forward_matches[3] : $forward_matches[1];
                $forward_match = explode('&', $forward_to);

                if(count($forward_match) > 1)
                {
                    $forward_page = '';

                    for($i = 1; $i < count($forward_match); $i++)
                    {
                        if( !ereg("sid=", $forward_match[$i]) )
                        {
                            if( $forward_page != '' )
                            {
                                $forward_page .= '&';
                            }
                            $forward_page .= $forward_match[$i];
                        }
                    }
                    $forward_page = $forward_match[0] . '?' . $forward_page;
                }
                else
                {
                    $forward_page = $forward_match[0];
                }
            }
        }
        else
        {
            $forward_page = '';
        }

        $username = $_GET["username"];

        $s_hidden_fields = '<input type="hidden" name="redirect" value="' . $forward_page . '" />';

        make_jumpbox('viewforum.'.$phpEx, $forum_id);
        $template->assign_vars(array(
            'USERNAME' => $username,

            'L_ENTER_PASSWORD' => $lang['Enter_password'],
            'L_SEND_PASSWORD' => $lang['Forgotten_password'],

            'U_SEND_PASSWORD' => append_sid("profile.$phpEx?mode=sendpassword"),

            'S_HIDDEN_FIELDS' => $s_hidden_fields)
        );

        $template->pparse('body');

        include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
    }
    else
    {
        redirect(append_sid("index.$phpEx", true));
    }

}

?>


Ik hoop dat je er wijs uit kan worden

Verwijderd

Topicstarter
Ik zie dat ik misshcien niet ver genoeg heb gekeken. nadat hij de body parsed, include hij ook nog een tail bestand, waarin "zie ik nu" ook nog een overall_tail.tpl wordt geparsed, nu het scriptje daarheen verplaatst te hebben lijkt hij het meer dan 2x te doen.....

Verwijderd

Topicstarter
niet dus

ik vermoed dat ik het door heb, de action van het form is variabel en wordt ergens gedefineerd, na een paar keer aangemeld te hebben, gaat er waar schijnlijk iets mis met de gegevens in een session of cookie waarna hij zichzelf(de login pagina dus) weer aanroept. leuk.... iemand suggesties?
Pagina: 1