Comment relier une base de données Access

Résolu/Fermé
03audrey03 Messages postés 39 Date d'inscription mercredi 4 novembre 2009 Statut Membre Dernière intervention 16 novembre 2015 - 28 avril 2010 à 09:28
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 - 11 mai 2010 à 17:01
Bonjour,

je dois créer un site et j'ai créer une base de données sous Access.
Il faut maintenant que je la relie à ma page html, comment faire? Merci.


6 réponses

avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 497
28 avril 2010 à 14:59
En PHP (ou ASP).
Je te conseil d'utiliser un système gratuit et open source comme MySQL ou PostgreSQL, ça t'évitera de devoir ensuite prendre un serveur sous Windows (et donc payer plus cher).
0
03audrey03 Messages postés 39 Date d'inscription mercredi 4 novembre 2009 Statut Membre Dernière intervention 16 novembre 2015 8
28 avril 2010 à 22:30
ok merci mais comment faire avec MySQL?
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 497
28 avril 2010 à 23:13
Pour le développement en local, tu peux utiliser Wampserver (un environnement développement avec Apache + PHP et MySQL + PhpMyAdmin).

Pour apprendre le PHP et le SQL : Siteduzero.com
0
03audrey03 Messages postés 39 Date d'inscription mercredi 4 novembre 2009 Statut Membre Dernière intervention 16 novembre 2015 8
4 mai 2010 à 15:33
ok merci pour vos réponses, finalement j'ai refait ma base de données avec le programme EasyPHP car c'est plus facile, j'espère que ça va marcher, si vous avez des conseils ou des astuces à me donner n'hésitez pas :)
0
Neliel Messages postés 6146 Date d'inscription jeudi 9 juillet 2009 Statut Contributeur Dernière intervention 20 mars 2017 1 688
4 mai 2010 à 15:35
Je connais bien EasyPHP (ainsi que le PHP et MySql), si tu as des soucis, je t'aiderai.
0
03audrey03 Messages postés 39 Date d'inscription mercredi 4 novembre 2009 Statut Membre Dernière intervention 16 novembre 2015 8
9 mai 2010 à 19:33
Merci, justement j'ai un souci, je me suis aidée des tuto du site http://www.asp-php.net/tutorial/asp-php/creer-un-espace-membre-en-php.php?page=2 et lorsque je saisis un nom un mot de passe et une adresse email pour enregistrer un compte (pour le tester) google me dit qu'il ne trouve pas la page. Que faire? Merci pour vos réponses.
0
Neliel Messages postés 6146 Date d'inscription jeudi 9 juillet 2009 Statut Contributeur Dernière intervention 20 mars 2017 1 688
10 mai 2010 à 08:01
Peux-tu poster le code de ta page ?
0
03audrey03 Messages postés 39 Date d'inscription mercredi 4 novembre 2009 Statut Membre Dernière intervention 16 novembre 2015 8
10 mai 2010 à 21:21
<?php

// Redirige l'utilisateur s'il est déjà identifié
if(isset($_COOKIE["ID_UTILISATEUR"]))
{
header("Location: index.php");
}
else
{

// Formulaire visible par défaut
$masquer_formulaire = false;

// Une fois le formulaire envoyé
if(isset($_POST["BT_Envoyer"]))
{

// Vérification de la validité des champs
if(!ereg("^[A-Za-z0-9_]{4,20}$", $_POST["TB_Nom_Utilisateur"]))
{
$message = "Votre nom d'utilisateur doit comporter entre 4 et 20 caractères<br />\n";
$message .= "L'utilisation de l'underscore est autorisée";
}
elseif(!ereg("^[A-Za-z0-9]{4,}$", $_POST["TB_Mot_de_Passe"]))
{
$message = "Votre mot de passe doit comporter au moins 4 caractères";
}
elseif($_POST["TB_Mot_de_Passe"] != $_POST["TB_Confirmation_Mot_de_Passe"])
{
$message = "Votre mot de passe n'a pas été correctement confirmé";
}
elseif(!ereg("^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]{2,}[.][a-zA-Z]{2,4}$",
$_POST["TB_Adresse_Email"]))
{
$message = "Votre adresse e-mail n'est pas valide";
}
else
{

// Connexion à la base de données
mysql_connect("localhost", "root", "");
mysql_select_db("aspaa");

// Vérification de l'unicité du nom d'utilisateur et de l'adresse e-mail
$result = mysql_query("
SELECT Nom_Utilisateur
, Adresse_Email
FROM comptes_utilisateurs
WHERE Nom_Utilisateur = '" . $_POST["TB_Nom_Utilisateur"] . "'
OR Adresse_Email = '" . $_POST["TB_Adresse_Email"] . "'
");

// Si une erreur survient
if(!$result)
{
$message = "Erreur d'accès à la base de données lors de la vérification d'unicité";
}
else
{

// Si un enregistrement est trouvé
if(mysql_num_rows($result) > 0)
{

while($row = mysql_fetch_array($result))
{

if($_POST["TB_Nom_Utilisateur"] == $row["Nom_Utilisateur"])
{
$message = "Le nom d'utilisateur " . $_POST["TB_Nom_Utilisateur"];
$message .= "est déjà utilisé";
}
elseif($_POST["TB_Adresse_Email"] == $row["Adresse_Email"])
{
$message = "L'adresse e-mail " . $_POST["TB_Adresse_Email"];
$message .= "est déjà utilisée";
}

}

}
else
{

// Génération de la clef d'activation
$caracteres = array("a", "b", "c", "d", "e", "f", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
$caracteres_aleatoires = array_rand($caracteres, 8);
$clef_activation = "";

foreach($caracteres_aleatoires as $i)
{
$clef_activation .= $caracteres[$i];
}

// Création du compte utilisateur
$result = mysql_query("
INSERT INTO comptes_utilisateurs(
Nom_Utilisateur
, Mot_de_Passe
, Adresse_Email
, Date_Inscription
, Clef_Activation
)
VALUES(
'" . $_POST["TB_Nom_Utilisateur"] . "'
, '" . md5($_POST["TB_Mot_de_Passe"]) . "'
, '" . $_POST["TB_Adresse_Email"] . "'
, '" . time() . "'
, '" . $clef_activation . "'
)
");

// Si une erreur survient
if(!$result)
{
$message = "Erreur d'accès à la base de données lors de la création du compte utilisateur";
}
else
{

// Envoi du mail d'activation
$sujet = "Activation de votre compte utilisateur";

$message = "Pour valider votre inscription, merci de cliquer sur le lien suivant :\n";
$message .= "http://" . $_SERVER["localhost"];
$message .= "/activer-compte-utilisateur.php?id=" . mysql_insert_id();
$message .= "&clef=" . $clef_activation;

// Si une erreur survient
if(!@mail($_POST["TB_Adresse_Email"], $sujet, $message))
{
$message = "Une erreur est survenue lors de l'envoi du mail d'activation<br />\n";
$message .= "Veuillez contacter l'administrateur afin d'activer votre compte";
}
else
{

// Message de confirmation
$message = "Votre compte utilisateur a correctement été créer<br />\n";
$message .= "Un email vient de vous être envoyer afin de l'activer";

// On masque le formulaire
$masquer_formulaire = true;

}

}

}

}

}

// Fermeture de la connexion à la base de données
mysql_close();

}

}

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="fr" xml:lang="fr" xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>[PHP] Créer un espace membre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?php if(isset($message)) { ?>
<p><?php echo $message; ?></p>
<?php } if($masquer_formulaire != true) { ?>
<form action="http://<?php echo $_SERVER["localhost"] . $_SERVER["SCRIPT_NAME"]; ?>" method="post">
<p>
Nom d'utilisateur : <input type="text" name="TB_Nom_Utilisateur" />
</p>
<p>
Mot de passe : <input type="password" name="TB_Mot_de_Passe" />
</p>
<p>
Confirmation du mot de passe : <input type="password" name="TB_Confirmation_Mot_de_Passe" />
</p>
<p>
Adresse e-mail : <input type="text" name="TB_Adresse_Email" />
</p>
<p>
<input type="submit" name="BT_Envoyer" value="Envoyer" />
</p>
</form>
<?php } ?>
</body>
</html>






Voilà sachant que j'utilise le bloc-notes de windows pour écrire du php, et ma base de données s'appelle "aspaa", mon serveur est "localhost", je n'ai pas de mot de passe et la table que j'utilise est "comptes_utilisateurs". Je suis une vraie débutante, j'utilise easyphp et là j'essaie de créer un formulaire d'inscription par l'intermédiaire de php, mais jusque là je n'ai pas réussi à modifier ma BDD via le html ou le php (je n'arrive pas à les lier).
Dans le tutoriel il est écrit "$_SERVER["SCRIPT_NAME"];"que faut-il mettre à la place de script name?

PS: j'ai lus les sites pour débutants : lesiteduzéro et asp-php mais ça n'a pas répondu à toutes mes questions. Si vous connaissez easyphp aidez moi s'il vous plait, car je ne sais pas à quoi sert "apache" et je copie mes fichiers dans le www de easyphp mais peut-être faut il faire d'autres choses?!

Merci d'avance pour vos réponses :)
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 497
11 mai 2010 à 17:01
- C'est cool, avec ton système on peut s'identifier en tant que n'importe qui : il suffit de modifier le cookie ; utilise plutôt les sessions sur le serveur.

- Apache est un serveur Web ; c'est lui qui permet de distribuer les pages via le protocol HTTP.

- $message .= "http://" . $_SERVER["localhost"];
Depuis quand $_SERVER['localhost'] existe ?
Si tu veux récupérer l'hôte : $_SERVER["REMOTE_HOST"]

- action="http://<?php echo $_SERVER["localhost"] . $_SERVER["SCRIPT_NAME"]; ?>"
Avec "REMOTE_HOST" à la place de "localhost", ça devrait aller mieux.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Neliel Messages postés 6146 Date d'inscription jeudi 9 juillet 2009 Statut Contributeur Dernière intervention 20 mars 2017 1 688
11 mai 2010 à 08:33
Je n'utilise pas du tout les mêmes méthodes, je ne sais pas si l'erreur viens de là mais je vais expliquer ce que j'ai appris sur le site du zero.

Déjà, mais je ne pense pas qu'il y ait de rapport avec ton erreur, je n'utilise pas de Cookies, je préfère les Sessions qui sont beaucoup plus sécurisé.

Ensuite lors de mes transactions avec la base de données, j'utilise à fond les variable php, exemple:

$hote = "localhost";
$login = "root";
$password = "";
$base = "ma_base";

mysql_connect($hote, $login, $pasword);
mysql_select_bd($base);


idem pour les requêtes:

$req = "select * from ma_table where nom = '".$nom."'";


Ensuite pour les "mysql_query", pense à mettre un test d'erreur qui a l'avantage de te dire pourquoi la requête n'est pas passer (ce n'est pas obligatoire mais c'est fort pratique):


$req = "select * from ma_table where nom = '".$nom."'";
$res = mysql_query($req) or die(mysql_error());


Ensuite, tu as tapé ça:

// Création du compte utilisateur
$result = mysql_query("
INSERT INTO comptes_utilisateurs(
Nom_Utilisateur
, Mot_de_Passe
, Adresse_Email
, Date_Inscription
, Clef_Activation
)
VALUES(
'" . $_POST["TB_Nom_Utilisateur"] . "'
, '" . md5($_POST["TB_Mot_de_Passe"]) . "'
, '" . $_POST["TB_Adresse_Email"] . "'
, '" . time() . "'
, '" . $clef_activation . "'
)
"); 


Personnellement, j'éviterai d'imbriquer des chaînes de caractère comme ça ou alors remplace les double quote dans tes $_POST par des simples quotes... ou mieux (et c'est ce que je fais systématiquement), passe par une variable intermédiaire... un dernier conseil, évite, dans tes noms de variables et de champs de base de données, d'alterner entre majuscule et minuscule, cela conduit souvent à des erreurs et à des confusions.

Moi j'aurai fais ceci:

$nom_utilisateur = $_POST['TB_Nom_Utilisateur'];
$mot_de_passe = md5($_POST['TB_Mot_de_Passe'];
$mail =$_POST['TB_Adresse_Email'];

$req = "insert into comptes_utilisateurs
(Nom_Utilisateur, Mot_de_Passe, Adresse_Email, Date_Inscription, Clef_Activation)
values('".$nom_utilisateur."', '".$mot_de_passe."', '".$mail.'", '".time()."', '".$clef_activation."')";

$res = mysql_query($req) or die(mysql_error());



Personnellement, je trouve ça plus clair...

J'ai une tactique personnelle (ou pas) pour déterminer d'où provient une erreur: je vérifie le contenu de mes variables avec un echo en php... cela me permet de traquer l'erreur au niveau variable et l'instruction "mysql_error" permet de traquer l'erreur au niveau sql.


<form action="http://<?php echo $_SERVER["localhost"] . $_SERVER["SCRIPT_NAME"]; ?>" 



ça par contre, ça me dépasse mais je te conseillerai de vérifier le contenu de ses variables...

Un tout dernier conseil, n'utilise pas le bloc-note pour taper tes script.
Utilise plutôt Notepad++: https://www.commentcamarche.net/telecharger/developpement/16295-notepad/

Il a l'avantage d'instaurer un code couleur ce qui rend le script plus lisible.
Pour mettre un code couleur, dans notepad++, tu cliques sur l'onglet Langage, puis va sur la lettre "P" et choisis PHP.


0
03audrey03 Messages postés 39 Date d'inscription mercredi 4 novembre 2009 Statut Membre Dernière intervention 16 novembre 2015 8
11 mai 2010 à 09:09
merci pour votre réponse, et j'aurais une dernière question qui peut sembler bête: ces codes je les écrit dans notepad et je l'enregistre en html dans le dossier où se trouvent les fichiers pour mon site, et que faut-il faire d'autre pour que ça marche?
et faut-il que easyphp soit ouvert quand je fais cela?
Merci.
0
Neliel Messages postés 6146 Date d'inscription jeudi 9 juillet 2009 Statut Contributeur Dernière intervention 20 mars 2017 1 688
11 mai 2010 à 09:19
Attention!
Dés qu'il y a du PHP dans un script HTML, l'extension html ne doit plus être utilisé.
Tu dois sauvegarder en .php

Pas besoin qu'EasyPHP soit ouvert lors de la création, sauvegarde ou modification d'une page php.
Cependant, certaines règles doivent être respecter.

1. La première page de ton site doit s'appeler "index.html" ou "index.php" si tu as du code PHP dedans.

2. Tu dois, si ce n'est pas déjà fait, référencer ton site dans EasyPHP pour que tu puisses l'exécuter en local. Pour cela, tu démarre EasyPHP, tu fais un clic droit sur le logo "EasyPHP" dans la barre des tâches (près de l'heure) puis Administration.
La page EasyPHP s'ouvre. Dans la zone "Alias", cliques sur Ajouter.
Une fois ton site référencé dans EasyPHP, tu dois redémarrer EasyPHP pour qu'il le prenne en compte.
0
03audrey03 Messages postés 39 Date d'inscription mercredi 4 novembre 2009 Statut Membre Dernière intervention 16 novembre 2015 8
11 mai 2010 à 09:52
merci, j'ai fait tout ce que vous m'avez dit et ça ne marche toujours pas, lorsque j'ouvre mon site avec easyphp (dans weblocal) en 1ère page il y a ma page "index.html" où je clique sur "Créer un compte utilisateur", ce qui m'amène à ma 2ème page et il s'affiche exactement ce que j'ai écrit dans notpad, je vais essayer de trouver mon erreur :)
0