Connexion a une base de données avec PHP PDO
Résolu
LearnDeep
Messages postés
70
Statut
Membre
-
LearnDeep Messages postés 70 Statut Membre -
LearnDeep Messages postés 70 Statut Membre -
Bonjour , j'ai fonctionner mon application sur serveur local et tout marche bien mais quand j'ai éssayé de la fonctionné a un serveur réel , la connexion a la base n'éxiste pas
voici mon fichier.php
informations sur la base

voici mon fichier.php
<?php
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Credentials: true ");
header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS');
header("Access-Control-Allow-Headers: X-Custom-Header, Origin, Content-Type , Authorisation , X-Requested-With");
header("Content-Type: application/json; charset=UTF-8 ");
$json = file_get_contents('php://input');
$decoded = json_decode($json);
$email = htmlspecialchars($decoded->email, ENT_QUOTES);
$pass = htmlspecialchars($decoded->password, ENT_QUOTES);
function conn ()
{
$dbhost="localhost";
$user='smartlibffsmart';
$pass='smartlibffsmart';
$db='smart';
$conn = new PDO('mysql:host=smartlibffsmart.mysql.db;dbname=smartlibffsmart', $user, $pass);
return $conn;
}
function encrypt_decrypt($action, $string)
{
$output = false;
$encrypt_method = "AES-256-CBC";
$secret_key = 'WS-SERVICE-KEY';
$secret_iv = 'WS-SERVICE-VALUE';
$key = hash('sha256', $secret_key);
$iv = substr(hash('sha256', $secret_iv), 0, 16);
if ($action == 'encrypt') {
$output = base64_encode(openssl_encrypt($string, $encrypt_method, $key, 0, $iv));
} else {
if ($action == 'decrypt') {
$output = openssl_decrypt(base64_decode($string), $encrypt_method, $key, 0, $iv);
}
}
return $output;
}
if (empty($email) || empty($pass) || mb_strlen($pass) < 6 || mb_strlen($pass) > 30 ){
json_encode(false);
die;
}else{
$db = conn();
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$password = encrypt_decrypt('encrypt',$pass);
$res = $db->prepare("SELECT * FROM user WHERE email = ? and password = ? ");
$res->execute([$email,$password]);
$values = $res->fetchAll();
echo json_encode(sizeof($values) > 0 ? true : false);
}
?>
informations sur la base

2 réponses
-
Tu dois remplacer le host par l'adresse du serveur
-
Bonjour,
Commence par ça :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Et dis nous le message d'erreur qui t'est renvoyé....
A savoir que la plus part des hébergeurs n'autorisent pas une connexion distante. Donc ton script PHP doit se trouver sur leur serveur et non en local sur ton ordi....
-
-
-
elle n'a donné rien , le réponse est vide
voici le lien du sitehttp://smartlibrairie.com/#!/dashboard
dans la page connecter tu peux voir l'erreur dans le navigateur aprés la soumission du formulaire
le nom du domaine : www.smartlibrairie.com -
Tu as une erreur 500....
mais... as tu modifié le script en tenant compte de ce qui écrit dans le lien que je t'ai donné ?
Si oui.. montres nous ce que tu as modifié....
Vérifies également que ton fichier est bien encodé en utf8 sans BOM (voir chapitre un de ce lien : https://forums.commentcamarche.net/forum/affich-37584944-php-html-caracteres-accentues-et-l-utf8 )
Je précise également que l'instruction htmlspecialchars n'est à utiliser QUE pour l'affichage .. et en aucun cas pour la "récupération" des variables...
Je t'invite donc à lire et à appliquer le contenu de ce lien également :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Pour finir, pour déterminer où se situe ton erreur ( une fois que tu auras mis en pratique TOUS les conseils donnés dans mes liens... et si le souci persiste.... ) , tu devras mettre en commentaire tout ton code puis réactiver ligne par ligne (en testant à chaque fois ) jusqu'à tant que tu trouves la (ou les ) ligne(s) qui pose(nt) problème. -
voici l'appel du script dans la partie cliente angular 8 :
......... let newUser = new User(email, password, nomcomplet, occupation, ''); console.log(newUser); this.httpSubscription = this.http.post("http://www.smartlibrairie.com/SmartLibrary/api/logins.php", JSON.stringify(newUser)).subscribe(res => { console.log(res); if (res === true) { ...............
capture ecran :
s'il te plait dis moi si j'appelle incorrecteent les fichiers serveur ou peut etre j'appelle incorrectement le host dans le serveur
-