Prob PHP / MySQL

Prob PHP / MySQL - PHP - Programmation

Marsh Posté le 14-10-2009 à 02:31:16    

Bonjour
 
Donc voila un de mes ami a eu des probleme avec son ancien hebergeur  :fou: et ma demander si je pouvais l'aider avec son site PHP / MYSQL  :pt1cable:  
il ma donner tout ce qu'il a pu récuperer de la racine du ftp mais il n'a pas pu recuperer la base de donnée  :o  
 
 
Donc j'ai commencer par copié tous ce quil ma donner sur mon hebergeur  
ce qui ma donner ce message d'erreur :pfff:  
 
Warning: mysql_pconnect() [function.mysql-pconnect]: Can't connect to local MySQL server through socket '/tmp/mysqld.sock' (2) in /homepages/27/d285131543/htdocs/LESITE/www/Connections/dbconnect.php on line 9
 
Fatal error: Can't connect to local MySQL server through socket '/tmp/mysqld.sock' (2) in /homepages/27/d285131543/htdocs/LESITE/www/Connections/dbconnect.php on line 9
 
J'ai donc creer un base mysql vierge et changer le dbconnect.php :na:  
 
ce qui ma donner ce message d'erreur :pfff:  
 
Fatal error: Cannot redeclare __autoload() (previously declared in /homepages/27/d285131543/htdocs/LESITE/www/includes/tng/tNG.inc.php:87) in /homepages/27/d285131543/htdocs/LESITE/www/includes/tng/tNG.inc.php on line 303
 
Si quelqu'un pourrais m'aider  :hello:  
J'imagine bien que le fait de ne pas avoir la base de donnée original peut poser quelque soucis mais peu etre existe t'il un moyen de retrouver au moi la structure de la base


Message édité par Arzos le 14-10-2009 à 02:33:00
Reply

Marsh Posté le 14-10-2009 à 02:31:16   

Reply

Marsh Posté le 14-10-2009 à 10:05:33    

'/tmp/mysqld.sock'  -> je pense que soit le répertoire /tmp n'existe pas soit t'as pas les bons droits
 
Cannot redeclare __autoload() -> la méthode a été déclarée 2 fois, faut en supprimer une.


Message édité par rufo le 14-10-2009 à 10:05:47

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 14-10-2009 à 10:07:04    

  • Sauvegarde de la base de données - qui a dû être faite régulièrement :D  
  • Documentation du programme :D  


Sinon, si c'est un CMS, tu devrais pouvoir t'en sortir en l'installant et export/import de la BDD.
 
Et sinon - si programme "maison" non documenté, sans sauvegardes... Bien fait pour lui !  :kaola:  
 
A la limite, si la BDD a été construite correctement, il faudra éplucher tout le code pour obtenir les informations sur la base (tables => champs, liens logiques entre les tables, etc.) et essayer de reconstruire la BDD à partir de là...
Mais dans ce cas, ce serait peut-être carrément plus simple de refaire le programme, en le documentant et en incluant des sauvegardes automatisées régulières.

Reply

Marsh Posté le 14-10-2009 à 10:26:46    

Bon le premier message "Can't connect to local MySQL server ..." c'est tout simplement que tu as fourni des mauvais identifiants de connexion à la base de données, donc vérifie encore.  
 
Pour le deuxième problème, va à la ligne 303 de ton fichier /includes/tng/tNG.inc.php  
et met ça autour de ta fonction __autoload :
 
if(!function_exists(__autoload)) {
 
 
 
}
 
Ca devrait au moins t'éviter d'avoir des fatal error et te permettre d'avancer un peu

Reply

Marsh Posté le 14-10-2009 à 10:59:22    

frano9 a écrit :

Bon le premier message "Can't connect to local MySQL server ..." c'est tout simplement que tu as fourni des mauvais identifiants de connexion à la base de données, donc vérifie encore.

Le premier problème est corrigé, si j'ai bien suivi...

frano9 a écrit :

Pour le deuxième problème, va à la ligne 303 de ton fichier /includes/tng/tNG.inc.php  
et met ça autour de ta fonction __autoload :
 
if(!function_exists(__autoload)) {
}
 
Ca devrait au moins t'éviter d'avoir des fatal error et te permettre d'avancer un peu


Sauf qu'avant le changement d'hébergeur, il n'y avait pas ce problème...
Deux possibilités :
- Paramètrages de php différents (plus permissif sur l'ancien)
=> Il faut corriger les scripts, à mesure que tu constates les erreurs
 
- Problème lié à la non-existence des tables
=> Se résoudra automatiquement une fois que tu auras reconstruit les tables.
(Par exemple, des tests qui sont théoriquement exclusifs, une fois qu'on a une BDD correcte)
 
Pour en dire plus, il faudrait voir le code...

Reply

Marsh Posté le 14-10-2009 à 11:23:11    

En changeant d'hébergeur, y'a aucune chance que les infos de connexions à la BD soient les mêmes (à commencer par le nom du serveur).


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 14-10-2009 à 13:43:23    

rufo a écrit :

En changeant d'hébergeur, y'a aucune chance que les infos de connexions à la BD soient les mêmes (à commencer par le nom du serveur).


euh... localhost?  :sarcastic:

Reply

Marsh Posté le 15-10-2009 à 01:57:55    

Deja merci à vous tous.
 
Info supplementaire  
 
La base de donnée mysql que j'ai creer sur le nouveau hebergeur est vierge  
Car il n'a pas pu la récuperer,
j'imagine que je doit maintenant recréer au moins la structure pour que le site fonctionne donc ma question serait de savoir à partir de quel fichier je peu recuperer les infos
 
Je vous met a disposition arborescence du repertoire www
 
http://nsa11.casimages.com/img/2009/10/15/mini_091015020110966245.jpg
 
 
Je me tient à disposition si quelqun peu m'aider envoyer moi un message privé que l'on puise passe sur msn ou skype
merci d'avance

Reply

Marsh Posté le 16-10-2009 à 18:32:11    

J'ai commencerà regarder les fichiers du repertoire \www mais je ne voit pas ou trouver les elements pour reconstruire la base de données du site  
Quelqu'un pourrais m'aider please ?

Reply

Marsh Posté le 17-10-2009 à 11:13:10    

il faut que tu ouvres tous les fichiers PHP pour voir les requêtes insert, update, etc. de façon à récupérer le nom de la table ainsi que les champs nécessaires ... mais
- c'est long
 
- c'est pas garanti que tu retrouves la base exactement dans le même état (tu ne sais pas si c'est un varchar(6) ou un varchar(255) par exemple, si tu n'y stockes que le code postal - toute considération d'optimisation mise à part)
 
s'il a encore son accès mysql sur l'ancien hébergeur, le mieux serait qu'il fasse un script d'export "manuel" des tables ...


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 17-10-2009 à 11:13:10   

Reply

Marsh Posté le 19-10-2009 à 13:56:56    

Il a toujours acces au FTP est ce qu'il y a une possibilité de mettre un fichier script php pour faire une sauvegarde de la base comme ceci :
 
Et surtout comment le lancer depuis le navigateur  
 
PS1 : qu'est ce que je doit modifier dans ce fichier ?
PS2 : ce qui est en rouge est a remplir ou il y a encore autre chose .
 
function dumpMySQL($serveur, $login, $password, $base, $mode)  
{
    $connexion = mysql_connect($serveur, $login, $password);
    mysql_select_db($base, $connexion);
     
    $entete = "-- ----------------------\n";
    $entete .= "-- dump de la base ".$base." au ".date("d-M-Y" )."\n";
    $entete .= "-- ----------------------\n\n\n";
    $creations = "";
    $insertions = "\n\n";
     
    $listeTables = mysql_query("show tables", $connexion);
    while($table = mysql_fetch_array($listeTables))
    {
        // si l'utilisateur a demandé la structure ou la totale
        if($mode == 1 || $mode == 3)
        {
            $creations .= "-- -----------------------------\n";
            $creations .= "-- creation de la table ".$table[0]."\n";
            $creations .= "-- -----------------------------\n";
            $listeCreationsTables = mysql_query("show create table ".$table[0], $connexion);
            while($creationTable = mysql_fetch_array($listeCreationsTables))
            {
              $creations .= $creationTable[1].";\n\n";
            }
        }
        // si l'utilisateur a demandé les données ou la totale
        if($mode > 1)
        {
            $donnees = mysql_query("SELECT * FROM ".$table[0]);
            $insertions .= "-- -----------------------------\n";
            $insertions .= "-- insertions dans la table ".$table[0]."\n";
            $insertions .= "-- -----------------------------\n";
            while($nuplet = mysql_fetch_array($donnees))
            {
                $insertions .= "INSERT INTO ".$table[0]." VALUES(";
                for($i=0; $i < mysql_num_fields($donnees); $i++)
                {
                  if($i != 0)
                     $insertions .=  ", ";
                  if(mysql_field_type($donnees, $i) == "string" || mysql_field_type($donnees, $i) == "blob" )
                     $insertions .=  "'";
                  $insertions .= addslashes($nuplet[$i]);
                  if(mysql_field_type($donnees, $i) == "string" || mysql_field_type($donnees, $i) == "blob" )
                    $insertions .=  "'";
                }
                $insertions .=  " );\n";
            }
            $insertions .= "\n";
        }
    }
 
    mysql_close($connexion);
 
    $fichierDump = fopen("dump.sql", "wb" );
    fwrite($fichierDump, $entete);
    fwrite($fichierDump, $creations);
    fwrite($fichierDump, $insertions);
    fclose($fichierDump);
    echo "Sauvegarde réalisée avec succès !!";
}
 
recuperez sur le site developez.net
 
Merci de votre aide
 
 
}

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed