PB valeur par défaut champ ENUM

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : PB valeur par défaut champ ENUM

par - HXSS - » 24 janv. 2006, 02:04

Ho d'accord j'avais pas compris la 1ere fois : D
je mettais basé sur le site lephpfacile et leur manière de faire leur requête, ils laissent des guillemets vides pour le champ id
du coup ça marche beaucoup mieux maintenant merci : x jsuis loin de devenir bon : |

par Truc » 24 janv. 2006, 01:39

le "SET" n'a rien à voir, c'est un mot reservé pour les requetes de mise à jour. :wink:

mais je remarque surtout que tu précise le champ "confirm" dans la requete, tu peux donc l'enlever ainsi que l'id:
$sql = 'INSERT INTO membre (login, pass_md5) VALUES("'.$login.'", "'.md5($pass).'")'; 

par - HXSS - » 24 janv. 2006, 01:35

j'ai essayé avec SET pour voir et rien non plus : (

par - HXSS - » 24 janv. 2006, 01:29

la structure de ma table légèrement réduite ...
CREATE TABLE membre(
id INT NOT NULL auto_increment,
login CHAR(15) NOT NULL,
pass_md5 TEXT NOT NULL,
confirm ENUM('attente', 'valide') NOT NULL DEFAULT 'attente',
PRIMARY KEY(id)
);
et ma requete légèrement réduite ...

Code : Tout sélectionner

$sql = 'INSERT INTO membre (id, login, pass_md5, confirm) VALUES("", "'.$login.'", "'.md5($pass).'", "")';

par Truc » 24 janv. 2006, 00:53

je comprends pas : /
moi non plus :lol:
peux tu montrer la structure et la requete que tu utilise ?

par - HXSS - » 24 janv. 2006, 00:40

Non toujours vide : (

pourtant quand je regarde la structure de ma table j'ai bien la valeur par défaut "attente" je comprends pas : /

par Truc » 24 janv. 2006, 00:30

essaie avec une requete du type:
$sql = 'INSERT INTO membre (champ_login,champ_passe) VALUES( "'.$login.'", "'.md5($pass).'")'; 

par - HXSS - » 24 janv. 2006, 00:22

Jour le peuple : x
je reposte sur ce sujet vu qu'on parlait déjà des champs ENUM ...
j'ai un petit soucis avec la valeur par défaut sur mon champ confirm
confirm enum('attente','valide') NOT NULL default 'attente',
pour l'enregistrement je laisse juste des guillemets sur mon script php pour prendre en compte la valeur par defaut sauf que là.. quand je m'enregistre je m'apperçois qu'il reste vide : /

Code : Tout sélectionner

$sql = 'INSERT INTO membre VALUES("", "'.$login.'", "'.md5($pass).'", "")';
c'est peut être le enum qui merdouille ? c'est pas le plus adapté ? : [

par - HXSS - » 11 janv. 2006, 00:08

Bon j'ai décidé de partir de "presque" rien j'ai repris les bases du phpfacile (y'a quand même le plus gros du travail !!)
résultat: il m'a fallut deux jours pour l'adapter afin de changer l'alerte "au moins un des champs est vide" en tel ou tel champ est vide

en même temps il m'a fallu 1 journée pour me rendre compte que j'avais oublié une parenthèse :?
par contre il vaut mieux créer une variable au tout début du genre

Code : Tout sélectionner

$login = $_POST['login']
et ensuite réutiliser juste $login ? jme demande ça juste pour l'optimisation.. rapidité des traitements etc : /

par iclo » 10 janv. 2006, 13:16

Un espace membre basique n'est vraiment pas quelque chose de compliqué:
Une page login qui après vérification d'un couple login/password crée les variables de sessions idoines.
Une page à inclure dans les pages à controler qui vérifiera si les variables de sessions existes et sont correctes et dans le cas contraire redirigera vers la page d'authentification.
Le tout ne doit pas faire plus de 20 lignes de code.. ;)

par Laap » 10 janv. 2006, 09:15

Commence par créer un espace membre, avec le strict minimum, et ensuite tu amélioreras ton script. C'est le meilleur moyen de travailler proprement, plutôt que de reprendre un gros script qui ne correspondra jamais vraiment à ton réel besoin.

par - HXSS - » 08 janv. 2006, 15:08

Je pense bien mais quand je vois la complexité du script que j'ai sous les yeux c'est pas dans le courant de l'année que mon site sera disponible mais dans une décennie :(

par iclo » 08 janv. 2006, 14:54

Il vaut mieux partir de rien alors, pour pouvoir modifier un script et le maintenir par après, il est nécessaire d'en avoir une très bonne compréhension.

par - HXSS - » 08 janv. 2006, 14:50

Oui autant pour moi j'étais parti sur la variable gateau1 et j'ai enchainé avec les autres soucis que j'ai où le bout de code n'a rien à voir :(

Bon en fait je pensais que j'avais réussi à l'adapter un peu mais en fait non.
Enfin ça marche mais à la base lors de la création des tables il créé aussi un compte root avec l'email du webmaster les droits ect.. et quand je rajoute juste une table de plus "adresse1" ça marche mais il ne créé plus le compte root je sais pas pourquoi ..
vaut-il mieux partir de rien comme sur cette adresse http://www.lephpfacile.com/howto/index.php?p=10 ou partir d'un script qu'on comprend qu'à moitié voire moins ?
:?

dans les deux cas jsuis dans la mouise les deux pieds dedans

par Cyrano » 07 janv. 2006, 15:46

Je soupçonne un truc: tes données provienne à priori d'un formulaire : où sont donc récupérées les valeurs du formulaire dans le bout de code que tu nous montres ? Nulle part;

Pour le problème de date, pas besoin de trois champs, il faut reformatter la date saisie pour la faire correspondre avec le format MySQL, avec un preg_replace, ça foncitonne très bien, exemple :
<?php
$date_jour = "07/01/2006";
$date_sql = preg_replace('#(\d{2})/(\d{2})/(\d{4})#', "$3-$2-$1", $date_jour);
echo("<p>". $date_sql ."</p>");
?>
Va afficher :
2006-01-07
Enfin, pour le champs avec comme valeur possible 0 ou 1, un type INT est un tantinet exagéré : un type ENUM('0', '1') ou encore ENUM('oui', 'non') DEFAULT 'non' suffirait largement et serait beaucoup plus adapté.