Log de gestion sous linux a faire fonctionner sous W7

Eléphanteau du PHP | 19 Messages

23 juin 2012, 13:49

Bonjour,
J'utilise un log de gestion de restaurant dont la boîte a déposé le bilan.
Je me retrouve avec toutes mes données inutilisables et un log planté qui m'a couté 5000€ de licence... pas cool.

A l'origine il tourne sous linux mandriva. Ensuite on y accède par Mozilla comme un site web.
J'ai récupéré le log en php et les bases de données au format frm, myd et myi.
J'ai donc placé le log dans easyphp et la base a la racine du site mais également dans mysql.
Sous phpmyadmin, pas de pb pour accéder à la base.
Par contre impossible de lancer le log via easyphp :

"Could not connect to database.", "db_select" => "Impossible to select a valid database.", "invalid_email" => "Invalid email syntax.", "email_used" => "There is already an account created with this email.", "bad_login"=> "Wrong email or password.", "unknown" => "An error occured, please try again later.", "send_email" => "Could not send the email", "bad_magic" => "Wrong magic number, please check the email you have received from us." ); function die_error($error){ global $errors; if (isset($errors[$error])) die ($errors[$error]); else die ("Unknown error"); } ?>

J'ai donc modifié le script de config. Avec $db=array("hostname" => "127.0.0.1", au lieu de => "localhost". Pareil pour le $path et $url ou j'ai remplace l'aborescence par 127.0.0.1 sans plus de résultat.

Deux questions :
- Est ce que ça peut fonctionner sous windows ?
- Y a t il quelque chose à modifier pour qu'il accède à la base (emplacement, configuration, etc...)?

Merci d'avance !!!

Eléphanteau du PHP | 19 Messages

23 juin 2012, 14:58

Bon...

J'ai retiré le mot de passe du config.php en mettant "password"=> "", et je suis allé plus loin dans l'index.php.
Pourtant j'ai toujours "Could not connect to database."

ViPHP
xTG
ViPHP | 7331 Messages

23 juin 2012, 15:39

Je dirai plutôt que le problème est que le script PHP n'est pas interprété à voir ce que tu nous copies.
Le serveur est-il lancé ? Exécutes-tu le script via la bonne url ?

Eléphanteau du PHP | 19 Messages

23 juin 2012, 15:48

Merci de ton intérêt !!

Comment savoir si le serveur est lancé ?
Quel script ?

Ca commence par l'index.php
puis un include "config.php" dans lequel on charge les variables.
<?php
require("../engine/database.php");
require("../engine/errors.php");

$url = "127.0.0.1/MPO/vente";
$path = "127.0.0.1/MPO/vente";
$db=array("hostname" => "127.0.0.1",
"username" => "root",
"password" => "",
"database" => "mpo_php",
"prefix" => "",
"debug" => true
);

$sql = new DB;


C est le database.php qui appelle la fonction connect :
function connect()
{
global $db;
// connection à la base mySQL

$GLOBALS['cDBcon'] = @mysql_connect($db['hostname'],$db['username'],$db['password']);

if(!$GLOBALS['cDBcon']){
die_error('db_connect');
}
if (!@mysql_select_db($db['database'],$GLOBALS['cDBcon'])){
die_error('db_select');
}

As ton avis ça peut fonctionner sous W7 ?

ViPHP
xTG
ViPHP | 7331 Messages

23 juin 2012, 16:01

Il faut appeler le script via la bonne adresse dans ton navigateur : http://localhost/url_de_ton_dossier_par ... script.php
Mais surtout avoir mis ton application dans le dossier www de EasyPHP. ;)
Si tu accèdes à phpmyadmin c'est que le serveur tourne bien, cette application étant codée en PHP.

Eléphanteau du PHP | 19 Messages

23 juin 2012, 16:20

Dak,

Pour l appli dans www c'était bon.
La base ds le data de mysql ET à dans le dossier de l'appli (on ne sait jamais....).

Pour l'url et le path j'avais remplace http://www par 127.0.0.1, je viens de mettre C:\Program Files (x86)\EasyPHP-5.3.9\www\MPO\vente.
J'ai toujours pas d'acces à la bdd. Il ne se connecte pas. Pareil si je met $url = "http://127.0.0.1/MPO/vente";
J'ai essayé localhost ou 127.0.0.1 pour le hostname, ça change rien.

pour ça :
require("../engine/database.php");
require("../engine/errors.php");
je laisse comme ça puisque j'ai bien les messages d'erreur, c est qu'il y va.

En plus je vois pas pkoi il y a un chemin vers la vente dès l'accueil. A defaut la session de vente est fermée.

Eléphanteau du PHP | 19 Messages

23 juin 2012, 16:22

Dans phpmyadmin, le login est root@localhost, il n y a pas de mot de passe indiqué. Avec root seul je dois pouvoir me connecter ?

ViPHP
xTG
ViPHP | 7331 Messages

23 juin 2012, 16:27

Oui avec root comme utilisateur et mot de passe vide tu peux te connecter.
Quand tu ouvres ton site (localhost ou 127.0.0.1) affiches la source (clic droit > afficher le code source) et vérifies qu'il n'y a pas de code PHP qui s'affiche.

Car ceci :

Code : Tout sélectionner

"Could not connect to database.", "db_select" => "Impossible to select a valid database.", "invalid_email" => "Invalid email syntax.", "email_used" => "There is already an account created with this email.", "bad_login"=> "Wrong email or password.", "unknown" => "An error occured, please try again later.", "send_email" => "Could not send the email", "bad_magic" => "Wrong magic number, please check the email you have received from us." ); function die_error($error){ global $errors; if (isset($errors[$error])) die ($errors[$error]); else die ("Unknown error"); } ?>
C'est du code PHP non interprété et non l'affichage d'un message d'erreur.

Eléphanteau du PHP | 19 Messages

23 juin 2012, 16:30

je suis pas sur car le fichiers errors.php est :
<?
$errors = array(
"db_connect" => "Could not connect to database.",
"db_select" => "Impossible to select a valid database.",
"invalid_email" => "Invalid email syntax.",
"email_used" => "There is already an account created with this email.",
"bad_login"=> "Wrong email or password.",
"unknown" => "An error occured, please try again later.",
"send_email" => "Could not send the email",
"bad_magic" => "Wrong magic number, please check the email you have received from us."
);

function die_error($error){
global $errors;

if (isset($errors[$error]))
die ($errors[$error]);
else
die ("Unknown error");
}
?>

Je ne m'explique pas qu'il affiche toutes les erreurs mais il demarre bien à la premiere soit db_connect.

Ca donne ça en code source :
<?
$errors = array(
"db_connect" => "Could not connect to database.";
"db_select" => "Impossible to select a valid database.",
"invalid_email" => "Invalid email syntax.",
"email_used" => "There is already an account created with this email.",
"bad_login"=> "Wrong email or password.",
"unknown" => "An error occured, please try again later.",
"send_email" => "Could not send the email",
"bad_magic" => "Wrong magic number, please check the email you have received from us."
);

function die_error($error){
global $errors;

if (isset($errors[$error]))
die ($errors[$error]);
else
die ("Unknown error");
}
?> <HTML lang=fr>
<!DOCTYPE HTML PUBLIC "-//W3C/DTD HTML 4.01//EN"
"http://www.w3c.org/TR/html4/strict.dtd">
<HEAD>
<TITLE>MPO</TITLE>
<META http-equiv="Content-Type" content="text/html;">
<STYLE>
li {
list-style-type: none
}
img {
border-style:outset;
border-width:5px;
}
.logo_module{
width:154px;

ViPHP
xTG
ViPHP | 7331 Messages

23 juin 2012, 17:16

Je te donne un indice en prenant la coloration HTML :
<?
$errors = array(
"db_connect" => "Could not connect to database.";
"db_select" => "Impossible to select a valid database.",
"invalid_email" => "Invalid email syntax.",
"email_used" => "There is already an account created with this email.",
"bad_login"=> "Wrong email or password.",
"unknown" => "An error occured, please try again later.",
"send_email" => "Could not send the email",
"bad_magic" => "Wrong magic number, please check the email you have received from us."
);

function die_error($error){
global $errors;

if (isset($errors[$error]))
die ($errors[$error]);
else
die ("Unknown error");
}
?> <HTML lang=fr>
<!DOCTYPE HTML PUBLIC "-//W3C/DTD HTML 4.01//EN"
"http://www.w3c.org/TR/html4/strict.dtd">
<HEAD>
<TITLE>MPO</TITLE>
<META http-equiv="Content-Type" content="text/html;">
<STYLE>
li {
list-style-type: none
}
img {
border-style:outset;
border-width:5px;
}
.logo_module{
width:154px;
Oh bah ça alors ! Il détecte une balise. :P

Si ton serveur tourne bien il est peut être configuré pour ne pas interpréter les short_tags (qui sont dépréciés depuis PHP5).
Remplaces donc les <? par <?php

Eléphanteau du PHP | 19 Messages

23 juin 2012, 17:39

Bon bah t as raison...
MERCI !!!! =D>

Donc c est bien connecté alors.

Maintenant j'ai le pb d'ouverture de la session.
Mais je crois qu'il me manque une base de donnée avec les login et mots de passe.

Je commence déjà par corriger tous les php manquants.

Eléphanteau du PHP | 19 Messages

23 juin 2012, 18:02

Bon j'avance bien là, j'arrive à le logger mais il ne m'accorde aucun droit.

J'ai ça en erreur :
Notice: Undefined variable: _SESSION in C:\Program Files (x86)\EasyPHP-5.3.9\www\MPO\gestion\engine\init.php on line 29

Or en ligne 29 on a

/**
* Récupération de l'état de l'assistance pour le cas de connexion à
* distance sans passer par la page d'accueil
*/

if( !$_SESSION["assistance"] );
{
$sql = new DB;
$sql->query("SELECT * FROM gestion");
$sql->next_object();
$_SESSION["assistance"] = $sql->object->assistance;
}

Je vois pas trop le rapport.

Après il continue par :

Deprecated: Function session_unregister() is deprecated in C:\Program Files (x86)\EasyPHP-5.3.9\www\MPO\gestion\raz_session.php on line 8

Deprecated: Function session_unregister() is deprecated in C:\Program Files (x86)\EasyPHP-5.3.9\www\MPO\gestion\raz_session.php on line 9

Deprecated: Function session_unregister() is deprecated in C:\Program Files (x86)\EasyPHP-5.3.9\www\MPO\gestion\raz_session.php on line 10

Deprecated: Function session_unregister() is deprecated in C:\Program Files (x86)\EasyPHP-5.3.9\www\MPO\gestion\raz_session.php on line 11

Deprecated: Function session_unregister() is deprecated in C:\Program Files (x86)\EasyPHP-5.3.9\www\MPO\gestion\raz_session.php on line 12

Deprecated: Function session_unregister() is deprecated in C:\Program Files (x86)\EasyPHP-5.3.9\www\MPO\gestion\raz_session.php on line 13

Deprecated: Function session_unregister() is deprecated in C:\Program Files (x86)\EasyPHP-5.3.9\www\MPO\gestion\raz_session.php on line 14

Notice: Undefined variable: version in C:\Program Files (x86)\EasyPHP-5.3.9\www\MPO\gestion\engine\init.php on line 58

Notice: Undefined variable: affiche_perte_assistance in C:\Program Files (x86)\EasyPHP-5.3.9\www\MPO\gestion\index.php on line 119


Des que je suis loggé j'ai ça :

Notice: Undefined variable: _SESSION in C:\Program Files (x86)\EasyPHP-5.3.9\www\MPO\gestion\engine\init.php on line 29

Notice: Undefined variable: version in C:\Program Files (x86)\EasyPHP-5.3.9\www\MPO\gestion\engine\init.php on line 58


Puis aucuns accès aux menus de gestion comme si je n'avais aucuns droits.

ViPHP
xTG
ViPHP | 7331 Messages

23 juin 2012, 18:29

Vérifies qu'il y a bien un session_start() dans le script.

Concernant la fonction session_unregister() elle est dépréciée et a même été supprimée à partir de PHP 5.4
Remplaces là par la fonction unset().

Eléphanteau du PHP | 19 Messages

23 juin 2012, 18:55

Il n y avait pas de session start mais quand je le mets j ai :


Notice: A session had already been started - ignoring session_start() in C:\Program Files (x86)\EasyPHP-5.3.9\www\MPO\gestion\index.php on line 5

Ensuite pour les unset ça me indique :

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\Program Files (x86)\EasyPHP-5.3.9\www\MPO\gestion\raz_session.php on line 8

Dois je mettre une variable avant l'élément a détruire ?

ViPHP
xTG
ViPHP | 7331 Messages

23 juin 2012, 18:59

session_start() doit être la première instruction et ce avant tout affichage ou header().
Concernant le unset() montres nous comment tu l'utilises.