[RESOLU] Migration d'un site PHP 5.2 + SMARTY + ADODB

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Migration d'un site PHP 5.2 + SMARTY + ADODB

Re: Migration d'un site PHP 5.2 + SMARTY + ADODB

par tiserbo » 08 nov. 2014, 02:59

TROUVE ...

Voilà, je viens de trouver la raison de mes problèmes ...

La Base de Données contient des utilisateurs pour se connecter aux différents services du MS SQL.

L'utilisateur qui était définit pour se connecter n'était pas transféré par le Backup Restore mais recréé par moi lors de la migration des données dans le nouveau serveur SQL.

Un schéma particulier avait été utilisé pour la DB en question. Les noms d'accès aux tables doivent être constitués de cette manière : nom_du_schéma.nom_de_la_table. Habituellement le schéma par défaut est DBO et comme les utilisateurs ont par défaut le schéma DBO qui leur est assigné, il n'est pas nécessaire de définir le nom en préfixant le nom du schéma.

Dans mon cas, les différents tests que j'ai réalisés en suivant vos conseils m'ont permis de voir que je n'accédais pas aux tables. Par contre je ne comprends pas pourquoi l'error reporting n'indiquait pas clairement que la table que l'on cherchait à accéder n'était pas trouvée.

Il suffisait donc de définir un schéma par défaut différent pour l'utilisateur utilisé dans la commande d'ouverture de la connexion vers MS SQL.

Ceci fait tout semble bien fonctionner ... enfin ...

Re: Migration d'un site PHP 5.2 + SMARTY + ADODB

par tiserbo » 05 nov. 2014, 10:18

Je reconnais que j'ai beaucoup planché sur le sujet ... je n'oserais pas dire le nombre d'heure que j'y ai passé ...

C'est pour ça que je poste dans PHP Avancé. Je m'adresse aux plus calés d'entre vous ... j'ai l'espoir qu'il y aura quelqu'un pour m'aider.

Re: Migration d'un site PHP 5.2 + SMARTY + ADODB

par lansan » 05 nov. 2014, 05:29

c'est vraiment complexe pour nous manipuler


____________________________________________________________________________________________________________
coque iphone 6 discont etui iphone 6 cuir

Re: Migration d'un site PHP 5.2 + SMARTY + ADODB

par tiserbo » 05 nov. 2014, 01:00

Je me suis trompé en postant j'ai envoyé sous le nom Invité alors que ce message a été composé par moi.

Migration d'un site PHP 5.2 + SMARTY + ADODB

par tiserbo » 05 nov. 2014, 00:54

Bonjour à tous,
premier post, beaucoup d'espoir ...

Je migre un site en PHP 5.2 depuis un serveur IIS 7.0 sur Windows 2008 std (32bits) vers (j'ai essayé pas mal de versions et plusieurs OS alors pour faire simple, ) vers le même environnement sur un autre serveur plus récent.

Je bloque sur le fait que tout fonctionne parfaitement sur le site d'origine (sauf que l'on va démonter le serveur qui devient obsolète) et que sur le site d'arrivée ça ne fonctionne pas !!!

Le programme fut développé en 2006 par une personne que je ne connais pas et dont la société à disparu du marché ... Il est réalisé en PHP 5.2 avec SMARTY 2.6.14 et ADODB 4.71 les données sont gérées dans un MS SQL (dans la version originale la version Express et dans la configuration d'arrivée sur la version 2008 de SQL server). La DB a été migrée sans être modifiée par un simple Backup Restore.

Le programme fonctionne jusqu'à l'affichage du menu d'inscription. En indiquant le nom de l'utilisateur et son mot de passe rien ne se passe alors que j'ai vérifié qu'il s'agissait des bonnes informations. (les noms d'utilisateurs et les mots de passes sont en clair dans la table SQL).

J'ai donc décortiqué ligne par ligne pour trouver l'endroit où ça "déraille".

Une fonction FrmLogin() récupère les informations introduites dans le Formulaire installé dans le Template Login.tpl. (J'ai essayé ça fonctionne bien les variables $_POST['login'] et $_POST['pwd'] sont bien remplies des données placées dans le formulaire ...



FONCTION FrmLogin()

Code : Tout sélectionner

function frmLogin() { if ($_POST['form_type']!='loginFT') return; $user = new user(); if($user->userLogin($_POST['login'],$_POST['pwd'],&$rsl)) { $user = new user($rsl['Id']); foreach($user as $f => $v) { $_SESSION['user'][$f] = $v; } } else { $error = new error('login'); echo $error->msg; } header("location:index.php"); exit; }


TEMPLATE Login.tpl

Code : Tout sélectionner

<form id='loginForm' name='loginForm' method='POST' class="none"> <input type='hidden' id='form_type' name='form_type' value='loginFT'> <span style="display:inline"> Nom d'utilisateur : <input type='text' id='login' name='login' value=''> Mot de passe : <input type='password' id='pwd' name='pwd' value=''> <input type='submit' id='loginSubmit' name='loginSubmit' value='Connexion'> </span> </form>

Par contre la Fonction FrmLogin() finit par un "header("location:index.php");" qui relance le chargement de la page Index.php et les variables sont alors confiées à $User disparaissent et lors du rechargement de Index.php on revient à zéro comme si rien n'avait été introduit dans le formulaire. Alors que sur l'autre système User$ contient bien les informations nécessaires pour ouvrir la session et afficher le menu de l'utilisateur.

Je me rends compte que ces informations très succinctes nécessiteront ds compléments d'informations ... je reste bien entendu à votre disposition pour donner les informations complémentaires nécessaires.

Inutile de dire sue je suis assez "nul" en PHP mais j'espère quand même recevoir de votre part les indications me permettant de passer au dessus de ce problème.

Je termine en confirmant que je n'ai pas modifié le code qui fonctionne sur le poste d'origine, que la base de données est opérationnelle, que j'ai pu faire des accès en utilisant les procédures du programme en question pour accéder aux données du SQL Server et que de ce côté là tout semble parfaitement opérationnel.