Creer une table sql avec php pour chaque utilisateur [Résolu/Fermé]

Signaler
-
 Gilles229_229 -
Salut. J'aimerai vous soumettre une requête dans l'espoir de finalement trouver une solution.
Mon problème est le suivant:
Je mets en place un forum local pour faciliter les echanges de données entre utilisateurs local grace à wamp.
Mais pour la messagerie je tente de creer une table dont le nom est celui de l'addresse email fournit lors de l'inscription .Mais apres des recherches sur internet je m'appercois que le nom d'une table dans la base de donnée sql est figé et donc je ne sais pas comment m'y prendre
Mon code est le suivant:
<?php
session_start();
$_SESSION['nom'] = htmlspecialchars($_POST["Nom"]);
$_SESSION['prenom'] = htmlspecialchars($_POST["Prenom"]);
$_SESSION['email'] = htmlspecialchars($_POST["Email"]);
$_SESSION['pays'] = htmlspecialchars($_POST["pays"]);
?>
<link rel="stylesheet" type="text/css" href="styleredirect.css">
<?php
$pdo = null;
try
{
$pdo = new PDO('mysql:host=localhost;dbname=tests','root','',array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));

}
catch (Exception $e)
{
die ('Erreur de connection:' .$e->getMessage());
}


//verification de l'existance au préalable
$verif=$pdo->prepare("SELECT * FROM utilisateurs WHERE email=?");

$verif->execute([$_SESSION['email']]);
$user=$verif->fetch();
if($user)
{
// email existe deja
header('Location:Inscription.php');
}

else
{

$insertion = $pdo->prepare('INSERT INTO utilisateurs (id, nom, prenom, password, email, pays) VALUES(NULL,?,?,?,?,?)');
$insertion->execute(array($_SESSION['nom'],$_SESSION['prenom'],$_SESSION['password'],$_SESSION['email'],$_SESSION['pays']));

header('Location:page1.php');
}
?>


EDIT : Ajout des balises de code
Comment pourrais je faire pour doter chaque utilisateur d'une table ayant le nom de leur addresse email

1 réponse

Messages postés
30140
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 novembre 2020
2 969
Bonjour,

Pour commencer... lorsque tu postes du code sur le forum, tu dois utiliser les BALISES DE CODE.
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Ensuite.. tu utilises mysql et non sqlserver (le forum que tu as choisi...)

Et vu que ta question semble d'avantage concerner le php.. je déplace ta question dans le forum php.

Et enfin...
Creer une table sql avec php pour chaque utilisateur

Sauf que :
1 - On évite de créer des tables à la volée... on défini la structure de la BDD avant de coder et après on évite de la modifier.

2 - Rien dans ton code ne montre une éventuelle création de table.

3 - Il faut activer l'affichage des erreurs PHP ainsi que traiter les éventuelles erreurs PDO
Pour ça, : voir le contenu de ces deux liens :
https://www.commentcamarche.net/faq/48399-php-gestion-des-erreurs-debogage-et-ecriture-du-code
https://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs

4 - Pour pouvoir voir les éventuelles erreurs, il te faut mettre en commentaire les redirections.
(le temps de finaliser ton code).


Reviens nous voir avec le code modifié si tu rencontres toujours des soucis.



Messages postés
30140
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 novembre 2020
2 969
Ah.. et.. la fonction htmlspecialchars ne s'utilise que pour de l'affichage. En aucun cas pour des traitements en bdd.

Je comprends ce que tu dis j'en prendrai note mais aurais t'il un moyen de doter chaque utilisateur d'une messagerie
Je suis partant pour une proposition et faire des erreurs me motive à continuer
Messages postés
30140
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 novembre 2020
2 969 > Gilles229_229
Pour créer une messagerie interne, il te suffit d'une table avec les champs ( id, to, from , subject , message )
  • to : id de l'utilisateur à qui est envoyé le message
  • from : id de l'utilisateur qui a envoyé le message
  • subject : sujet du message
  • message.. ben.. le message


comme tu le vois, pas besoin de créer une table par utilisateur....
>
Messages postés
30140
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 novembre 2020

Je vois j'y avais pensé mais je pensais que faire comme précedement décris serait plus facile .
Mais je viens de comprendre
Merci