OVH Community, votre nouvel espace communautaire.

Disfonctionnement suite à transfert perso2014


14PM2
06/04/2014, 22h53
Merci tout de même d'avoir tenté....

Gaston_Phone
06/04/2014, 22h42
Désolé. C'est trop compliqué à suivre pour moi. j'abandonne.

14PM2
06/04/2014, 22h35
Alors le $i, normalement permet de lire dans toute la table jusqu'à trouver le membre concerné, NON ?
Ensuite j'ai effectivement tenter de modifier mysql_db_query en mysql_query voir en mysqli_query, mais cela ne change rien.

Gaston_Phone
06/04/2014, 22h29
Déjà modifier :
Code PHP:
// Si la requête est erronée on affiche une page d'erreur
    
if(mysql_num_rows($requete)==0)
    {
        
header("Location:$url_erreur");exit;
    } 
en
Code PHP:
// Si la requête est erronée on affiche une page d'erreur
    
if(mysql_num_rows($requete)==0)
    {
        
mysql_close($db_link); 
        
header("Location:$url_erreur");exit;
    } 
D'où sort le "$i" dans :
Code PHP:
       // On va chercher dans la table la destination correspondant au membre
        
$destination=mysql_result($requete,$i,"destination"); 
Dans :
Code PHP:
// On ce connecte à la base et on recherche le membre avec son pseudo et son mot de passe
    
$requete=mysql_db_query($sql_bdd,"select * from membre where pseudo=\"$pseudo\" and passe=\"$passe\"",$db_link); 
mysql_db_query est obsolète :
Extrait de http://fr2.php.net/manual/fr/functio...l-db-query.php
(PHP 4, PHP 5)
mysql_db_query — Sélectionne une base de données et y exécute une requête
Avertissement
Cette extension est obsolète depuis PHP 5.5.0, et sera supprimée dans le futur. À la place, les extensions MySQLi ou PDO_MySQL doivent être utilisées. Voir aussi le guide MySQL : choix de l'API ainsi que la FAQ associée pour plus d'information. Voici les alternatives à cette fonction :
Peut-être est-cela la source de tes problèmes ?

14PM2
06/04/2014, 22h15
C'est un site composé par moi même de A à Z donc pas un CMS.

Alors voila:
On a déjà un fichier HTML pour l'identification du membre qui s'appelle index.php

Puis ce fichier qui permet la connection et la redirection vers une pas protégée qui s'appelle login.php
Code PHP:
// On va chercher les infos pour la connexion
    
require("admin/secur/conf.php");

// On ce connecte au serveur
    
$db_link mysql_connect($sql_serveur,$sql_user,$sql_passwd);

// On ce connecte à la base et on recherche le membre avec son pseudo et son mot de passe
    
$requete=mysql_db_query($sql_bdd,"select * from membre where pseudo=\"$pseudo\" and passe=\"$passe\"",$db_link);

// Si la requête est erronée on affiche une page d'erreur
    
if(mysql_num_rows($requete)==0)
    {
        
header("Location:$url_erreur");exit;
    }
// Si la requête est bonne on continu    
    
else
    {
        
// On va chercher dans la table la destination correspondant au membre
        
$destination=mysql_result($requete,$i,"destination");
        
        
// On va crée un clé aléatoire qui servira de sécurité
        
$taille 20;
        
$lettres "abcdefghijklmnopqrstuvwxyz0123456789";
        
srand(time());
        for (
$i=0;$i<$taille;$i++)
        {
            
$id.=substr($lettres,(rand()%(strlen($lettres))),1);
        }
        
        
// On ajoute cette clé dans la base au membre connecté
        
$requete=mysql_db_query($sql_bdd,"update membre set id=\"$id\" where pseudo=\"$pseudo\" and passe=\"$passe\"",$db_link);
        
        
// On renvoi vers sa page de destination en ajoutant la clé dans l'adresse
        
header("Location:$destination?id=$id");
}

mysql_close($db_link);
?>
Ensuite on a la page protégée qui s'appelle comme on voudra, puisque cela peut-être n'importe laquelle, mais elle doit contenir en haut ceci:
Code PHP:
// On va chercher les infos pour la connexion
include ($_SERVER["DOCUMENT_ROOT"].'/prive/admin/secur/conf.php');

// On se connecte au serveur
    
$db_link mysql_connect($sql_serveur,$sql_user,$sql_passwd);

// On se connecte à la base et on recherche le membre ayant l'id attibuée lors de la connexion
    
$requete=mysql_db_query($sql_bdd,"select * from membre where id=\"$id\"",$db_link);

// Si la requête est erronée on affiche une page d'erreur 
     
if(mysql_num_rows($requete)==0)
     {
        
header("Location:$url_erreur");
     }

// si la requête est bonne on affiche la suite.
 
 
?>
L'url de la page en question est http://www.aigurande.fr/prive/index.php, même si je ne vois pas à quoi cela peut bien servir, si ce n'est à faire un peu de pub.

Je ne mets pas en doute tes compétences, loin de moi cette idée.

Edit: Ce même script fonctionne sur ce site http://www.cinemaj.patmax.fr/prive

Gaston_Phone
06/04/2014, 22h14
Citation Envoyé par 14PM2
Je ne comprend pas....
Je t'ai redonné mon script avec les indentations et je te réponds que je ne comprend pas ta remarque sur l'ordonnancement des scripts.
Tout le monde n'a pas la science infuse et heureusement.
Je veux bien apporter mon aide mais il faut aussi comprendre que je ne comprenne pas tout.
Je n'ai pas de boule de cristal, ni de diplôme de DEVIN.

Par contre, j'ai une certaine expérience de l'informatique et des sites sur l'hébergement mutualisé.
Dernière action en date --> http://forum.ovh.com/showthread.php?...!&goto=newpost

Gaston_Phone
06/04/2014, 22h05
Qui a réalisé ton site ?
Est-ce un CMS (Joomla, Wordpress, etc. ) ?

Tu mets des scripts sans mettre leur nom et leur chemin.
De plus tu oublie de nous donner l'URL de la page qui a un soucis.

14PM2
06/04/2014, 22h00
Je ne comprend pas....

Je t'ai redonné mon script avec les indentations et je te réponds que je ne comprend pas ta remarque sur l'ordonnancement des scripts.

Tout le monde n'a pas la science infuse et heureusement.
Je veux bien apporter mon aide mais il faut aussi comprendre que je ne comprenne pas tout.

Gaston_Phone
06/04/2014, 21h54
Désolé, mais sans un minimum de participation de ta part, il sera difficile de t'aider.

14PM2
06/04/2014, 21h49
Citation Envoyé par Gaston_Phone
Essaie aussi d'expliquer le principe et l'ordonnancement de tes scripts décrits en #3.
?????

14PM2
06/04/2014, 21h47
Ok, c'est que je n'avais pas le bouton en réponse rapide, désolé, je découvre ce forum.
Ce devrait être mieux comme cela.
Code PHP:
require("admin/secur/conf.php");

$db_link mysql_connect($sql_serveur,$sql_user,$sql_passwd);
$requete=mysql_db_query($sql_bdd,"select * from membre where pseudo=\"$pseudo\" and passe=\"$passe\"",$db_link);
if(
mysql_num_rows($requete)==0)
{
    
header("Location:$url_erreur");exit;
}
else
{
    
$destination=mysql_result($requete,$i,"destination");
    
$taille 20;
    
$lettres "abcdefghijklmnopqrstuvwxyz0123456789";
    
srand(time());
    for (
$i=0;$i<$taille;$i++)
    {
        
$id.=substr($lettres,(rand()%(strlen($lettres))),1);
    }

    
$requete=mysql_db_query($sql_bdd,"update membre set id=\"$id\" where pseudo=\"$pseudo\" and passe=\"$passe\"",$db_link);

    
header("Location:$destination?id=$id");
}

mysql_close($db_link);
?> 

Gaston_Phone
06/04/2014, 21h45
Essaie aussi d'expliquer le principe et l'ordonnancement de tes scripts décrits en #3.

Gaston_Phone
06/04/2014, 21h41
Citation Envoyé par 14PM2
C'est le forum qui a modifié les indentations....
Hum! Hum! :
Code PHP:
   echo "Bonjour. Nous sommes le ".date ("Y-m-d H:i:s")."
"
;
?>
Chez moi l'édentation est respectée.

14PM2
06/04/2014, 21h31
C'est le forum qui a modifié les indentations.
Je confirme que cela ne fonctionne pas non plus pour le systeme upload qui lui ne fonctionne pas avec des requêtes SQL.
Il y a donc bien un souci du au transfert.
Apparrement, je pencherai sur un truc de sécurité qui m'empêcherai de faire des modifications depuis mes fichiers, car j'arrive bien à lire mes tableaux SQL, mais dès que je veux faire une interventions, cela coince.
J'ai tenter ton code de test j'obtiens ce résultat
mysql_connect=Resource id #2 - Erreur=
mysql_select_db=1 - Erreur=

Test de DROP/CREATE de la table 'Tab_test_DB' dans la base 'aigurand' sur le serveur 'mysql5-3.60gp'

Supression de la table Tab_test_DB - Erreur= - $sql_query=DROP TABLE IF EXISTS `Tab_test_DB` - $result_query=1
Création de la table Tab_test_DB- Erreur= - $sql_query=CREATE TABLE `Tab_test_DB` ( `Id` int(11) NOT NULL auto_increment, `NOM` varchar(32) NOT NULL default '', `PRENOM` varchar(32) NOT NULL default '', PRIMARY KEY (`Id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 - $result_query=1
Ajout d'un enregistrement - Erreur= - $sql_query=INSERT INTO `Tab_test_DB` values ('','DURANDAL','Michel') - $result_query=1
Ajout d'un enregistrement - Erreur= - $sql_query=INSERT INTO `Tab_test_DB` values ('','DURANDAL','Pierre') - $result_query=1
Ajout d'un enregistrement - Erreur= - $sql_query=INSERT INTO `Tab_test_DB` values ('','accents-éèàâ','Jean-Noël') - $result_query=1
SELECT dans la table Tab_test_DB - Erreur= - $sql_query=SELECT Id, NOM, PRENOM FROM `Tab_test_DB` WHERE NOM='DURANDAL' - $result_query=Resource id #3
SELECT dans la table Tab_test_DB - Erreur= - $sql_query=SELECT Id, NOM, PRENOM FROM `Tab_test_DB` - $result_query=Resource id #4
Nombre d'enregistrements trouvés = 3
Table Tab_test_DB : 1 - $NOM=DURANDAL - $PRENOM=Michel
Table Tab_test_DB : 2 - $NOM=DURANDAL - $PRENOM=Pierre
Table Tab_test_DB : 3 - $NOM=accents-éèàâ - $PRENOM=Jean-Noël

Durée du traitement = 0.10 secondes

Gaston_Phone
06/04/2014, 21h09
Je n'en sais rien.

Mais ton premier fichier "sans nom" est si mal présenté (pas d'édentation) , que j'ai du mal à le comprendre.

14PM2
06/04/2014, 21h05
Et tu crois que cela est la cause de mon souci, parce que je n'ai rien changé par rapport à avant ?

Gaston_Phone
06/04/2014, 20h16
Tu oublies de fermer les sessions SQL après chaque utilisation.

14PM2
06/04/2014, 20h07
J'ai donc un fichier pour ce connecter qui renvoie vers un fichier qui est composé du code suivant:
require("admin/secur/conf.php");

$db_link = mysql_connect($sql_serveur,$sql_user,$sql_passwd);
$requete=mysql_db_query($sql_bdd,"select * from membre where pseudo=\"$pseudo\" and passe=\"$passe\"",$db_link);
if(mysql_num_rows($requete)==0)
{
header("Location:$url_erreur");exit;
}
else
$destination=mysql_result($requete,$i,"destination ");
{
$taille = 20;
$lettres = "abcdefghijklmnopqrstuvwxyz0123456789";
srand(time());
for ($i=0;$i<$taille;$i++)
{
$id.=substr($lettres,(rand()%(strlen($lettres))),1 );
}

$requete=mysql_db_query($sql_bdd,"update membre set id=\"$id\" where pseudo=\"$pseudo\" and passe=\"$passe\"",$db_link);

header("Location:$destination?id=$id");
}

mysql_close($db_link);
?>
Dans la base de données nous récupérons ainsi le pseudo, le mot de passe, une id ainsi que la destination pour le renvoi.
Ensuite chaque page protégée comporte en entête le code suivant
$db_link = mysql_connect($sql_serveur,$sql_user,$sql_passwd);
$requete=mysql_db_query($sql_bdd,"select * from membre where id=\"$id\"",$db_link);
if(mysql_num_rows($requete)==0)
{
header("Location:$url_erreur");
}
?>
Je suis la dessus depuis trois jours sans trouver le souci.

Gaston_Phone
06/04/2014, 19h54
Curieux ton problème de partie de site protégée.

N'aurais-tu pas de liens en "dur" dans tes scripts ?
URL ?

14PM2
06/04/2014, 19h08
Bonjour à tous,

J'avais un site qui était sur une offre 60gp qui fonctionnait à merveille, sauf que l'espace est devenu trop petit.
J'ai donc décidé de passé sur une offre plus importante, en l'occurrence une perso2014.

Si le transfert c'est apparemment très bien passé, je rencontre cependant quelques soucis.
Le premier et pas des moindres, c'est que j'ai une partie du site qui est protégée et il me faut exécuter des requêtes SQL et qu'apparemment celles-ci ne fonctionnent plus empêchant ainsi toute connexion des personnes habilitées.

D'autre part, j'ai également un fichier phphtaccess version 1.03, que je voulais utilisé pour tenter de résoudre mon souci par un autre biais, et bien lui non plus ne fonctionne pas.
Et je crois voir que mon système d'upload via des commande FTP est lui aussi en rade.

Qu'elle est la démarche à suivre pour tenter de remettre tout cela en concordance ?

Merci de tenter de m'aider.