Aller au contenu

Kalt

Webmaster Régulier
  • Compteur de contenus

    77
  • Inscrit(e) le

  • Dernière visite

Messages postés par Kalt

  1. Il est clair que tu ne peux pas obliger la personne qui va mettre ton CD Rom dans son lecteur à installer Apache / PHP / MySQL... La seule solution dans ton cas est de créer une version figée de ton site, en créant une petite moulinette qui transforme toutes les pages possibles de ton site en fichiers HTML. La moulinette devra bien entendu convertir les liens internes, qui doivent pour l'instant pointer sur des fichiers .php, pour les faire pointer vers les fichiers HTML nouvellement créés.

    Bon courage...

  2. En réponse à Captain Torche, pensez à n'utiliser cette méthode que lors du développement et ne pas la laisser en ligne : en effet, l'affichage d'une erreur donne des indices à un pirate sur la structure de ta base, le nom des tables et des champs. Ces indices peuvent ensuite être utilisés pour une attaque par injection SQL.

  3. Tu as plusieurs solutions :

    $requete = "
    SELECT truc
    FROM machin
    WHERE bidule = 'chouette'
    ";

    Ou celle que je préfère :

    $requete  = "SELECT truc ";
    $requete .= "FROM machin ";
    $requete .= "WHERE bidule = 'chouette'";

  4. Ma principale requete est une selection aléatoire d'une grille dans la table en fonction d'un nombre de lignes et de colonnes bien determiné

    Dans ce cas je ferais un index sur 3 colonnes de ta table : id, nb_lignes et nb_colonnes. Ainsi ta principale requête qui doit avoir à peu près cette tête :

    SELECT id FROM table WHERE nb_lignes = 'x' AND nb_colonnes = 'y' ORDER BY RAND() LIMIT 1

    sera très rapide, même sur 200 000 enregistrements. Un EXPLAIN suivi de ta requête devrait te convaincre.

  5. Juste une petite remarque à Angelmalefica :

    on avait mis en clé primaire les nom et prénom de la personne

    Attention à ce genre de pratique, tu n'es pas certain de ne pas avoir deux Martin Dupont qui s'inscrivent, et dans ce cas le deuxième sera refusé pour duplicata de clé primaire. Un bon vieux int en auto_increment ne mange pas de pain et te garantit contre tout problème d'homonymie.

  6. Quand je cherche de l'inspiration pour démarrer une maquette, je commence par simplement aller voir ce que les autres ont fait sur le même thème, j'essaie d'en synthétiser les atouts et les choses à ne pas faire. Attention à la limite entre "copie" et "inspiration".

    Et j'ai pris la (bonne ?) habitude de faire un petit tour tous les jours sur les sites qui exposent ce qui se fait de mieux en matière de design, dont voici une petite liste :

    Beautifully Webdesign

    Crossmind

    New Web Pick

    Netdiver

    Bref, pour moi, l'inspiration vient en voyant le meilleur de ce qui se fait puis en se demandant "Pourquoi ce site me plaît-il tant ?"

  7. Désolé de ne pas répondre à ta question (je ne suis pas qualifié mais les réponses qui vont venir m'intéressent, alors je suis le sujet) mais j'aimerai t'en poser une autre : comment as-tu pondu cette intro de fou furieux sur le premier site de ta signature !!! C'est énorme. Est-ce de la vidéo ou bien as-tu exploité les fonctionnalités de Flash 8 (je pense au flou, au glow et aux autres effets temps réel) ?

    php

    Si tu veux que l'internaute puisse revenir en arrière, il faut passer les variables par la méthode GET, ou alors tu fais toi-même un bouton retour de cette façon :

    <form method="post" action="ta_page_precedente.php">

    <input type="hidden" name="variable" value="valeur">
    ... etc pour toutes les valeurs dont tu as besoin pour reconstituer ta page précedente

    <input type="submit" value="Retour">

    </form>

  8. Tu peux créer une table "metier_du_jour" avec un id_metier et une date. A chaque fois que tu veux appeler ton script tu testes s'il y a un id_metier pour la date du jour, si oui tu l'affiches, sinon tu en choisis un au hasard dans ta table metier et tu l'insères dans la table "metier_du_jour".

  9. Ce genre de problème m'est aussi arrivé quand mon fichier sql est trop lourd. Quand il est un peu trop lourd j'ai le message que toi, et quand il est vraiment trop lourd, j'ai une erreur de timeout.

    La manip à faire est de passer en ligne de commande :

    1 - Tu uploades ton fichier SQL sur ton serveur

    2 - Tu te connectes en SSH à ton serveur

    3 - Tu te rends dans le répertoire de mysql/bin/

    4 - Là tu tapes la commande :

    mysql -u ton_login_mysql -p nom_de_ta_base < chemin/du/fichier/sql/nom_du_fichier.sql

    5 - Tapes Entrée

    6 - Tapes ton password mysql

    Et voilà, le tour est joué. Ca marche aussi sous Windows en local avec EasyPHP :

    1 - Démarrer > Exécuter > entrée

    2 - Tapes "cmd" puis entrée

    3 - Tapes "cd .." jusqu'à arriver à la racine, puis "cd prog*" (Program Files), "cd easy*" (EasyPHP), "cd mysql", "cd bin".

    4 - Là tu tapes la commande :

    mysql -u root -p nom_de_ta_base < chemin/du/fichier/sql/nom_du_fichier.sql

    5 - Tapes Entrée

    6 - Tapes Entrée seulement pour le password

    Et voilà. En espérant que cela soit utile à tous ceux qui veulent récupérer la grosse base de leur site et la charger en local...

  10. Le mieux est de n'avoir qu'une seule page qui est appelée à chaque fois mais qui produit différents résultats selon la bonne saisie ou non des données.

    Exemple d'une page "formulaire.php" :

    <?

    // Si la variable action est renseignée, cela signifie que le formulaire a été envoyé :
    if (isset ($_POST["action"])) {

       // On vérifie la saisie :
       if ($_POST["monchamp"] != "") {

           // On fait ce qu'on doit faire avec les données du formulaire... puis on renseigne la variable $resultat pour plus tard :

           $resultat = "ok";

       }

    }

    // On regarde si $resultat existe :
    if (isset ($resultat)) {

       // On affiche que tout s'est bien passé :
       echo "Tout est parfait, merci.";

    } else {

       // Sinon, on réaffiche le formulaire

    ?>

    <form action="formulaire.php" method="post">

    <input type="hidden" name="action" value="verifier">

    <input type="text" name="monchamp" value="<? if (isset ($_POST["monchamp"])) echo $_POST["monchamp"]; ?>">

    <input type="submit" value="Envoyer">

    </form>

    <? } ?>

  11. Pourquoi ne pas écrire simplement "laser" en petit ? Dans la mesure où il n'existe pas vraiment de signes ou d'icône représentant l'impression laser, ne prend pas le risque de te heurter à l'incompréhension des utilisateurs en inventant ton propre visuel.

    Si vraiment tu insistes, tu peux peut-être essayer un simple trait rouge vertical avec une petite fumée noire à la base...

    Ou encore coller la photo de Dark Vador et son imprimante laser portable ;)

  12. Après vérification, si vous comptez le nombre de lignes sur une table disposant d'un index, MySQL ne scanne pas la table mais retourne simplement la taille de l'index. Ce qui veut donc dire à mon humble avis qu'un COUNT(id) et COUNT(*) reviennent au même sur une table avec un index.

  13. PS: pourquoi "*", pourquoi pas juste l'ID s'il s'agit de compter juste le nombre de membres ?

    <{POST_SNAPBACK}>

    Il me semble que quand tu fais un COUNT(*), MySQL va directement chercher le nombre d'enregistrement dans l'entête de la table (renseignements généraux sur la table), sans effectivement compter les lignes, d'où une réponse quasi-instantanée.

  14. Pas du tout, le smpt gère les envois de mail depuis ta machine, et il dépend de ton fournisseur d'accès. Par exemple, moi je suis chez wanadoo et donc j'utilise le smtp "smtp.wanadoo.fr" pour tester mes envois de mail en local, mais une fois mes scripts en ligne, ils utilisent le smtp de mon hébergeur. Et à chaque fois j'envoie les mails sur une adresse gmail, sans rapport avec le smtp de l'un ou de l'autre.

×
×
  • Créer...