Admin21 ed un fatal error

Questo forum è dedicato alle discussioni riguardanti le contribution per osCommerce

Moderatore: mod Generali

Rispondi
marzianinani
membro Regular
membro Regular
Messaggi: 102
Iscritto il: 19/07/2008, 14:16

Admin21 ed un fatal error

Messaggio 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
Avatar utente
lavoriamopervoi
membro Senior
membro Senior
Messaggi: 405
Iscritto il: 14/12/2007, 18:32
Contatta:

Re: Admin21 ed un fatal error

Messaggio 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
marzianinani
membro Regular
membro Regular
Messaggi: 102
Iscritto il: 19/07/2008, 14:16

Messaggio 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
Avatar utente
lavoriamopervoi
membro Senior
membro Senior
Messaggi: 405
Iscritto il: 14/12/2007, 18:32
Contatta:

Messaggio da lavoriamopervoi »

marzianinani ha scritto:ti faccio baciare per finta la mia ragazza virtuale.
la mia mi farebbe a pezzi... :lol:
marzianinani
membro Regular
membro Regular
Messaggi: 102
Iscritto il: 19/07/2008, 14:16

Messaggio 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.
dynamo
membro Master
membro Master
Messaggi: 1976
Iscritto il: 13/11/2007, 17:47
Contatta:

Messaggio 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>
www.vinidimo.it

visitate e criticate se è il caso... solo con le critiche posso migliorarlo ^_^
Avatar utente
lavoriamopervoi
membro Senior
membro Senior
Messaggi: 405
Iscritto il: 14/12/2007, 18:32
Contatta:

Messaggio 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
marzianinani
membro Regular
membro Regular
Messaggi: 102
Iscritto il: 19/07/2008, 14:16

Messaggio da marzianinani »

grazie Dynamo ed Antonello, ora provo e vi faccio sapere. Grazie per l'interesse.
marzianinani
membro Regular
membro Regular
Messaggi: 102
Iscritto il: 19/07/2008, 14:16

Messaggio 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.
marzianinani
membro Regular
membro Regular
Messaggi: 102
Iscritto il: 19/07/2008, 14:16

Messaggio 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');
marzianinani
membro Regular
membro Regular
Messaggi: 102
Iscritto il: 19/07/2008, 14:16

Messaggio da marzianinani »

vabbé!!!!!
Rispondi