Ce n'est pas une question habituelle mais une demande d'aide clé en main pour cause de problème de langue.
Je m'explique. Grâce à un pote Espagnol, nous avons un projet finalisé de plateforme de membres (avec une nouvelle table de membres) et qui marche parfaitement sur un serveur qu'il a créé pour nous chez lui (mais pas sur notre serveur local ni sur notre hébergeur).
Chance il est un professionnel en codage sql-php (pour nous c'est gratis).
Malchance majeure il ne parle ni Français ni Anglais et on correspond via le traducteur Google.
Cela a été OK pour expliquer notre projet mais injouable quand il s'agit d'aller dans les détails de codage (où se trouve le diable comme chacun sait).
Il travaille en sqli et pas en PDO et on aurait besoin d'un expert de ce forum pour faire la traduction (pas avec Google... je plaisante!).
Nous avons plusieurs requêtes sql à "traduire" en PDO, mais la plus importante concerne l'accès à la base de données sur la page d'accueil de cette plateforme car là nous avons une erreur qui n'a rien à voir avec le code php et qui bloque tout.
J'insiste : nous avons déjà une BDD qui fonctionne nickel mais actuellement les membres inscrits y accèdent selon un mode manuel sans table "membres" dans la BDD.
Donc pour sa page de plateforme de membres (login, inscription, PW oublié, etc.) il a écrit le code suivant en essayant d'adapter en PDO (mais cela ne marche pas):
<?php
$v_editor_name = "xxxxx";
$editor_email = "yyyyyy";
$v_url = "zzzzzzz";
$v_web_name = "ttttt";
$v_pages_dir = "ppppppp";
session_start();
error_reporting(E_ALL);
require ("z007/aaaz-connect.php");
// ci dessus le fichier connect qui contient les données de $PARAM_hote, de $PARAM_port, de $PARAM_nom_bd, de $PARAM_utilisateur, de $PARAM_mot_passe
try {
$pdo = new PDO('mysql:host=' . $PARAM_hote . ';dbname=' . $PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe, array(
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
} catch (Exception $e) {
echo 'Erreur : ' . $e->getMessage() . '<br />';
echo 'N° : ' . $e->getCode();
}
require('headermysql.php');
// header est un fichier contenant les meta et les include de haut de page en php, rien concernant la BDD
/************************************************************************/
if (isset($_SESSION['action'])) {
$_POST['action'] = $_SESSION['action'];
unset($_SESSION['action']);
}
/************************************************************************/
if (isset($_POST['action'])) {
switch ($_POST['action']) {
case "Login":
require('check_user.php');
break;
case "Registration":
require('form_registration.php');
break;
case "Validation":
require('validation_inscription.php');
if (isset($_SESSION['message'])) {
// Redirect
$_SESSION['action'] = "Registration";
header("Location: ".$_SERVER['PHP_SELF']);
exit;
} else {
// Success
}
break;
case "Password_forgotten":
echo "<form method='post'>";
echo "Email: <input type='text' name='email' /><br />";
echo "<input type='submit' name='action' value='Renew_password' /><br />";
echo "</form>";
break;
case "Renew_password":
require('renew_password.php');
break;
default:
// Print & delete messages
if (isset($_SESSION['message'])) {
echo $_SESSION['message']."<br />";
unset($_SESSION['message']);
}
break;
}
}
/********************************************************************************************************/
if (isset($_SESSION['user']['user'])) {
// Authorized visitor
include('page_authorized_visitor.php');
} else {
// Unauthorized visitor
require('login.php');
include('page_unauthorized_visitor.php');
}
En comparaison:Pour info, actuelllement, nos pages d'accès à la base de données avec requêtes en PDO sont du type suivant (et elles marchent depuis longtemps):
<?php
error_reporting(E_ALL);
require ("z007/aaaz-connect.php");
try {
$connexion = new PDO('mysql:host=' . $PARAM_hote . ';dbname=' . $PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe, array(
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
} catch (Exception $e) {
echo 'Erreur : ' . $e->getMessage() . '<br />';
echo 'N° : ' . $e->getCode();
}
//code php
$requete = $connexion->prepare("SELECT Used_names, Correct_names, Current_trinom_name, Current_status FROM tablebase1 left outer join tablebase2 on (tablebase1.Rk_Hist = tablebase2.Rk_Hist) left outer join tablebase3 on (tablebase3.Rk_Hist = tablebase2.Rk_Hist) WHERE tablebase1.Rk_Hist and Used_names is not null and trim(Used_names) != ''");
$requete->bindParam(':Rk_Hist', $Rk_Hist, PDO::PARAM_INT);
$requete->execute();
$result[1] etc.
?>
Voilà, bien sûr nous n'avons pas de connaissance MySql... en espérant qu'un expert pourra nous aider!Seb