Voilà mon problème:
J´ai fait un formulaire qui permet d´enregistrer des données dans ma bdd. Normal quoi ! ^^
Lorsque que je ne remplis aucune donnée, il m´affiche bien le message d´erreur comme quoi champ vide mais cela enregistre quand même dans la base, donc la table contient des infos vides...
Voici le code:
< ?
require ( "config.inc.php3");
$db = mysql_connect("$host","$user","$pwd") or die ( "erreur de connexion");
mysql_select_db("$base",$db) or die ( "erreur de connexion base");
$sql = " INSERT INTO Utilisateurs ( Pseudo,Passe,Email,Url) values(´$pseudo´,´$pass´,´$email´,´$url´);";
$result=mysql_query($sql) or die(´Erreur SQL ! <br>´.$sql.´<br>´.mysql_error());
if ( empty($pseudo) || empty($pass) || empty($email) || empty($url))
{
header ( "Location: . ./form.php3?err=1");
}
else
{
header ( "Location: . ./index.php3?ok=1");
}
mysql_close();
? >
Est-ce grave docteur ?
Eclairez-moi !
je pige pas la, si tu mets des champs " not null" il ne devrai pas enregistrer si tu fais une requete d´enregistrement.
sinon, tu peux tjrs mettre un if(condition1&2....en les testants tous==null)(avec des strlen si necessaire) s´il renvoie true tu le fais sortir sans faire sinon tu enregistres..(enfin après ca depend si tes champs sont obligatoire etc...)
pa très clair dsl mais les zentil webhelper vont venir : )
< ?
require ( "config.inc.php3");
function addUser ( $nick, $pass, $mail, $url) {
global $host, $user, $pwd, $base;
static $connect = false;
if ( ! $connect) {
$db = mysql_connect($host,$user,$pwd) or die ( "erreur de connexion");
mysql_select_db($base, $db) or die ( "erreur db");
}
$connect = true;
$sql = " INSERT INTO Utilisateurs ( Pseudo,Passe,Email,Url) values(´$nick´,´$pass´,´$mail´,´$url´);";
$insert = mysql_query($sql) or die(mysql_error());
}
if ( empty($pseudo) || empty($pass) || empty($email) || empty($url)) {
header ( " Location: . . /form.php3?err=1");
} else {
addUser($pseudo, $pass, $email, $url);
header ( " Location: . . /index.php3?ok=1");
}
? >
buz-l-orage: ben c´est pas compliqué à comprendre, il enregistre avant la vérification...
ah oui c vrai : /, mais le mieux aurai été d´ajouter les " not null" lors de la creation des champs de la base c un peu bete de tester maintenant enfin . .c possible aussi dc : ox
sinon pdt ke j´y suis : )
est-ce plus rapide d´utiliser des fichiers txt ou des enregistrements BdD? --->j´ai fais une sorte de post commentaire ( pour page d´accueil) ou je stock les données ds des txt, et j´aimerai savoir si il est preferable de les stocker ss une BdD a la place - surtt au niveau de la vitesse en fait...
en gros mon truc c des boucles de rename avec un unlink et une nouvo fichiers a chaque nouvo post, et pour l´affichage c une boucle..
une base de données comme SQL sera toujours plus rapide que ton code précompilé.
Tu peux toujours émuler une base de données, et crypter/compresser les données que tu enregistres, toujours en sauvegardant dans du texte, mais dans un seul fichier, c´est la class qui s´ocuppe d´ajouter/selectionner/etc. Là tu pourras déjà voir la différence, au niveau de la vitesse et du stockage.
Ton truc, faire un fichier pour chaque post c´est un peu bete. autant tout classer par catégories, et donc faire un seul fichier pour les posts.
< ?
function addComment ( $input) {
static $open = false;
if ( ! $open) {
$handle = fopen("post.txt", " w+");
if ( ! $handle) return false;
$open = true;
$output = preg_replace("/\r?\n/", " &", $input);
fwrite($handle, $output);
return true;
}
$new = addComment ( "Nouveau commentaire \n de test");
if ( ! $new) echo " Impossible d´ajouter";
else echo " comment ajoué";
? >
après pour lire les commentaires:
< ?
function commentRead($sort = " end") {
$lines = file("post.txt");
switch ( $sort) {
case " index": $output = array_reverse($lines);
break;
case " end":
default: $output = $lines;
}
return $output;
}
$list = commentRead("index"); // du premier au dernier
for($i = 0; $i < = ( count($list) - 1); $i++)
{
echo $list[ $i ]; // affiche le commentaire
}
? >
de rien, je m´amuse ; )
merci je pense dc ke je finirai par passé sur BdD : )
sinon, pour voir a peu près ce que ca donne avec des txt . ..
http://membres.lycos.fr/zzenevroze/exprimez5/index.php3
je debute en php donc . ..indulgence : )
sinon, juste pour etre sur les fonctions que je ne connais pa, count(var..) pour compter le nombre d´element ds un tableau ( ?)
heu...ah bah le file apparement c ce ke je cherchais , il contient les lignes d´un fichier ss forme de tableau apparement , et c pour ca ke jutilisais plusieur txt au lieu d´un seul..c plus simple avec file ( enfin surtt plus rapide, un seul fichier a ouvrir fermer...)
par contre preg_replace j´ai un peu de mal...si qqu´un pouvais m´eclairer, j´ai beau lire l´explication sur un site j´ai un peu de mal . .
ah non, ca va finalement j´ai a peu près pigé sur un exemple concret 1 string, avec 2tableau de string..j´ai pigé : )
en tout cas, merci beaucoup jarose : )
Personne connais un site qui vous crée des design que l´on paye avec alopass ?
Ou vous ne sauriez pas m´explqiuez comment faire avec photoshop pasque meme les tutoriaux, j´y pige rien !
buz-l-orage:
count() compte le nombre d´éléments d´un tableau
file() retourne array var ( chaque lignes est un élément, c´est pour ça qu´il faut remplacer \n et \r avant l´ajout)
- preg_replace("/\r?\n/", " &", $input);
=> preg_replace remplace \r, \n ou \r\n par &
" par contre preg_replace j´ai un peu de mal...si qqu´un pouvais m´eclairer, j´ai beau lire l´explication sur un site j´ai un peu de mal"
c´est une expression regulière perl, laisses tomber pour l´instant si tu débutes ; )
" ah non, ca va finalement j´ai a peu près pigé sur un exemple concret 1 string, avec 2tableau de string..j´ai pigé : ) "
hu ? !?
bah en fait sur le lien suivant il y a un exemple assez concret de lutilisation preg_replace avec la phrase en anglais au sujet de l´ours : )
je ne dis pa pouvoir lutiliser mais pour a peu près comprendre ca va : )
http://dev.nexen.net/docs/php/annotee/function.preg-replace.php?lien=
d´ailleurs ce site est très bien : ) enfin tu dois connaitre c le 1er qd tu tapes php sur google lol
oui, c´est une documentation php officieuse, mais je préfères fr.php.net, la documentation est mieux structuré, et c´est LE site officiel ; )
Merci jarose ca marche impec ; )
no prob : )
Nouveau petit problème qui concerne les sessions cette fois ci:
Warning: Cannot send session cache limiter - headers already sent ( output started at c:\program files\easyphp\www\admin\index.php3:14) in c:\program files\easyphp\www\admin\index.php3 on line 33
< ?
session_start();
require ( "config.inc.php3");
$db = mysql_connect("$host","$user","$pwd") or die ( "erreur de connexion");
mysql_select_db("$base",$db) or die ( "erreur de connexion base");
$sql="select * from Utilisateurs where Pseudo=´$login´ and Passe=´$password´";
$result=mysql_query($sql) or die(´Erreur SQL ! <br>´.$sql.´<br>´.mysql_error());
if ( mysql_num_rows($result)>0)
{
session_register("login");
header ( "Location: index.php3");
}
else
{
header ( "Location: . ./index.php3?err=1");
}
mysql_close();
? >
J´ai bien placé le session_start en 1er mais rien n´y fait ! : (
Headers already sent, c´est que le php gère un affchage ( je pense que c´est avant le session_register)
Essaye d´enlever les " or die"
Erf non lol je me suis gourré mais j´ai su corriger ma faute : )
Bougre d´âne que tu es ! ^^
si à chaques notices sur un source de 10 lignes, tu postes ici, on a pas finit...
Tu as raison. Je crois que j´exagère un peu...
J´espère que ma conduite ne te déplaise et que je réussirai à me faire pardonner.
Sur ce
@+
Trop tard! Sois maudit à jamais, toi, ta descendance et ton poisson rouge ! ... ; -)