Ses derniers messages sur les forums
si le fichier est sur ton PC tu as aussi move_uploaded_file
++
je te conseille de faire un tableau associatif pour chaque catégorie
$race = $_POST['races'];
$humain = array{F=>5;D=5;C=5}
apres tu as plus qu'a faire une seule req SQL
$sql = "INSERT INTO characters VALUES('','$nom','$description','0',$race,${$race}[F],'2','5','0','0','0','0','0','0')";
etc...
enfin sur le principe c'est ça. L'utilisation du ${$race} ca revient a avoir la valeur $humain dans le cas ou $_POST[race] = humain
Bon là j'ai pas testé il faudrait peut être rectifier qq trucs mais je te donne le principe.
Autre chose, pense à sécuriser tes requets et la reception de tes variables
$race = html_entities($_POST['races']);
et apres un mysql_real_escape_string sur les variables dans ta requete SQL
Voilà j'espère que ca t'aidera.
++
apparemment la fonction mail() a été réactivée chez free depuis peu
http://free.box.free.fr/info.php3
pardon pas is_empty mais empty, j'ai confondu avec is_null mais bien sur vous aviez compris :)
trim va supprimer les espaces mais il me semble qu'un simple is_empty te renvoit true s'il n'y a que des espaces et c'est plus joli. :)
++
une classe te permettra de simplifier l'envoi de tes requete mais encore faut il qu'elles soit bien utilisée.
je te conseille de regarde un script de forum punbb qui utilise une excellente classe mysql et tu verras dans les pages comment on l'utilise.
@++
alors pour les mailers PHP qui sont spammés par les bots , je viens de travailler sur ce problème cet aprem donc c'est encore tout frais. (je voulais éviter un systeme captcha)
Alors les bots récup les formulaires de contact et apres envoient automatiquement des requêtes. En regardant les logs, on voit qu'il n'y a qu'une seule page (contact.php) qui est visitée donc la méthode du http_referer peut très bien fonctionner. En sachant que cette variable peut être spoofée.
Sur mon site voilà comment je procède. Déjà sur chaque page j'ai un compteur qui calcule combien de visiteurs sont actuellement sur mon site (je log l'ip et l'heure) et à chaque connexion je nettoie et j'actualise la liste.
Ma fonction de log marche comme ca, si l'ip n'existe pas je l'INSERT, sinon je l'UPDATE avec un temps (time + 3 min).
Ma solution, je rajoute un champ spam
DB = IP | timestamp | spam
pendant l'insert spam = 0, apres à chaque update spam = spam+1
et sur ma page contact.php, apres la validation si $spam < 2 alors refuse l'envoi du mail.
Ainsi si le visiteur n'a pas au moins visité une autre page avant il ne peut pas envoyer un mail, mais ca ne m'epeche pas d'afficher la page contact.
Voilà j'espère avoir été assez clair. Je suis en train de me dire que vu que le formulaire est envoyé directement par le bot mais sans passé par la page contact.php (d'où le 1 ip dans les logs), un simple spam < 1 devrait être suffisant.
J'espère en avoir pu aider certains.
++
merci de ton aide, je viens de t'envoyer le dump par mail. ++
Oui mais si tu lui expliques pas comment faire la suite il va être bloqué je pense.
Pour les newsletter comme le dis LupusMic il faut que tu les envoies par tranche. Voilà comment je procède sur mon script de newsletter.
Lorsque je l'envoie je stocke en Db dans une table temporaire tous les mails pour tous les abonnés. Ensuite j'ai une autre page qui est exécutée chaque heure pour un cron job et qui me recup 100 ou 200 adresses mail et qui expedie les mails. Ainsi tu peux balancer autant de mails que tu veux à des temps déterminés.
J'espère que ca pourra t'aider.
++
Bonjour à tous,
voilà j'ai un problème sur cette requete SQL.
SELECT u.id_user, SUM(c.montant) as catotal, SUM(bdr.montant) as reductotal FROM users u LEFT JOIN commandes c ON (c.id_user = u.id_user AND c.id_facture != 0 AND c.date > '2007-01-01') LEFT JOIN reduc bdr ON (u.id_user = bdr.id_user) GROUP BY u.id_user
Maintenant j'explique, j'ai 3 tables (users, commandes et reduc). Le but de cette requete est de récup le id_user extrait de la table users (en fait plus d'infos mais c'est pr simplifier), le total des commandes passées dans la table commandes et enfin le montant total des bons de réductions (table reduc).
donc les infos users et le total commande ça c'est bon, mais pour le total des réductions, il y a un petit bug, il est dépendant du nombre de commandes . (par ex il calcule le montant total et il le multiplie par le nombre de commandes) Donc le problème vient bien de ma requete SQL et peut être de mon GROUP BY mais là je sèche.
Si quelqu'un avait la solution, ca serait bien, merci d'avance