Pagina 1 di 1

Admin21 ed un fatal error

Inviato: 03/09/2008, 13:36
da marzianinani
ciao, e così dopo la tranquillità delle vacanze già vorrei tornarci e la colpa è tutta di admin21!
Allora, lavoro in locale, con xampp 1.6.4, phpmyadmin 2.11.1, versione Mysql 5.0.45, ho installato un template inglese basato sulla versione oscommerce 2.2rc2a, il problema è nato quando mi sono accorto che non aveva un box login in cui digitare user e pass per entrare, ho scoperto però che esisteva admin21 (valgono le parolacce?) allora l'ho installato, da vergine, senza aver fatto nessun cambiamento ai file oscommerce, ho caricato la query "admin_tabel" oltre al database "oscommerce.sql", quindi ho installato i file del pacchetto "register_globals", visto che quando avviavo l'installazione mi digeva quella solita frase sul php.ini, tutto apposto, mi appare il box in cui mettere "admin@localhost" e "admin", ma quando ce li metto ed avvio il login mi appare questa frase


Fatal error: Call to undefined function tep_validate_password() in C:\xampp\htdocs\osc1\catalog\admin\login.php on line 26


alla riga 26 del file login.php è riportato questo

if (!tep_validate_password($password, $check_admin['login_password'])) {

non so che fare, ho cercato spiegazioni nei siti inglesi ed americani ma non ne sono venuto fuori, forse visto il mio inglese. Ciao

Re: Admin21 ed un fatal error

Inviato: 03/09/2008, 16:00
da lavoriamopervoi
marzianinani ha scritto:ciao, e così dopo la tranquillità delle vacanze già vorrei tornarci e la colpa è tutta di admin21!
Allora, lavoro in locale, con xampp 1.6.4, phpmyadmin 2.11.1, versione Mysql 5.0.45, ho installato un template inglese basato sulla versione oscommerce 2.2rc2a, il problema è nato quando mi sono accorto che non aveva un box login in cui digitare user e pass per entrare, ho scoperto però che esisteva admin21 (valgono le parolacce?) allora l'ho installato, da vergine, senza aver fatto nessun cambiamento ai file oscommerce, ho caricato la query "admin_tabel" oltre al database "oscommerce.sql", quindi ho installato i file del pacchetto "register_globals", visto che quando avviavo l'installazione mi digeva quella solita frase sul php.ini, tutto apposto, mi appare il box in cui mettere "admin@localhost" e "admin", ma quando ce li metto ed avvio il login mi appare questa frase


Fatal error: Call to undefined function tep_validate_password() in C:\xampp\htdocs\osc1\catalog\admin\login.php on line 26


alla riga 26 del file login.php è riportato questo

if (!tep_validate_password($password, $check_admin['login_password'])) {

non so che fare, ho cercato spiegazioni nei siti inglesi ed americani ma non ne sono venuto fuori, forse visto il mio inglese. Ciao
non trova la funzione tep_validate_password che dovrebbe essere in admin/includes/functions/pasword_funcs.php
e questa è la funzione:

Codice: Seleziona tutto

// This funstion validates a plain text password with an
// encrpyted password
  function tep_validate_password($plain, $encrypted) {
    if (tep_not_null($plain) && tep_not_null($encrypted)) {
// split apart the hash / salt
      $stack = explode(':', $encrypted);

      if (sizeof($stack) != 2) return false;

      if (md5($stack[1] . $plain) == $stack[0]) {
        return true;
      }
    }

    return false;
  }
Ciao
Antonello

Inviato: 03/09/2008, 17:01
da marzianinani
Grazie lavoriamopervoi per la risposta, ora provo e se funziona di faccio un poster, anzi, ti faccio baciare per finta la mia ragazza virtuale. Ciao

Inviato: 03/09/2008, 17:05
da lavoriamopervoi
marzianinani ha scritto:ti faccio baciare per finta la mia ragazza virtuale.
la mia mi farebbe a pezzi... :lol:

Inviato: 03/09/2008, 23:57
da marzianinani
Niente bacetto! Niente niente, manco un'alitata. La cosa non si è risolta. Il codice che mi hai dato è presente perfettamente nei file della patch Admin21 che vanno a prendere il posto di quelli presenti nel mio template per creare il box per il login, ho comparato il tuo codice e quello presente in password_funcs.php di admin 21 con dreamweaver, e non ci sono possibilità, sono identici, quindi sono di nuovo all'inizio, ti prego un'altra idea, è una settimana che vago per siti, comunque grazie ancora per la risposta che mi hai dato.

Inviato: 04/09/2008, 7:32
da dynamo
prova a controllare il codice di catalog/admin/login.php sia uguale a questo

Codice: Seleziona tutto

<?php
/*
  $Id: login.php,v 1.17 2003/02/14 12:57:29 dgw_ Exp $

  osCommerce, Open Source E-Commerce Solutions
  http://www.oscommerce.com

  Copyright (c) 2002 osCommerce

  Released under the GNU General Public License
*/

  require('includes/application_top.php');
  
  if (isset($HTTP_GET_VARS['action']) && ($HTTP_GET_VARS['action'] == 'process')) {
    $email_address = tep_db_prepare_input($HTTP_POST_VARS['email_address']);
    $password = tep_db_prepare_input($HTTP_POST_VARS['password']);

// Check if email exists
    $check_admin_query = tep_db_query("select admin_id as login_id, admin_groups_id as login_groups_id, admin_firstname as login_firstname, admin_email_address as login_email_address, admin_password as login_password, admin_modified as login_modified, admin_logdate as login_logdate, admin_lognum as login_lognum from " . TABLE_ADMIN . " where admin_email_address = '" . tep_db_input($email_address) . "'");
    if (!tep_db_num_rows($check_admin_query)) {
      $HTTP_GET_VARS['login'] = 'fail';
    } else {
      $check_admin = tep_db_fetch_array($check_admin_query);
      // Check that password is good
      if (!tep_validate_password($password, $check_admin['login_password'])) {
        $HTTP_GET_VARS['login'] = 'fail';
      } else {
        if (tep_session_is_registered('password_forgotten')) {
          tep_session_unregister('password_forgotten');
        }

        $login_id = $check_admin['login_id'];
        $login_groups_id = $check_admin[login_groups_id];
        $login_firstname = $check_admin['login_firstname'];
        $login_email_address = $check_admin['login_email_address'];
        $login_logdate = $check_admin['login_logdate'];
        $login_lognum = $check_admin['login_lognum'];
        $login_modified = $check_admin['login_modified'];

        tep_session_register('login_id');
        tep_session_register('login_groups_id');
        tep_session_register('login_first_name');

        //$date_now = date('Ymd');
        tep_db_query("update " . TABLE_ADMIN . " set admin_logdate = now(), admin_lognum = admin_lognum+1 where admin_id = '" . $login_id . "'");

        if (($login_lognum == 0) || !($login_logdate) || ($login_email_address == 'admin@localhost') || ($login_modified == '0000-00-00 00:00:00')) {
          tep_redirect(tep_href_link(FILENAME_ADMIN_ACCOUNT));
        } else {
          tep_redirect(tep_href_link(FILENAME_DEFAULT));
        }

      }
    }
  }

  require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_LOGIN);
?>
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html <?php echo HTML_PARAMS; ?>>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">
<title><?php echo TITLE; ?></title>
<style type="text/css"><!--
a { color:#080381; text-decoration:none; }
a:hover { color:#aabbdd; text-decoration:underline; }
a.text:link, a.text:visited { color: #ffffff; text-decoration: none; }
a:text:hover { color: #000000; text-decoration: underline; }
a.sub:link, a.sub:visited { color: #dddddd; text-decoration: none; }
A.sub:hover { color: #dddddd; text-decoration: underline; }
.sub { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; font-weight: bold; line-height: 1.5; color: #dddddd; }
.text { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; font-weight: bold; color: #000000; }
.smallText { font-family: Verdana, Arial, sans-serif; font-size: 10px; }
.login_heading { font-family: Verdana, Arial, sans-serif; font-size: 12px; color: #ffffff;}
.login { font-family: Verdana, Arial, sans-serif; font-size: 12px; color: #000000;}
//--></style>
</head>
<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" bgcolor="#FFFFFF">

<table border="0" width="600" height="100%" cellspacing="0" cellpadding="0" align="center" valign="middle">
  <tr>
    <td><table border="0" width="600" height="440" cellspacing="0" cellpadding="1" align="center" valign="middle">
      <tr bgcolor="#000000">
        <td><table border="0" width="600" height="440" cellspacing="0" cellpadding="0">
          <tr bgcolor="#ffffff" height="50">
            <td height="50"><?php echo tep_image(DIR_WS_IMAGES . 'oscommerce.gif', 'osCommerce', '204', '50'); ?></td>
            <td align="right" class="text" nowrap><?php echo '<a href="' . tep_href_link(FILENAME_DEFAULT) . '">' . HEADER_TITLE_ADMINISTRATION . '</a> | <a href="' . tep_catalog_href_link() . '">' . HEADER_TITLE_ONLINE_CATALOG . '</a> | <a href="http://www.oscommerce.com" target="_blank">' . HEADER_TITLE_SUPPORT_SITE . '</a>'; ?>  </td>
          </tr>
          <tr bgcolor="#080381">
            <td colspan="2" align="center" valign="middle">
                          <?php echo tep_draw_form('login', FILENAME_LOGIN, 'action=process'); ?>
                            <table width="280" border="0" cellspacing="0" cellpadding="2">
                              <tr>
                                <td class="login_heading" valign="top"> <b><?php echo HEADING_RETURNING_ADMIN; ?></b></td>
                              </tr>
                              <tr>
                                <td height="100%" valign="top" align="center">
                                <table border="0" height="100%" cellspacing="0" cellpadding="1" bgcolor="#666666">
                                  <tr><td><table border="0" width="100%" height="100%" cellspacing="3" cellpadding="2" bgcolor="#F0F0FF">
<?php
  if ($HTTP_GET_VARS['login'] == 'fail') {
    $info_message = TEXT_LOGIN_ERROR;
  }

  if (isset($info_message)) {
?>
                                    <tr>
                                      <td colspan="2" class="smallText" align="center"><?php echo $info_message; ?></td>
                                    </tr>
<?php
  } else {
?>
                                    <tr>
                                      <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
                                    </tr>
<?php
  }
?>                                    
                                    <tr>
                                      <td class="login"><?php echo ENTRY_EMAIL_ADDRESS; ?></td>
                                      <td class="login"><?php echo tep_draw_input_field('email_address'); ?></td>
                                    </tr>
                                    <tr>
                                      <td class="login"><?php echo ENTRY_PASSWORD; ?></td>
                                      <td class="login"><?php echo tep_draw_password_field('password'); ?></td>
                                    </tr>
                                    <tr>
                                      <td colspan="2" align="right" valign="top"><?php echo tep_image_submit('button_confirm.gif', IMAGE_BUTTON_LOGIN); ?></td>
                                    </tr>
                                  </table></td></tr>
                                </table>
                                </td>
                              </tr>
                              <tr>
                                <td valign="top" align="right"><?php echo '<a class="sub" href="' . tep_href_link(FILENAME_PASSWORD_FORGOTTEN, '', 'SSL') . '">' . TEXT_PASSWORD_FORGOTTEN . '</a><span class="sub"> </span>'; ?></td>
                              </tr>
                            </table>
                          </form>

            </td>
          </tr>
        </table></td>
      </tr>
      <tr>
        <td><?php require(DIR_WS_INCLUDES . 'footer.php'); ?></td>
      </tr>
    </table></td>
  </tr>
</table>

</body>

</html>

Inviato: 04/09/2008, 13:44
da lavoriamopervoi
prova con inserire questo:

Codice: Seleziona tutto

require_once(DIR_WS_FUNCTIONS . 'password_funcs.php');
dopo

Codice: Seleziona tutto

require('includes/application_top.php');


Ciao
Antonello

Inviato: 04/09/2008, 15:12
da marzianinani
grazie Dynamo ed Antonello, ora provo e vi faccio sapere. Grazie per l'interesse.

Inviato: 04/09/2008, 16:39
da marzianinani
sono qua per informarvi.
Per Dynamo.
il login.php è differente, non so bene in cosa sia differente perché l'ho comparato con quello che ho usando dreamweaver, tuttavia il login.php che ho io è quello che c'è in "admin21" visto che io nel template non ho un box login e di conseguenza non avevo un login.php in admin, qui sotto te l'ho postato, casomai tu avessi voglia di dargli uno sguardo.

<?php
/*
$Id: login.php,v 1.17 2003/02/14 12:57:29 dgw_ Exp $

osCommerce, Open Source E-Commerce Solutions
http://www.oscommerce.com

Copyright (c) 2002 osCommerce

Released under the GNU General Public License
*/

require('includes/application_top.php');

if (isset($HTTP_GET_VARS['action']) && ($HTTP_GET_VARS['action'] == 'process')) {
$email_address = tep_db_prepare_input($HTTP_POST_VARS['email_address']);
$password = tep_db_prepare_input($HTTP_POST_VARS['password']);

// Check if email exists
$check_admin_query = tep_db_query("select admin_id as login_id, admin_groups_id as login_groups_id, admin_firstname as login_firstname, admin_email_address as login_email_address, admin_password as login_password, admin_modified as login_modified, admin_logdate as login_logdate, admin_lognum as login_lognum from " . TABLE_ADMIN . " where admin_email_address = '" . tep_db_input($email_address) . "'");
if (!tep_db_num_rows($check_admin_query)) {
$HTTP_GET_VARS['login'] = 'fail';
} else {
$check_admin = tep_db_fetch_array($check_admin_query);
// Check that password is good
if (!tep_validate_password($password, $check_admin['login_password'])) {
$HTTP_GET_VARS['login'] = 'fail';
} else {
if (tep_session_is_registered('password_forgotten')) {
tep_session_unregister('password_forgotten');
}

$login_id = $check_admin['login_id'];
$login_groups_id = $check_admin[login_groups_id];
$login_firstname = $check_admin['login_firstname'];
$login_email_address = $check_admin['login_email_address'];
$login_logdate = $check_admin['login_logdate'];
$login_lognum = $check_admin['login_lognum'];
$login_modified = $check_admin['login_modified'];

tep_session_register('login_id');
tep_session_register('login_groups_id');
tep_session_register('login_first_name');

//$date_now = date('Ymd');
tep_db_query("update " . TABLE_ADMIN . " set admin_logdate = now(), admin_lognum = admin_lognum+1 where admin_id = '" . $login_id . "'");

if (($login_lognum == 0) || !($login_logdate) || ($login_email_address == 'admin@localhost') || ($login_modified == '0000-00-00 00:00:00')) {
tep_redirect(tep_href_link(FILENAME_ADMIN_ACCOUNT));
} else {
tep_redirect(tep_href_link(FILENAME_DEFAULT));
}

}
}
}

require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_LOGIN);
?>
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html <?php echo HTML_PARAMS; ?>>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">
<title><?php echo TITLE; ?></title>
<style type="text/css"><!--
a { color:#080381; text-decoration:none; }
a:hover { color:#aabbdd; text-decoration:underline; }
a.text:link, a.text:visited { color: #ffffff; text-decoration: none; }
a:text:hover { color: #000000; text-decoration: underline; }
a.sub:link, a.sub:visited { color: #dddddd; text-decoration: none; }
A.sub:hover { color: #dddddd; text-decoration: underline; }
.sub { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; font-weight: bold; line-height: 1.5; color: #dddddd; }
.text { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; font-weight: bold; color: #000000; }
.smallText { font-family: Verdana, Arial, sans-serif; font-size: 10px; }
.login_heading { font-family: Verdana, Arial, sans-serif; font-size: 12px; color: #ffffff;}
.login { font-family: Verdana, Arial, sans-serif; font-size: 12px; color: #000000;}
//--></style>
</head>
<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" bgcolor="#FFFFFF">

<table border="0" width="600" height="100%" cellspacing="0" cellpadding="0" align="center" valign="middle">
<tr>
<td><table border="0" width="600" height="440" cellspacing="0" cellpadding="1" align="center" valign="middle">
<tr bgcolor="#000000">
<td><table border="0" width="600" height="440" cellspacing="0" cellpadding="0">
<tr bgcolor="#ffffff" height="50">
<td height="50"><?php echo tep_image(DIR_WS_IMAGES . 'oscommerce.gif', 'osCommerce', '204', '50'); ?></td>
<td align="right" class="text" nowrap><?php echo '<a href="' . tep_href_link(FILENAME_DEFAULT) . '">' . HEADER_TITLE_ADMINISTRATION . '</a> | <a href="' . tep_catalog_href_link() . '">' . HEADER_TITLE_ONLINE_CATALOG . '</a> | <a href="http://www.oscommerce.com" target="_blank">' . HEADER_TITLE_SUPPORT_SITE . '</a>'; ?>  </td>
</tr>
<tr bgcolor="#080381">
<td colspan="2" align="center" valign="middle">
<?php echo tep_draw_form('login', FILENAME_LOGIN, 'action=process'); ?>
<table width="280" border="0" cellspacing="0" cellpadding="2">
<tr>
<td class="login_heading" valign="top"> <b><?php echo HEADING_RETURNING_ADMIN; ?></b></td>
</tr>
<tr>
<td height="100%" valign="top" align="center">
<table border="0" height="100%" cellspacing="0" cellpadding="1" bgcolor="#666666">
<tr><td><table border="0" width="100%" height="100%" cellspacing="3" cellpadding="2" bgcolor="#F0F0FF">
<?php
if ($HTTP_GET_VARS['login'] == 'fail') {
$info_message = TEXT_LOGIN_ERROR;
}

if (isset($info_message)) {
?>
<tr>
<td colspan="2" class="smallText" align="center"><?php echo $info_message; ?></td>
</tr>
<?php
} else {
?>
<tr>
<td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
</tr>
<?php
}
?>
<tr>
<td class="login"><?php echo ENTRY_EMAIL_ADDRESS; ?></td>
<td class="login"><?php echo tep_draw_input_field('email_address'); ?></td>
</tr>
<tr>
<td class="login"><?php echo ENTRY_PASSWORD; ?></td>
<td class="login"><?php echo tep_draw_password_field('password'); ?></td>
</tr>
<tr>
<td colspan="2" align="right" valign="top"><?php echo tep_image_submit('button_confirm.gif', IMAGE_BUTTON_LOGIN); ?></td>
</tr>
</table></td></tr>
</table>
</td>
</tr>
<tr>
<td valign="top" align="right"><?php echo '<a class="sub" href="' . tep_href_link(FILENAME_PASSWORD_FORGOTTEN, '', 'SSL') . '">' . TEXT_PASSWORD_FORGOTTEN . '</a><span class="sub"> </span>'; ?></td>
</tr>
</table>
</form>

</td>
</tr>
</table></td>
</tr>
<tr>
<td><?php require(DIR_WS_INCLUDES . 'footer.php'); ?></td>
</tr>
</table></td>
</tr>
</table>

</body>

</html>



Questa risposta è per Antonello.

Come mi hai consigliato ho inserito

require_once(DIR_WS_FUNCTIONS . 'password_funcs.php');

dopo

require('includes/application_top.php');

non ha molto funzionato, tuttavia a differenza di prima in cui mi usciva l'errore di cui ho parlato nel primo post ora comunque, dopo aver inserito "admin@localhost" ed "admin" mi fa' entrare, vedo un pezzo di oscommerce lato admin, l'intestazione, le brutte icone sulla destra, ma poi campeggia in bella mostra questo altro errore

Fatal error: Call to undefined function tep_admin_check_boxes() in C:\xampp\htdocs\osc2\catalog\admin\includes\column_left.php on line 23

Siamo messi meglio o è invariata la cosa? Ciao e ancora grazie.

Inviato: 04/09/2008, 16:43
da marzianinani
dimenticavo, le righe 23 e 24 di column_left.php sono queste

if (tep_admin_check_boxes('administrator.php') == true) {
require(DIR_WS_BOXES . 'administrator.php');

Inviato: 14/09/2008, 22:46
da marzianinani
vabbé!!!!!