Formulaire et base de donnée mysql
Dernière réponse : dans Programmation
Bonjour à tous
Je suis entrain de m'entrainer en PHP et Mysql.
Je suis confronté a un problème de requête SQL.
Donc il s'agit tout simplement de remplir le champ "nom" de la table Type via un formulaire qui pointe sur le fichier test1.php
Voici le code du formulaire form.phtm:
et le code PHP test1.php
Lorsque j'envoi les données via le formulaire voici ce que j'obtiens:
Parse error: parse error in D:\Programme\Program files\EasyPHP\EasyPHP5.3.0\www\test1.php on line 17
Y a t-il un Pb de syntaxe?
Cordialement
Je suis entrain de m'entrainer en PHP et Mysql.
Je suis confronté a un problème de requête SQL.
Donc il s'agit tout simplement de remplir le champ "nom" de la table Type via un formulaire qui pointe sur le fichier test1.php
Voici le code du formulaire form.phtm:
<html> <head> <body> <title>Test</title> <form method="post" action="test1.php"> <input type="text" name="nom"> </input> <input type="submit" value="Entrer"></input> </form> </body> </head> </html>
et le code PHP test1.php
<?php if (isset($_POST['nom'])) { $pseudo=($_POST['nom']); } $adresse="localhost"; $login="root"; $password="xxxx"; $dbname="mediatheque"; $connexion=mysql_connect($adresse,$login,$password) or die ('Impossible de se connecter à la base de donnée'.mysql_error()); mysql_select_db($dbname,$connexion); $query=(INSERT INTO Type (nom) VALUES ($pseudo); mysql_query($query); mysql_close($connexion); ?>
Lorsque j'envoi les données via le formulaire voici ce que j'obtiens:
Parse error: parse error in D:\Programme\Program files\EasyPHP\EasyPHP5.3.0\www\test1.php on line 17
Y a t-il un Pb de syntaxe?
Cordialement
Autres pages sur : formulaire base donnee mysql
Lassé par la pub ? Créez un compte
Y a t-il un Pb de syntaxe?
> oui
ici : $query=(INSERT INTO Type (nom) VALUES ($pseudo);
et pourquoi met tu des parenthèse ? : $pseudo=($_POST['nom']);
A lire : http://www.vulgarisation-informatique.com/mysql-modif-d...
> oui
ici : $query=(INSERT INTO Type (nom) VALUES ($pseudo);
et pourquoi met tu des parenthèse ? : $pseudo=($_POST['nom']);
A lire : http://www.vulgarisation-informatique.com/mysql-modif-d...
Merci de m'avoir répondu et il me semble qu'il y a toujours le même problème qui apparait.
J'ai fait un copier coller de ton code, après avoir fait ca les deux dernières lignes de codes apparaissent gris.
Puis j'ai même inclus le " après la dernière parenthèse, puisque tu en a mis 1 avant INSERT INTO mais toujours le même problème.
Cordialement
J'ai fait un copier coller de ton code, après avoir fait ca les deux dernières lignes de codes apparaissent gris.
$query=mysql_query("INSERT INTO Type VALUES ('".$pseudo."');
Puis j'ai même inclus le " après la dernière parenthèse, puisque tu en a mis 1 avant INSERT INTO mais toujours le même problème.
Cordialement
<?php if (isset($_POST['nom'])) { $pseudo= $_POST['nom']; } $adresse="localhost"; $login="root"; $password="mrlover"; $dbname="mediatheque"; $connexion=mysql_connect($adresse,$login,$password) or die ('Impossible de se connecter à la base de donnée'.mysql_error()); mysql_select_db($dbname,$connexion); $query=("INSERT INTO type VALUES(",'$pseudo')"); mysql_query($query,$connexion); mysql_close($connexion); ?>
Toujours le même problème sauf que j'ai corriger une erreur a la ligne 17
Bonjour
J'ai repéré les erreurs, mais la j'ai un nouveau problème avec les isset.
Ca m'affiche une page blanche.
J'ai repéré les erreurs, mais la j'ai un nouveau problème avec les isset.
<?php if (isset($_POST['nom']) && (!empty($_POST['nom']))) { $nom=$_POST['nom']; } else { $nom=""; echo "La case est vide"; } $adresse="localhost"; $login="root"; $password="xxxx"; $dbname="mediatheque"; $connexion=mysql_connect($adresse,$login,$password) or die ('Impossible de se connecter à la base de donnée'.mysql_error()); mysql_select_db($dbname,$connexion); $sql = "INSERT INTO type (id, nom) VALUES ('','$nom')"; mysql_query($sql,$connexion); mysql_close($connexion); ?>
Ca m'affiche une page blanche.
Hello,
As tu conscience que si dans le formulaire quelqu'un s'amuse à mettre une apostrophe dans le champ $nom le script plante ? Suppose que le nom de la personne soit "d'agobert", la requête envoyée au serveur en l'état sera la suivante :
PourD'après cette requête, le champ nom a pour valeur "d" et ensuite il y a "agobert" qui ne correspond à rien, d'où plantage.
http://www.php.net/manual/fr/function.mysql-real-escape-string.php
D'ailleurs cette façon de gérer les données en provenance des utilisateurs consititue un gros risque de sécurité. Regarde la partie sur l'injection de script sql, tu verras pourquoi il est important de toujours nettoyer les variables en provenance des utilisateurs, c'est qu'ils peuvent être chafouins quand ils veulent
De plus, je te conseille de mettre les paramêtres de connexion à la db dans un fichier externe, ex config.php, parce qui si un jour les paramêtres d'accès à cette base changent, tu n'auras pas à retourner dans tous tes scripts pour les modifier. Avec un fichier de configuration général que tu inclus dans tes scripts, une seule modification sera nécessaire.
Et au passage, se connecter au serveur en root : pas bon, voire même dangereux pour un serveur de front, parce que normalement l'utilisateur root a tous les droits, y compris celui de vider ou supprimer des tables.
Bon développement
As tu conscience que si dans le formulaire quelqu'un s'amuse à mettre une apostrophe dans le champ $nom le script plante ? Suppose que le nom de la personne soit "d'agobert", la requête envoyée au serveur en l'état sera la suivante :
INSERT INTO type (nom) VALUES ('d'agobert');
PourD'après cette requête, le champ nom a pour valeur "d" et ensuite il y a "agobert" qui ne correspond à rien, d'où plantage.
http://www.php.net/manual/fr/function.mysql-real-escape-string.php
D'ailleurs cette façon de gérer les données en provenance des utilisateurs consititue un gros risque de sécurité. Regarde la partie sur l'injection de script sql, tu verras pourquoi il est important de toujours nettoyer les variables en provenance des utilisateurs, c'est qu'ils peuvent être chafouins quand ils veulent
De plus, je te conseille de mettre les paramêtres de connexion à la db dans un fichier externe, ex config.php, parce qui si un jour les paramêtres d'accès à cette base changent, tu n'auras pas à retourner dans tous tes scripts pour les modifier. Avec un fichier de configuration général que tu inclus dans tes scripts, une seule modification sera nécessaire.
Et au passage, se connecter au serveur en root : pas bon, voire même dangereux pour un serveur de front, parce que normalement l'utilisateur root a tous les droits, y compris celui de vider ou supprimer des tables.
Bon développement
Lassé par la pub ? Créez un compte
- Contenus similaires :
- ForumModifier le nom d'une base de donnée MySQL (Free)
- Forumprobleme insertion donnée dans base de donnée a partir d'un formulaire
- ForumLimite d'enregistrement dans une base de donnée mysql
- ForumFormulaire et base de donnée ( php )
- ForumScript pour poster un formulaire dans une base de données avec Mysql
- ForumBase de donnees MYSQL
- ForumCarractères "é" "à" "è" avec les bases de donnée MySQL
- SolutionsComment déclarer une donnée en pourcentage avec mysql
- ForumBase de donnees d'un formulaire
- Voir plus