BD utilisant un serveur distant
Bonsoir!
J'ai créé un petit site et je l'ai hébergé chez "hostinger.fr", et dans mon code, je dois modifier ma base de données, mais quand j'applique pour ajouter un nouvel utilisateur par exemple dans la base, il me dit que l'opération est réussite, mais quand je vérifie ma base de données, elle est toujours telle qu'elle est. Toutes les requêtes ne marchent pas, alors que sur mon serveur local marche. En revanche, si j'utilise une BD que j'ai créé à mon serveur local, et je l'intègre dans le serveur distant, elle marche aussi sans problème, et je peux travailler avec elle.
Voilà mon code pour ajouter un utilisateur à la base par exemple :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Enregistrement du d\'un nouvel utilisateur</title>
</head>
<body>
<?php
$error='';
if (isset($_POST['nom_user']) AND isset($_POST['mot_d_pass']) AND isset($_POST['confirm_mpss']) AND isset($_POST['mail']))
{
$a=$_POST['nom_user'];
$mot=$_POST['mot_d_pass'];
$nmot=$_POST['confirm_mpss'];
$mai=$_POST['mail'];
$nb = strlen($a);
if($nb < 8)
{
$error='Le nombre de caractère de l\'identifiant doit être plus que 8';
}else
{
$i = 0;
while(($i < $nb) && ($a[$i] != ' '))
$i++;
if($i < $nb)
{
$error='L\'identifiant ne doit pas contenir des espaces';
}else
{
if($mot != $nmot)
{
$error='Vous n\'avez pas confirmer votre mot de passe correctement';
}else
{
try
{
$bdd = new PDO('mysql:host=monhost;dbname=mabase', 'xxx', 'yyy');
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
$bdd->query('SET NAMES utf8');
echo " test3";
}catch(Exception $e)
{
echo 'Erreur : '.$e->getMessage();
echo 'N :'.$e->getCode();
}
$req = $bdd->prepare('INSERT INTO users(id, identifiant, passe, mail) VALUES(NULL, :identifiant, :passe, :mail)');
$req->execute(array(
'identifiant' => $a,
'passe' => $mot,
'mail' => $mai
));
$req->closeCursor();
echo '<p align="center"> Les données ont été bien enregistrés ! <br/> <a href="index.php"> Retour à la page d\'acceuil </a> </p> ';
}
}
}
}
else // Sinon, on affiche un message d'erreur
{
echo '<p align="center">Veuillez insérer tous les champs<br/>';
echo '<p align="center"> Retour à la page d\'<a href="index.php">acceuil</a></p>';
}
?>
</body>
</html> |
Voilà, j'espère de trouver chez vous une réponse.
Merci d'avance
Cordialement
BD utilisant un serveur distant
Quand je change "WARNING" à "ECXEPTION", il n'affiche plus rien, sauf "test3" mis à la ligne 44. Alors j'ai ajouté quelques affichages aux lignes suivantes: 50, 57 et 59. et que celui de la ligne 50 est affiché !
Donc, je n'ai pas une erreur affiché, et ma base de données n'est éditée, en plus ce code marche sans problème en localhost :weird:
Est-ce que le fichier ".htaccess" peut être la source du problème :
Code:
1 2 3 4
|
# Do not remove this line or mod_rewrite rules and search engine friendly URLs will stop working
RewriteEngine On
RewriteBase /http://sql12.hostinger.fr/phpmyadmin/index.php?db=mabase&table=users&token=f724899f830202353786dad092de90b8 |
BD utilisant un serveur distant
Je ne sait pas vraiment comment faire, puisque je débute avec PHP, seulement j'ai ajouté ce code après la requête "prepare" :
Code:
1 2 3 4 5
|
if (!$req) {
echo "\nPDO::errorInfo():\n";
print_r($bdd->errorInfo());
} |
Sinon, je ne sais pas comment connaitre les erreurs :oops:
BD utilisant un serveur distant
J'ai mis ce code au début :
Code:
1 2 3 4 5
|
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
?> |
et j'ai eu l'erreur avec le NULL dans la ligne 51 du code (celui de la requête), comme quoi mon champ 'id' ne supporte pas le NULL. Le champ 'id' est un entier auto-incrémenté.
J'espère que vous avez une idée là !!
BD utilisant un serveur distant
Oui, c'est vrai, et je n'est pas fais attention!!! :oops:
Merci pour votre aide "sabotage", je suis très sincère.