Crunchez vos adresses URL
|
Rejoignez notre discord
|
Hébergez vos photos
Page 51 sur 334 PremièrePremière ... 41434445464748495051525354555657585961101151 ... DernièreDernière
Affichage des résultats 1 501 à 1 530 sur 10008
  1. #1501
    Citation Envoyé par war-p;535647,
    Et deathdigger, je suis entièrement d'accord, C# FTW bordel!
    Le defaut de c# c'est qu'il ne génère pas de code natif, il faut le framework .net. Du coup sous xp ça deviens vite lourd. Car on en vient a des situations ou tu mets moins de temps a Developer qu'a installer le framework. En plus que j'ai jamais vraiment compris pourquoi la dernière version de .net n'inclus pas les précédentes du coup y'en a 3 a installer. Après c'est peut être possible de faire comme en vb, mettre les dll dans le même répertoire que l'exe, mais j'en doute fortement.

  2. #1502
    Les streams j'ai rien dit. Ca par contre ça pue sa mère :
    Code:
    std::copy(std::istreambuf_iterator<char>(std::ifstream("number.txt", std::ios::binary).rdbuf()), std::istreambuf_iterator<char>(), std::back_insert_iterator<std::vector<char>>(data));
    Tout comme avoir systématiquement à écrire fait_un_truc(blabla.begin(), blabla.end()...)
    Et le mot clef auto est vraiment un palliatif, c'est presque une aberration d'avoir ça dans un langage fortement typé qui préconise le fait d'être explicite. Je ne nie pas le fait que c'est pratique, mais ça l'est justement parce que les itérateurs sentent de l'anus.

    Les typedefs, oui aussi, mais t'as vite fait d'en avoir une tartine.
    Dernière modification par rOut ; 17/04/2012 à 22h56.
    "Dieu est mort" · "Si le téléchargement c’est du vol, Linux c’est de la prostitution."

  3. #1503
    Bourdel, je me souviens enfin pour cette histoire de div plus rapide : c'est pas pour Sandy mais pour Ivy Bridge ! Apparemment ca devrait aller 2x plus vite.

  4. #1504
    Citation Envoyé par moimadmax Voir le message
    Le defaut de c# c'est qu'il ne génère pas de code natif, il faut le framework .net. Du coup sous xp ça deviens vite lourd. Car on en vient a des situations ou tu mets moins de temps a Developer qu'a installer le framework. En plus que j'ai jamais vraiment compris pourquoi la dernière version de .net n'inclus pas les précédentes du coup y'en a 3 a installer. Après c'est peut être possible de faire comme en vb, mettre les dll dans le même répertoire que l'exe, mais j'en doute fortement.
    Euh si, au moment de la publication de ton appli tu peux choisir pour quel framework tu veux compiler (en sachant bien sûr que tu ne pourras compiler certains codes avec les nouvelles fonctionnalités). Après, le désavantage principal de C#, c'est bien sûr les perfs qui sont à des années lumières de C et C++, ce qui en soit est tout à fait logique vu que tu passes par une VM.

    Sinon, je suis en train de chercher du taff en ce moment, c'est moi ou les salaires sont super bas au niveau dev ???
    Quand je vois :
    VOTRE MISSION : CONCEPTION D'UN LOGICIEL DANS LE CADRE DU DEVELOPPEMENT D'UN PROJET INTERNE. VOUS MAITRISEZ LE LANGAGE C, JAVA, JAVASCRIPT; SYSTEMES D'EXPLOITATIONS APPRECIES : WINDOWS, UNIX, LINUX.
    Avec ce salaire :
    ANNUEL DE 18 000 A 21 000 EUROS SUR 12 MOIS
    En région parisienne, je reste un peu perplexe...

  5. #1505
    Citation Envoyé par deathdigger Voir le message
    Euh si, au moment de la publication de ton appli tu peux choisir pour quel framework tu veux compiler (en sachant bien sûr que tu ne pourras compiler certains codes avec les nouvelles fonctionnalités). Après, le désavantage principal de C#, c'est bien sûr les perfs qui sont à des années lumières de C et C++, ce qui en soit est tout à fait logique vu que tu passes par une VM.
    Oui mais ça reste chiant. Bientôt avec la mort de Win XP ce problème ne sera plus Car sinon pour faire une appli c'est que du bonheur. Puis niveau perf c'est pas catastrophique non plus. Dans tous les cas c'est pas pire que le temps que j'aurai mis en plus pour le faire en C / C++ Mais il me semble que c'est pas purement une VM comme Java, c'est un truc entre les 2.

    Sinon pour le job aussi c'est ce qu'il demandent vu le prix qui est pas mal. Maitrise de C, Java et Javascript. Soit 3 langages complétement différents qui faut presqu'une vie pour "maitriser" chacun d'eux. Le plus accessible dans le tas ça doit être le java. Et bien sûr, toute ces compétences, ça vaut un smic
    Car le Javascript est assez velu dans le genre, un peu comme le C. Ca parait simple au premier abord mais quand on creuse, c'est chaud quand même.

  6. #1506
    Citation Envoyé par moimadmax Voir le message
    Le plus accessible dans le tas ça doit être le java.
    Car le Javascript est assez velu dans le genre, un peu comme le C. Ca parait simple au premier abord mais quand on creuse, c'est chaud quand même.
    Ou pas

    Y a qu'à comparer la taille de la specification :
    - Javascript : 245 pages avec toute la librairie standard décrite dedans, sans la lib ça fait environ 102 pages (annexes exclus)
    - C : 538 pages avec toute la librairie standard décrite dedans, sans la lib ça fait environ 163 pages (annexes exclus)
    - Java : 640 pages sans aucune mention de la lib standard

    Évidemment c'est écrit différemment, mais niveau "complexité du langage" c'est assez représentatif
    Dernière modification par Tomaka17 ; 18/04/2012 à 13h39.
    Rust fanboy

  7. #1507
    Citation Envoyé par deathdigger Voir le message
    En région parisienne, je reste un peu perplexe...
    Pour une petite boite, c'est pas anormal comme salaire.

  8. #1508
    Ouais, enfin, pour Javascript y'a pour ainsi dire pas de librairie standard, en tout cas rien qui soutienne la comparaison avec les deux autres langages... Ce qui veut dire que, pour un projet un peu couillu avec du JS, soit tu utilises des librairies tierces soit tu fais tout à la mimine.

  9. #1509
    Je présume que le mec qui a pondu l'annonce n'est pas développeur de toute façon, le javascript en tant que tel ne sert plus à grand chose aujourd'hui, vu ce qu'on peut faire avec jquery et autres...
    @flo900, je trouve ça clairement abusif comme salaire proposé perso, petite boite ou pas...

  10. #1510
    Citation Envoyé par deathdigger Voir le message
    le javascript en tant que tel ne sert plus à grand chose aujourd'hui, vu ce qu'on peut faire avec jquery et autres...
    Juste du gros n'importe quoi.
    Dernière modification par magn3tik ; 18/04/2012 à 14h29.
    moi.org

  11. #1511
    Je vais le dire différemment, connaitre uniquement le js, sans utiliser jquery et autres n'a aucune utilité aujourd'hui.

  12. #1512
    Pourtant, des choses comme http://nodejs.org/ sont très à la mode.
    "Dieu est mort" · "Si le téléchargement c’est du vol, Linux c’est de la prostitution."

  13. #1513
    Citation Envoyé par newbie06 Voir le message
    Bourdel, je me souviens enfin pour cette histoire de div plus rapide : c'est pas pour Sandy mais pour Ivy Bridge ! Apparemment ca devrait aller 2x plus vite.
    Ouais, Ivy a un vrai diviseur AVX 256-bit, alors que sur Sandy c'est du 128-bit et les divisions AVX sont coupées en deux. C'est pas vraiment plus rapide, c'est juste qu'il y en a 2 fois plus... C'est plus facile de faire du copier-coller que de réduire la latence d'un diviseur.
    Bien entendu, en dehors d'AVX ça ne change rien.
    Dernière modification par Møgluglu ; 18/04/2012 à 15h13.

  14. #1514
    Citation Envoyé par deathdigger Voir le message
    Je vais le dire différemment, connaitre uniquement le js, sans utiliser jquery et autres n'a aucune utilité aujourd'hui.
    ...tu devrais préciser : « pour du développement web classique ». Et là, je pense que tous les ch... intervenants du forum ne viendront pas te contredire.

  15. #1515
    Je savais pas trop ou le mettre : le code source de prince of persia sur l'apple II est sur github !
    https://github.com/jmechner/Prince-of-Persia-Apple-II

    Et tout est programmé avec un langage d'homme, de vrais . (J'oubliais : la licence appartient toujours à Ubisoft)
    Dernière modification par weedkiller ; 18/04/2012 à 16h06.

  16. #1516
    Le problème en Javascript c'est pour trouver des docs bien faites, car bon si un equivalent JavaDoc/phpManual existait pour chaque langage, ca serait juste royal.
    Le tuto sur le site du Zero est pas mal fait mais bon.
    Par exemple, en ce moment j'essai de faire un framework souple pour les extensions Opera. Du coup je décide de faire une classe afin de gerer le bouton. Puis une autre pour l'extension en générale (chargement de la conf, timer...) , puis une classe de données qui sera modifié en fonction du site. Et ben en Javascript y'a au moins 3 façons de créer une classe:
    La forme standard (voir Old school):
    Code:
    var obj = new Object();
    obj.maProp = "bla";
    obj.maMethode = function() { alert(maProp);};
    La forme Littérale :
    Code:
    var obj = {
      maProp = "bla",
      maMethode = function() { alert(maProp);},
    };
    La forme qui se voit souvent dans les sources sur le net:
    Code:
    var obj = function(){
      this.maProp = "bla";
      this.maMethode = function() { alert(this.maProp);};
    };
    Voilà maintenant c'est laquelle la mieux, difficile a dire quand on débute.
    Au moins en java, il n'y a qu'une façon de créer une classe.

  17. #1517
    Si tu veux faire des objets 'propres', regarde du côté de CofeeScript. Permet, entre autre, de gérer simplement l'héritage etc.

    Sinon autant on peux voir la multitude de manière de faire comme une complexité, mais cela peut être un atout pour être flexible et faire 'rapidement' un petit objet pour rendre quelques services.

    [edit] Et la doc la plus claire que j'ai pu croisé concernant le javascript est celle du Mozilla Developper Network

    [edit2] Et pour argumenter un peu plus mon "n'importe quoi" : juste que cette aberration de dire 'jquery remplace javascript', on en arrive à des gens qui demandent un plugin jQuery pour concaténer deux tableaux ensemble...
    [edit3] jQuery dans l'absolu, c'est juste de la manipulation de DOM, d'évènements.. En gros de gestion du HTML. Les gens ont un peu sauté sur l'occaz pour faire des plugins pour tout et n'importe quoi.
    Dernière modification par magn3tik ; 18/04/2012 à 17h15.
    moi.org

  18. #1518
    Bonjour aux canards programmeurs, j'aurais besoin de votre aide car après avoir pas mal recherché sur le net, je me sens coincé.
    Je pense que ça va être très facile pour vous, mais étant donné que je débute dans la matière, pour moi ce n'est pas forcément évident.

    Je m'explique : j'ai PHP/MyAdmin, et après m'être amusé a créer une BDD, j'ai voulu commencer à plonger les mains dans le cambouis réalisant une petite page html permettant de faire le lien avec ma BDD via du SQL.

    Mon problème est assez simple : je voudrais faire apparaître dans une liste déroulante les infos de ma table "Type_jeu", en gros choisir entre "FPS","RTS" etc.
    Pour l'instant, la seule chose que je suis parvenu à faire, c'est de bien faire apparaitre ma liste déroulante...mais elle est vide.
    J'ai mis en bleu le problème en question. Je ne sais pas trop si ce que j'ai écrit est correct. Mais je pense que le fond du problème, c'est d'appeler ma BDD sur cette page html. Ca parait bête, mais j'ignore où appeler les infos de ma base pour qu'en accédant à mon site, il fasse apparaitre automatiquement les infos dans ma liste déroulante !
    Code:
    <html>
    
    	<head>
    
    		<meta http-equiv="content-type" content="text/html;charset=utf-8">
    			<title>Ludothèque Jeux PC perso</title>
    			<link href="formulaire.css" rel="stylesheet" type="text/css" />
    	</head>
    
    			<body>
    
    				<form method="post" action="traitement.php">
    					<p class="titre">Ludothèque Jeux PC perso</p>
    						<fieldset id="informations">
    							<label>Nom du jeu : </label>
    							<input type="text" name="nom_jeu" size="30" /><br />
    </p>
    					<label>Année_de_sortie : </label>
    					<select name="annee">
    						<option value="1996</option>
    						<option value="1997">Test</option>
    					</select>
    </p>
    					<label>Type de jeu : </label>
    						<select name="Type_jeu">
    					<?php
    						$query="select type_jeu from jeu";
    						$recordset = mysql_query($query);
    					while ($enr = mysql_fetch_row($recordset) 
    					{
    					echo '<option value="'.$enr[0].'"></option>';
    					}
    					?>					
    						</select>
    </p>
    						</fieldset>
    					<p id="buttons">
    					<input type="submit" value="Envoyer" />
    					<input type="reset" value="Recommencer" />
    </p>
    				</form>
    			</body>
    
    </html>
    Merci d'avance pour l'âme charitable qui m'aidera.

  19. #1519
    * C'est le script complet ça ? Si oui, il faut mettre un petit bout de code en haut qui appelle mysql_connect, car sinon tu n'es connecté à aucune base de données
    * Quand tu ouvres le code source de la page dans ton navigateur, tu vois quoi à l'intérieur du <select> ? Il y a un message d'erreur peut être ?
    * Je vois qu'il manque une parenthèse ) à la fin du while() avant le { mais autrement le code est bon
    * Tu n'as pas de contenu à l'intérieur du <option>, là tu obtiendras <option value="machin"></option>, ce qui va créer un élément vide dans ton select

    Hors sujet, mais ta méthode (les fonctions en mysql_) est ancienne et déconseillée maintenant
    Ça marche encore parfaitement bien, mais envisage d'utiliser PDO à la place (mais c'est pas urgent)

    Autre truc hors sujet, mais ce serait pas une mauvaise idée d'écrire :
    Code:
    echo '<option value="'.htmlspecialchars($enr[0]).'">'.htmlspecialchars($enr[0]).'</option>';
    Dernière modification par Tomaka17 ; 18/04/2012 à 17h33.
    Rust fanboy

  20. #1520
    Sinon j'avais fait une initiation rapide au html/css/php/sql pour un copain il y a un moment:
    C'est sûrement pas parfait mais ca permet de jouer avec et comprendre un peu les bases.
    Là ca utilise les fonctions mysql_* et tant qu'a apprendre je te conseilles de passer rapidement sur PDO et de ne pas trop perdre de temps à t'habituer à des fonctions en voie d'extinction. Mais comme le fonctionnement est à peu près pareil je le mets quand même.

    tu copie/colle dans un fichier index.php que tu mets dans le htdocs de ton serveur.
    Je le met as-is.
    Code:
    <?php
      /* 
      Fonctionne avec Xampp lite http://www.apachefriends.org/download.php?xampplite-win32-1.6.7.zip
      lancer le setupxampp.bat pour adapter xampp a l'emplacement
      fichiers .php dans le rep xampp/htdocs/
      acces a l'administration de base de données http://localhost/phpmyadmin/
      
      Manuels:
      php_manual_fr.chm : http://uk.php.net/get/php_manual_fr.chm/from/fr.php.net/mirror
      HTMLREF.CHM : http://go.microsoft.com/fwlink/?linkid=14581
      refman-5.0-fr.chm (Mysql) : http://downloads.mysql.com/docs/refman-5.0-fr.chm
      
      Requete SQL de création de la base
    -- phpMyAdmin SQL Dump
    -- version 2.10.0.2
    -- http://www.phpmyadmin.net
    -- 
    -- Serveur: localhost
    -- Généré le : Mer 10 Septembre 2008 à 09:17
    -- Version du serveur: 5.0.37
    -- Version de PHP: 5.2.1
    
    SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
    
    -- 
    -- Base de données: `exercice`
    -- 
    
    -- --------------------------------------------------------
    
    -- 
    -- Structure de la table `favoris`
    -- 
    
    CREATE TABLE `favoris` (
      `fav_id` int(11) NOT NULL auto_increment,
      `fav_titre` varchar(255) collate latin1_general_ci NOT NULL,
      `fav_url` varchar(255) collate latin1_general_ci NOT NULL,
      PRIMARY KEY  (`fav_id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=4 ;
    
    -- 
    -- Contenu de la table `favoris`
    -- 
    
    INSERT INTO `favoris` VALUES (1, 'WebMail Free', 'http://imp.free.fr/rc');
    
      
      */
      
      // Le fichiers index.php est affiché par defaut par le serveur
      
      // connection a la base
      $host="localhost";	//serveur Mysql
      $bdd="exercice";    //base de travail
      $user="root";		    //login de base
      $pass="";		        //mot de passe de la base
      $conn=mysql_connect($host,$user,$pass) or die ("impossible de se connecter au serveur SQL");
      mysql_select_db ($bdd,$conn)           or die ("impossible d'acceder à la Base de Donnée");
      
      // Ajout d'un Favori
      if($_POST[action] == "ajouter") // toute les valeurs renvoyé en methode post (formulaire) se retrouve dans le tableau $_POST
      {
        var_dump($_POST);
        //traitement des variables afin d'echapper les caractères ' qui embettent au niveau de la requete 
        $titre = addslashes($_POST[fav_titre]);
        $url = addslashes($_POST[fav_url]);
        $requete="INSERT INTO favoris (fav_titre, fav_url) VALUES ('$titre', '$url')";
        echo $requete; $resultat=mysql_query($requete,$conn);
        echo" Ajout favoris: ";if($resultat==1) {echo"OK ";} else {echo"ERREUR ";}
      }
      
      // Suppression d'un favori
      if($_GET[action] == "fav_suppr") // toute les valeurs renvoyé en methode get (dans l'url) se retrouve dans le tableau $_GET
                                   // http://upad21/exercice/index.php?action=fav_suppr&fav_id=1
      {
        $requete="DELETE FROM favoris WHERE fav_id='$_GET[fav_id]'";
        $resultat=mysql_query($requete,$conn);
        echo" Suppr favoris: ";if($resultat==1) {echo"OK ";} else {echo"ERREUR ";}
      }
      
    ?>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
      <head> <!-- Entete de la page contient divers infos sur le contenu et les liens vers les feuilles de style-->
        <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
        <meta name="generator" content="PSPad editor, www.pspad.com"/>
        <LINK REL="SHORTCUT ICON" HREF="favicon.ico">
        <title>Exercice</title>
        <style type="text/css" media="screen">
          /* Mise en forme du contenu des balises html */
          body 
          {
            background-color: #F2F3F9 ;
            color : #4D4D4D;
            font-family: Georgia,serif;
            font-size: 1em;
            text-align: justify;
            margin : 0px;
          }
          
          h1{  font-size: 2em;  font-weight: bold;  color: #4D4D4D; padding: 20px; text-align: center;}
          h2{  font-size: 1.8em;  font-weight: bold;  color: #4D4D4D; padding: 5px; text-indent: 50px;}
          
          a , a:visited, a:link {color:#808080; text-decoration:none;}
          a:hover{color:#808080;text-decoration:overline;}
          a:active{color:#4D4D4D;text-decoration:overline;}
          
          input {  font-family: Georgia,serif; font-size: 1em;}
          
          /* Classe Visible qui modifiera la forme des balises td et th contenu dans les balises table quand la classe visible sera demandée 
            cette classe a pour but de rendre visible les contours des cellules des tableaux*/
          .visible table td,th
          {
            border: 1px solid #808080;
            padding-top: 5px;
            padding-bottom: 5px;
            padding-right: 10px;
            padding-left: 10px;
          }
    
        </style>    
      </head>
      <body>
        <h1>Exercice</h1>
        <h4>Liste des Favoris</h4>
        <div class='visible'> <!-- On appele la classe visible -->
          <table> <!-- Ouverture d'un tableau -->
            <tr>  <!-- creation d'une ligne -->
              <th>Titre</th> <!-- creation d'une cellule dans cette ligne -->
              <th>URL</th>   <!-- creation d'une 2' cellule dans cette ligne -->
              <th>Supprimer</th>  <!-- le th est comme un td mais avec une mise en forme de titre -->
            </tr>
        <?php
          $requete="SELECT fav_id, fav_titre, fav_url FROM favoris ORDER BY fav_titre ASC";
          $resultat=mysql_query($requete,$conn);
          while($array=mysql_fetch_array($resultat))
          { // pour chaque ligne retournée par la requete, on ajoute une ligne avec 3 cellules au tableau
            echo "
            <tr>
              <td>" . stripslashes($array[fav_titre]) . "</td>
              <td><a href='" . stripslashes($array[fav_url]) . "'>Lien</a></td>
              <td><a href='index.php?action=fav_suppr&fav_id=$array[fav_id]' onclick=\"return(confirm('Supprimer $array[fav_titre]?'));\">Supprimer</a></td>
            </tr>  
            ";
            // la balise <a></a> est un lien, le Javascript dans la propriete onclick permet d'afficher une confirmation.
    
          }
        ?>
            <tr>
              <td colspan='3'>Fin du tableau</td>  <!-- Colspan permet de definir le nombre de cellule à fusionner sur la ligne, Rowspan existe pour les colonnes -->
            </tr>
          </table>
          <h4>Ajout d'un Favori</h4>
          <form action='?lien=favoris' method='post' enctype='multipart/form-data' name='formulaire'> 
          <!-- ouverture d'un formulaire, toutes les valeurs des champs inclus dans ce formulaires seront renvoyés au serveur par la methode post (le mieux pour un formulaire) -->
            <table width="100%">
              <tr>
                <td valign='top'>Titre</td>
                <td valign='top'><input type='text' name='fav_titre' size='72' maxlength='250'></td> <!-- zone d'entrée de texte -->
              </tr>
              <tr>
                <td valign='top'>Lien</td>
                <td valign='top'><input type='text' name='fav_url' size='72' maxlength='250'></td>
              </tr>
            </table>
            <input type='submit' name='button' value='Ajouter'> <!-- bouton d'envoie du formulaire (submit) -->
            <input type='hidden' name='action' value='ajouter'> <!-- sera envoyé avec le formulaire -->
          </form>
        </div>
      </body>
    </html>
    <?php mysql_close($conn);?>
    Bien sur d'habitude c'est pas de bon gout de tout mettre dans le même fichier mais bon là c'est purement éducatif. Et je suis sûr que les élites du html/php/SQL vont avoir les yeux qui saignes. Mais bon, si ça peut t'aider, j'en serai ravi.

  21. #1521
    whoputain, à force de coder du PHP avec un framework MVC, j'avais fini par occulter que l'on pouvait utiliser PHP de cette manière (et alors que j'avais commencé par là comme tout le monde ou presque).

  22. #1522
    Citation Envoyé par LtBlight Voir le message
    Bonjour aux canards programmeurs, ...
    Merci d'avance pour l'âme charitable qui m'aidera.
    Vu que tu débutes, autant partir sur de bonnes bases :
    Tu peux oublier tout ce qui est mysql_query et passer directement sur PDO.
    Donc comme l'a dit Tomaka, il va falloir que tu te connectes avec ta base de donnée. Au lieu de mettre dans chaque page le texte de connexion, le plus simple est de creer un fichier (connect.php) par exemple, avec tes paramètres de connexion :
    Code:
    <?php
    //fichier connect.php
    $hote = "localhost";
    $port = "3306";
    $bd = "mabdd";
    $user = "monuser";
    $pwd = "monmdp";
    $cnx = new PDO('mysql:host=' . $hote . ';dbname=' . $bd , $user , $pwd);
    
    ?>
    Après dans chaque page, tu vas faire reference à celle-ci
    Code:
    <html>....
    <?php
    include('connect.php');
    
    //La syntaxe va être différente maintenant vu que c'est du PDO :
    $q = $cnx->query("SELECT `type_jeu` from `jeu`");
    while($v = $q->fetch(PDO::FETCH_OBJ))
    {
    echo "<option value='" . $v->type_jeu . "'>" . $v->type_jeu . "</option>";
    }
    Le plus simple c'est de jeter un œil sur le site du zero, et rechercher PHP/PDO

  23. #1523

  24. #1524
    Je me demande si vous l'embrouillez pas un peu
    Si ça se trouve il ouvre sa page directement dans le navigateur sans même passer par un serveur web/interpréteur php
    Je m'excuse LtBlight si t'es au-delà de ce truc, mais comme il a dit être un complet débutant on sait jamais

    ---------- Post added at 19h06 ---------- Previous post was at 18h48 ----------

    Hop, hors sujet mais le dernier daily wtf est bien wtf
    Rust fanboy

  25. #1525
    Citation Envoyé par Tomaka17 Voir le message

    Hop, hors sujet mais le dernier daily wtf est bien wtf
    Wouuu, très fort ce coup là .

  26. #1526
    Alors je remercie déjà tout ceux qui m'ont répondu car j'ai enfin pu voir ma table dans la liste déroulante, c'est royal.
    En effet,Tomaka17, ça m'a embrouillé pas mal au départ, mais ce qu'a proposé deathdigger est clair. Il est bien plus simple de faire un include du connect.php, ça va tout seul.
    Le PDO est intéressant, et je suis allé voir sur le site du zéro, je suis presque au bout de ce que je veux. Je demanderai un dernier service pour aujourd'hui, car dans mon formulaire, j'ai un bouton "envoyer" qui me permet de donner le mot de passe d'un compte utilisateur. J'ai donc tenté ceci :

    Code:
    <?php
    include('connect.php');
    
    $msg_erreur = "Erreur. Le champ compte doit être rempli, sinon ça ne sert à rien, bourricot !";
    $msg_ok = "Très bien, ça roule";
    
    if (empty($_POST['compte'])) { 
    	echo $msg_erreur;
    	$reponse= '';
    	
    } 	else {
    		foreach($_POST as $index => $valeur) {
    		$$index = mysql_real_escape_string(trim($valeur));
      }
    	
      $resultats=$cnx->query("SELECT AES_DECRYPT(Mot_de_passe,'meuh') as password FROM mdp INNER JOIN compte ON mdp.ID_Compte=compte.ID_compte where nom_compte='".$compte."'");
      $resultats->setFetchMode(PDO::FETCH_OBJ);
      while($ligne = $resultats->fetch() )
    {
     echo 'Mot de passe : '.$ligne->password.'<br />';
    }
    	$resultats->closeCursor();
      
      $num_rows = mysql_num_rows($resultats);
    	if ($resultats) {
    		if ($num_rows > 0){
    			$reponse = mysql_result($resultats,0);
    			
    		}
    		else {
    			$reponse='Ne tapes pas n\'importe quoi!';
    			}
    		}
    	else {
    		$reponse='erreur mysql';
    		}
    	}
    	echo $reponse;
    ?>
    Quand je tape rien dans le champ compte, après avoir cliqué sur mon bouton envoyer, j'ai bien le message m'indiquant que je suis un bourricot pas de problème.

    Quand je tape n'importe quoi, mais aussi bien un compte qui est dans ma BDD, j'ai bien "ne tapes pas n'importe quoi !" cependant j'ai ceci :
    Warning: mysql_num_rows() expects parameter 1 to be resource, object given in C:\Program Files\EasyPHP-5.3.9\www\traitement.php on line 24
    Je pense que ma boucle à la fin est bien bâtarde, je veux tout simplement dire que si je tape autre chose qu'un compte connu dans la BDD, bah ce n'est pas bon.
    Dernière modification par LtBlight ; 18/04/2012 à 19h38.

  27. #1527
    Il faut pas mélanger les fonctions en mysql_ et les fonctions de PDO !
    Je t'invite à regarder un peu toutes les fonctions de PDO dans la documentation

    Par exemple au lieu de faire mysql_real_escape_string($machin) il faut faire $cnx->quote($machin)
    À noter qu'il y a une différence entre mysql_real_escape_string et ->quote, c'est que le second rajoute automatiquement les " autour du mot, donc plus besoin de mettre les " dans ta requête SQL

    S'il ne trouve pas $ligne->Mot_de_passe c'est parce que ta colonne dans ta requête SQL n'a pas de nom, écris "SELECT AES_DECRYPT(Mot_de_passe,'meuh') AS Mot_de_passe FROM mdp INNER JOIN etc."

    Ensuite tu n'as pas besoin d'appeler closeCursor, c'est une fonction qui s'utilise si tu ne lis pas tous les résultats, et que tu n'as pas besoin d'appeler avec mysql de toutes manières

    Enfin au lieu d'appeler mysql_num_row (l'équivalent PDO c'est $resultats->rowCount() mais c'est pas garanti de fonctionner, lis la doc) tu peux simplement écrire "if ($ligne)" car si tu n'as pas eu de ligne dans ta réponse, $ligne vaudra null

    ---------- Post added at 19h42 ---------- Previous post was at 19h36 ----------

    Le même code que toi comme je l'aurais écris :

    Code:
    <?php
    include('connect.php');
    
    if (!isset($_POST['compte'])) { 
        echo "Erreur. Le champ compte doit être rempli, sinon ça ne sert à rien, bourricot !";
        exit;	
    }
    
    $requete = $cnx->query('SELECT AES_DECRYPT(Mot_de_passe,'meuh') AS pass FROM mdp INNER JOIN compte ON mdp.ID_Compte=compte.ID_compte where nom_compte = '.$cnx->quote($_POST['compte']).' LIMIT 1');
    $resultat = $requete->fetch();    // tu n'as je suppose qu'une seule ligne de résultat de toutes manières
    
    if ($resultat) {
        echo 'Mot de passe : '.$resultat[0].'<br />';
    } else {
        echo "N'écris pas n'importe quoi !";
    }
    ?>
    Même si en réalité j'aurais utilisé les prepared statements :

    Code:
    $requete = $cnx->prepare('SELECT AES_DECRYPT(Mot_de_passe,'meuh') AS pass FROM mdp INNER JOIN compte ON mdp.ID_Compte=compte.ID_compte where nom_compte = ? LIMIT 1');
    $requete->exec(array($_POST['compte']));
    $resultat = $requete->fetch();
    Dernière modification par Tomaka17 ; 18/04/2012 à 19h55.
    Rust fanboy

  28. #1528
    Merci beaucoup Tomaka17 ! A noter que le code que tu as écrit avait un léger problème : 'meuh' doit avoir des " sinon il y'a une erreur.
    Et au niveau du if, si je laissais !isset, aussi bien si je tape n'importe quoi que rien du tout, j'avais toujours le message : "N'écris pas n'importe quoi!". Par contre si je remplace !isset par empty, a ce moment là, le message est différent suivant si je tape rien ou n'importe quoi.

  29. #1529
    En fait, même si ton champ de formulaire est vide, $_POST['compte'] existe, il vaut mieux que tu fasses if($_POST['compte'] == "")
    Pour la requête de vérification, tu peux aussi passer par des prepare, bindparam avec PDO :
    Code:
    $requete = $cnx->prepare('SELECT AES_DECRYPT(Mot_de_passe,'meuh') AS pass FROM mdp INNER JOIN compte ON mdp.ID_Compte=compte.ID_compte where nom_compte = :compte LIMIT 1');
    $requete->bindParam(":compte", $_POST['compte']);
    $requete->execute();
    $resultat = $requete->fetch();
    Ça change pas grand chose, mais c'est plus lisible

    Pour l'erreur, c'est normal, en fait il faudrait que tu mettes des " au lieu des ' pour cerner ta requête.
    Dernière modification par deathdigger ; 18/04/2012 à 21h04.

  30. #1530
    Citation Envoyé par rOut Voir le message
    Ca par contre ça pue sa mère :
    Code:
    std::copy(std::istreambuf_iterator<char>(std::ifstream("number.txt", std::ios::binary).rdbuf()), std::istreambuf_iterator<char>(), std::back_insert_iterator<std::vector<char>>(data));
    Ouais d'accord, un peu. MAis t'a qu'à l'écrire sur plusieurs lignes aussi quoi.

    Citation Envoyé par rOut Voir le message
    Tout comme avoir systématiquement à écrire fait_un_truc(blabla.begin(), blabla.end()...)
    Ouais ouais, d'accord aussi, j'ai pas dit que les ranges étaient inutiles. C'est juste que dès fois on a besoin de faire des parcours de conteneurs et qu'avec des itérateurs ça le fait.

    Citation Envoyé par rOut Voir le message
    Et le mot clef auto est vraiment un palliatif, c'est presque une aberration d'avoir ça dans un langage fortement typé qui préconise le fait d'être explicite. Je ne nie pas le fait que c'est pratique, mais ça l'est justement parce que les itérateurs sentent de l'anus.
    Exact, j'ai été démonté de voir apparaitre ce mot clé. Après, ce n'est pas ce que les itérateurs sont pourris, enfin en tout cas je ne vois pas le rapport.

    Citation Envoyé par rOut Voir le message
    Les typedefs, oui aussi, mais t'as vite fait d'en avoir une tartine.
    Ah mais bien sur que tu en as une tartine, je veux, je n'utilise quasiment que ça. Utiliser explicitement tel ou tel type de conteneur, c'est rendre public une information qui relève purement de l'implémentation. Tu utilise un vecteur ? très bien c'est ton choix, mais le jour ou tu as besoin d'utiliser des listes doubles, tu as une montagne de code à mettre à jour.

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •