J'ai deux problèmes à la création d'un espace membre.
Je mets les deux dans ce topic
J'ai une zone d'inscription, et cette zone, je désire l'envoyer telle quelle à ma dbb (que j'ai déjà créé et tout avant déjà)
Après maintes recherches, je n'arrive pas à le faire enregistrer dans ma dbb.
Vous n'auriez pas juste un mot-clé (je préfère apprendre seul, mais à force de chercher j'ai mal au ventre), ce serait gentil de m'en faire part
facile? ça, c'est le premier problème.
Mon second est quand même plus simple. Hier soir, vers 23h00, j'ai cherché après la fonction qui permet de faire une condition en fonction de la présence d'un caractère dans le champ (aïe, je suis pas clair là)
if fonctionkiverifie(variablecontrolée , caractère); {
les opérations }
je me souviens, sa va paraître bête, que ça commence par un "e" (parce que je l'avais trouvé mais j'ai fermé l'onglet sans faire exprès)
là je veux bien la fonction en entier
voilà merci tout le monde pour l'aide éventuelle, sa urge pas je passe à autre chose en attendant merci bien
1) le mot clé est INSERT, je vois rien d'autre !
2) Il y a une série de fonctions qui travaille de cette manière... alors te dire laquelle, même avec un e ?
Au fait, après avoir essayé le TP sur les news (c'est dur) j'ai pris le script de la correction, et afficher_news ne fonctionne pas. Pourquoi? C'est un prolème courant?
Essaye de changer les infos de connexion à la BDD !
J'ai vérifié elles sont bonnes
Bien, je vais donner le max de détails.
Problème 1: La fonction
Voici le code de mon formulaire (à partir de <title>
<title>S'inscrire</title>
<meta name="author" content="Tom Evans">
<link rel="stylesheet" type="text/css" href="style.css">
<SCRIPT LANGUAGE=”JavaScript”>
function verif_champ(champ)
{
if (champ == "")
{ alert("Veuillez remplir tous les champs");
return false;
}
return true;
}
</SCRIPT>
</head>
<body>
<?
include ("menu.php");
?>
<div align="center">
<form name="inscription" action="cible.php" method="POST" onsubmit="return verif_champ(document.inscription.pseudo.value)">
<p>
<em>Veuillez remplir tous les champs marqués d'une *. Vous devez remplir TOUS LES CHAMPS, marquez d'un / les champs non-obligatoires que vous désirez laisser vide. </em><br><br>
Pseudo*<br><? ?><input type="text" name="pseudo"> <br><br>
Mot de passe*<br><input type="password" name="pass"><br><br>
Confirmation du mot de passe*<br><input type="password" name="passconfirm"><br><br>
Adresse e-mail*<br><input type="text" name="mail"><br><br>
Nom*<br><input type="text" name="nom"><br><br>
Prénom*<br><input type="text" name="prenom"><br><br>
Date de naissance (YYYY-MM-DD)*<br><br>
Désirs dans le cinéma*: <br><select name="avenir">
<option value="Sélectionnez" selected="selected">Sélectionnez</option>
<option value="Acteur">Acteur</option>
<option value="Scénariste">Scénariste</option>
<option value="Réalisateur">Réalisateur</option>
<option value="Producteur">Producteur</option>
<option value="Photographe">Photographe</option>
<option value="Designer">Designer</option>
<option value="Technicien">Technicien</option>
<option value="Graphiste">Graphiste (effets spéciaux)</option>
<option value="Voix">Voix d'adaptation</option>
<option value="Autre">Autre</option>
</select><br><br>
Votre adresse complète*<br><textarea name="adresse" rows="8" cols="45">
Précisez boîte postale, votre numéro, votre rue, votre ville/village, pays. Cette adresse esst très importante;
après modération une demande vous sera demandée pour que l\'utilisateur qui demande votre adress puisse l\'afficher.
Si cette adresse est erronée vous ne saurez pas recevoir des offres de castings, emplois, etc... et cela serait
très désavantageux, non?
</textarea><br><br>
Signature:<br><textarea name="signature" rows="8" cols="45">
Entrez votre signature ici. Vous pouvez y mettre votre présentation personnelle, vos expériences passées, etc...
vous pouvez mettre diverses choses. PS: Il est fortement déconseillé d\'y afficher vos informations confidentielles
dans votre signature, cela pourrait s\'avérer très dangereux.
</textarea> <br><br>
site web(blog,forum,etc...)<br><input type="text" name="website"><br><br>
adresse de messagerie instantanée(MSN,Yahoo!,GoogleTalk)<br><input type="text" name="msn"><br><br>
</p>
<p align="center">-----------------------Seconde Partie-----------------------</p>
<em>Ici vous trouverez la partie de votre description; tous les champs sont oligatoires.</em>
<p>
Couleur des cheveux<br><input type="text" name="haircolor"><br><br>
Couleur des yeux<br><input type="text" name="eyescolor"><br><br>
Taille<br><input type="text" name="taille" onKeypress="
if(event.keyCode < 45 || event.keyCode > 57) event.returnValue = false;
if(event.which < 45 || event.which > 57) return false;">cm<br><br>
Poids<br><input type="text" name="poids" onKeypress="
if(event.keyCode < 45 || event.keyCode > 57) event.returnValue = false;
if(event.which < 45 || event.which > 57) return false;">Kg<br><br>
</p>
<input type="submit" value="J'ai fini, passer à l'étape suivante."><br>
<input type="reset" value="Je veux recommencer tout mon formulaire.">
</form>
</div>
et encore je n'ai pas mis les options pour la date
Comme vous pouvez le voir, je n'ai pas mis QUE du php/html dans mon code, il y a du javascript qui permet d'empêcher les gens d'écrire autre chose que des chiffres dans le on formulaire (niark niark^^)
Voilà donc ce que j'ai fait en page cible.php (à partir de <?)
<?
$pseudo = $_POST['pseudo'];
$pass = $_POST['pass'];
$mail = $_POST['mail'];
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$avenir = $_POST['avenir'];
$adresse = $_POST['adresse'];
$signature = $_POST['signature'];
$website = $_POST['website'];
$msn = $_POST['msn'];
$haircolor = $_POST['haircolor'];
$eyescolor = $_POST['eyescolor'];
$taille = $_POST['taille'];
$poids = $_POST['poids'];
$error = 0;
?>
<p align="center">
<?
if ($pseudo == '') {
echo "Votre pseudo est invalide. Le champ est vide";
$error = $error + 1;
}
else {
echo "Votre pseudo ($pseudo) est accepté.";
}
?><br><?
if ($pass == '') {
echo "Votre mot de passe est invalide. Le champ est vide";
$error = $error + 1;
}
else {
echo "Votre mot de passe ($pass) est accepté.";
}
?><br><?
if ($mail == '') {
echo "Votre adresse e-mail est invalide. Le champ est vide";
$error = $error + 1;
}
else {
echo "Votre adresse e-mail ($mail) est accepté.";
}
?><br><?
if ($nom == '') {
echo "Votre nom de famille est invalide. Le champ est vide";
$error = $error + 1;
}
else {
echo "Votre nom de famille ($nom) est accepté.";
}
?><br><?
if ($prenom == '') {
echo "Votre prénom est invalide. Le champ est vide";
$error = $error + 1;
}
else {
echo "Votre prénom ($prenom) est accepté.";
}
?><br><?
if ($avenir == 'selected') {
echo "Vous devez définir votre désirs dans le cinéma";
$error = $error + 1;
}
else {
echo "Vous voulez devenir ($avenir)";
}
?><br><?
if ($adresse == '' OR 'Précisez boîte postale, votre numéro, votre rue, votre ville/village, pays. Cette adresse esst très importante;
après modération une demande vous sera demandée pour que l\'utilisateur qui demande votre adress puisse l\'afficher.
Si cette adresse est erronée vous ne saurez pas recevoir des offres de castings, emplois, etc... et cela serait
très désavantageux, non?') {
echo "Votre adresse est invalide. Veuillez mettre autre chose que mon propre texte ou un champ vide. ";
$error = $error + 1;
}
else {
echo "Votre adresse ($adresse) est acceptée.";
}
?><br><?
if ($signature == '' OR 'Entrez votre signature ici. Vous pouvez y mettre votre présentation personnelle, vos expériences passées, etc...
vous pouvez mettre diverses choses. PS: Il est fortement déconseillé d\'y afficher vos informations confidentielles
dans votre signature, cela pourrait s\'avérer très dangereux.') {
echo "Vous n'avez pas défini de signature ou vous avez gardé mon propre texte, mais la signature n'est pas obligatoire.";
}
else {
echo "Votre signature: ($signature)";
}
?><br><?
if ($website == '') {
echo "Vous n'avez pas défini de site web, mais le site web n'est pas obligatoire.";
}
else {
echo "Votre site web ($website) est accepté";
}
?><br><?
if ($msn == '') {
echo "Vous n'avez défini aucune adresse de messagerie instantanée. Celle-ci n'est pas obligatoire.";
}
else {
echo "Votre adresse de messagerie instantanée est acceptée. ($msn)";
}
?><br><?
if ($haircolor == '') {
echo "Vous devez définir votre couleur de cheveux.";
$error = $error + 1;
}
else {
echo "Votre couleur de cheveux a été acceptée.($haircolor)";
}
?><br><?
if ($eyescolor == '') {
echo "Vous devez définir la couleur de vos yeux.";
$error = $error + 1;
}
else {
echo "La couleur de vos yeux a été acceptée.($eyescolor)";
}
?><br><?
if ($taille == '') {
echo "Vous devez indiquer votre taille";
$error = $error + 1;
}
else {
echo "Votre taille a été acceptée.($taille)";
}
?><br><?
if ($poids == '') {
echo "Vous devez définir votre poids.";
$error = $error + 1;
}
else {
echo "Votre poids a été acceptée.($poids)";
}
?><br><br><br>
<?
if ("$error" != 0) {
echo "Attention!Vous avez $error erreurs dans votre page, vous ne pouvez pas vous inscrire avec ces erreurs. Des champs n'ont pas été remplis." ;
}
?>
</p>
Comme vous le constatez, il s'agit en fait d'un feedack complet. (comme ça des memres ne désirant pas tout faire eux-même peuvent copier mon code (aaah, vive l'open-source))
Je voudrais donc que pour le champ "mail" il y ait vérification du sigle @ dans la variable. C'est tout con mais je suis perfectionniste
bien, ça, c'est le premier problème.
Problème 2: Envoyez tout le formulaire à ma dbb
Voilà, je ne vais pas réérire tout le code, mais j'aimerais que le contenu du form soit entièrement envoyé à ma dbb.
Le truc, c'est que je connais la fonction SQL INSERT (sinon avec un bête quary ce serait fini) mais avec cette technique je ne sais pas si je peux entrer le contenu d'une variable (si oui, ce serait génial!!)
Problème 3: Les News
Voilà, j'ai plusieurs pages, comme le ditle TP des news et tout fonctionne à merveille sauf liste_news.php, dont voici le code complet:
<h2><a href="rediger_news.php">Ajouter une news</a></h2>
<body>
<?
include ("http://127.0.0.1/Cinentrance/menu.php");
?>
if (isset($_POST['titre']) AND isset($_POST['contenu']))
{
$titre = addslashes($_POST['titre']);
$contenu = addslashes($_POST['contenu']);
// On vérifie si c'est une modification de news ou pas
if ($_POST['id_news'] == 0)
{
// Ce n'est pas une modification, on crée une nouvelle entrée dans la table
mysql_query("INSERT INTO news VALUES('', '" . $titre . "', '" . $contenu . "', '" . time() . "')");
}
else
{
// C'est une modification, on met juste à jour le titre et le contenu
mysql_query("UPDATE news SET titre='" . $titre . "', contenu='" . $contenu . "' WHERE id=" . $_POST['id_news']);
}
}
if (isset($_GET['supprimer_news'])) // Si on demande de supprimer une news
{
// Alors on supprime la news correspondante
mysql_query('DELETE FROM news WHERE id=' . $_GET['supprimer_news']);
}
?>
<?php
$retour = mysql_query('SELECT * FROM news ORDER BY id DESC');
while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news
{
?>
En effet, à ce que je lis ça a la tête de fonctionner
on est obligé à chaque fois d'appeler le $_POST['smg'] ou alors on peut mettre $smg?
sinon merci, maintenant il faut que je mette tout ça dans l'ordre qu'il est dans ma dbb et CA sa prend du temps
modifier un site sans l'accord du propriétaire est du hacking, non ?
donc mettre une balise <strong> alors que le proprio ne veut pas est du hacking ?
Mais il est vrai que htmlentities ne protège pas vraiment du hacking.
Citation : Bison
C'est une réponse pour détourner l'attention sur le fait que tu ne connais pas les fonctions que tu utilises.
Pas besoin de le casser !
Il apprend mais ce qu'il dit est vrai !
Pour ce qui est de ton code, il n'est pas parfait :
remplaces tes champs par
'".$_POST['valeur']."'
au lieu de
'$_POST['valeur']'
car sinon tu va avoir un conflis de ' il me semble !
Je ne le casse pas du tout, c'est toi qui lui a conseillé l'emploi de htmlentities()
Citation : tutur19
Il apprend mais ce qu'il dit est vrai !
Non ce qu'il dit est faux.
Les chinois connaissaient la poudre et ses effets bien avant que Nobel n'invente la dynamite.
Donc, sous prétexte qu'il apprend, il n'a pas à connaître ou se renseigner sur les fonctions qu'il va utiliser et doit simplement se contenter de suivre les conseils inadaptés que tu préconise.
C'est une manière de voir les choses.
Mais dans mon esprit, si c'est pour apprendre, autant le faire correctement !
Les chinois connaissaient la poudre et ses effets bien avant que Nobel n'invente la dynamite.
ouééé mais ils ne faisaient pas sauter des maisons avec ça. et puis je pense pas que ce soit le seul exemple. Si cette fonction, même si elle n'est pas forcément utile à ça, peut peut-être être utilisé pour ça. et puis, honnêtement, deux techniques valent mieux qu'une donc voilà c clos
Citation : Bison
Mais dans mon esprit, si c'est pour apprendre, autant le faire correctement !
Tu n'as pas tord.
J'ai essayé de placer les bons trucs aux bons endroit,mais j'ai mal aux yeux.
Citation : navigateur
Parse error: parse error, expecting `']'' in c:\cinentrance\cible.php on line 152
ouin. ça marche pas!! voici ma ligne 152, si vous avez le courage de voir où est le prolème, bravo.
Avec ça, comment je fais pour l'enregistrer dans une date complète? j'ai un champ "borndate" dans ma table, mais je sais pas comment réunir mes trois valeurs en une seule.
Mon javascript est plus haut dans ma page
Bison aime pas qu'on utilise htmlentities pour la "securite" ... faut pas le contrarié ... il a tjs le dernier mot
Tu passais dans le coin, t'as vu de la lumière et t'as pas pu résisté... t'es entré pour dire une connerie !
Au contraire, faut me contrarier... je ne demandes qu'à apprendre !
Je veux bien admettre que htmlentities soit la fonction anti-hacking par excellence, suffit juste de me le démontrer
on dit pas que c'est celle par exellence, mais qu'elle servir un peu à protéger.
Problème zone d'inscription
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Web Developer