IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

PHP 5.5 vers 7


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Homme Profil pro
    graphiste
    Inscrit en
    Janvier 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : graphiste

    Informations forums :
    Inscription : Janvier 2018
    Messages : 9
    Par défaut PHP 5.5 vers 7
    Bonjour, je suis graphiste et je m'apprête à mettre en ligne un book perso, le site est relativement basique, une base de donnée galerie, des requêtes Mysql pour afficher les images, une pagination gérée en PHP, tout cela en php 5. Je teste le site localement avec Mamp et c'est en faisant une mise à jour du logiciel que j'ai mesuré l'obsolescence de mon site, le PHP 5 n'étant évidemment plus géré par le logiciel (en apparence, du moins, on peut tout de même forcer le logiciel à prendre en charge le 5 en modifiant le nom des dossiers des différentes versions), je sais que cette version est depuis longtemps obsolète, sera-t-elle un jour complètement abandonnée ? Les hébergeurs cesseront-ils de prendre en charge les sites en PHP 5 ? Comme je n'ai pas les compétences requises pour passer en PHP 7 j'ai testé phpStorm qui met en surbrillance dans le code les syntaxes devenues obsolètes, j'ai tenté des corrections avec mysqli mais sans succès, bref, le code est moi, ça fait deux.
    Une mise à jour de ce site en PHP 7 vous parait-elle indispensable ou plutôt accessoire dans mon cas (ce n'est qu'un book perso, pas un site marchand plus sensible etc) ? Par avance merci pour vos conseils.

    Question subsidiaire : combien me couteraient les services d'un développeur pour une mise à jour de mes pages ? (tarif raisonnable, je suis demandeur d'emplois, c'est un peu chaud...)

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Un certain nombre d'hébergeur ont commencé à forcer la migration des serveurs vers PHP 7, donc oui, la version PHP5 ne sera plus supportée dans un avenir plus ou moins proche, ou seulement moyennant un supplément de cout.

    Tu es parti d'un logiciel, d'un template, quelque chose pour écrire ton site ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Il est parfois plus facile et rapide de repartir de zéro plutôt que de mettre à jour un site obsolète.
    Surtout quand on n'est pas programmeur.

    Si tu ne veux pas dépenser, ni trop coder, je te conseille de passer à la dernière version de WordPress, qui propose des thèmes "portfolio" gratuits.
    "WordPress portfolio"


  4. #4
    Membre du Club
    Homme Profil pro
    graphiste
    Inscrit en
    Janvier 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : graphiste

    Informations forums :
    Inscription : Janvier 2018
    Messages : 9
    Par défaut
    @Celira non je suis parti d'une maquette sur photoshop, le site est très basique, il est adaptatif grâce au css, l'usage du php est très limité, c'est invariablement les mêmes requêtes Mysql pour afficher des images, il me suffirait de corriger la syntaxe de ces requêtes pour faire fonctionner le site je crois

    @jreaux62 oui j'y ai déjà songé, j'ai regardé leurs templates, j'imagine qu'on peut personnaliser la feuille de style...

  5. #5
    Invité
    Invité(e)
    Par défaut
    Si tu veux de l'aide pour corriger ton code, il faudrait au moins le montrer.

  6. #6
    Membre du Club
    Homme Profil pro
    graphiste
    Inscrit en
    Janvier 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : graphiste

    Informations forums :
    Inscription : Janvier 2018
    Messages : 9
    Par défaut
    - CONFIG.PHP

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    /**
     * DB Configuration
     */
    define('DB_HOST',			'localhost');
    define('DB_USER',			'root');
    define('DB_PASS',			'root');
    define('DB_NAME',			'galerie');
    $limit = 2; #item per page
    # db connect
    $link = mysql_connect(DB_HOST, DB_USER, DB_PASS) or die('Could not connect to MySQL DB ') . mysql_error();
    $db = mysql_select_db(DB_NAME, $link);
    ?>

    - Requête SQL vers la base de données

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    $db = mysql_connect('localhost', 'root', 'root'); 
    mysql_select_db('galerie',$db); 
    $id = mysql_real_escape_string($_GET ["id"]);
    $news_sql = "SELECT * FROM travaux"; 
    $news_query = mysql_query($news_sql) or die(mysql_error());
    $donnees = mysql_fetch_assoc($news_query);
    mysql_close(); 
    ?>

    - Affichage d’une galerie d’images sur la page d’accueil

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <?php 
    $db = mysql_connect('localhost', 'root', 'root');
    $reponse = mysql_query("SELECT id, couv FROM travaux ORDER BY id DESC LIMIT 19");
    while ($donnees = mysql_fetch_array($reponse) )
    {
    ?>
       <div class="couv">
      <div class="inner">
    	  <div class="right">
    	  <a href="galerie.php?id=<?php echo $donnees ['id']; ?>"><span class="arrow">❯</span></a></div>
    	     <img class="lazy" data-src="<?php echo $donnees["couv"]; ?>"/>  
        </div> 
      </div>
          <?
    }
    mysql_close();
    ?>
    </div>

    - Titre ou commentaires de la galerie d’images

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
       <?php   
    if(!empty($donnees["titre_galerie"]))  { 
    ?>
     
       <?php   
    if(!empty($donnees[«*commentaire*»]))  { 
    ?>

    - Affichage d’une galerie (les images dans la base de données sont séparées par un pipe : 
ex : img-01.jpg|img-02.jpg etc)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <?php
    $src = '585x828'; // défaut
    if ($detect->isMobile())
    {
        $src = ($detect->isTablet()) ? 'tablet' : 'iphone';
    }
    $tableau_vignettes = array_filter(explode('|', trim($donnees['585x828'])));
    foreach ($tableau_vignettes as $v)
    {
        echo <<<html
    <div class="portrait">
      <div class="inner">
    	     <img class="lazy" data-src="galeries/{$src}/{$v}"/>
      </div>    
    </div>
    html;
    }
    ?>

    - pagination de la page d’accueil de la page «*travaux*»

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <?php
    // on se connecte à MySQL 
    $db = mysql_connect('localhost', 'root', 'root'); 
    // on sélectionne la base 
    mysql_select_db('galerie',$db); 
    $id = mysql_real_escape_string($_GET ["id"]);
    $sql_next = "SELECT * FROM travaux WHERE type<>'undo-redo' AND id > '$id' ORDER BY id LIMIT 1";
    $result_next = mysql_query ($sql_next) or print ("Can't select next entry id table php_blog.<br />" . $sql_next . "<br />" . mysql_error());
    while ($row = mysql_fetch_array($result_next)) {
    $next = $row['id'];
    }
    $sql_prev = "SELECT * FROM travaux WHERE type<>'undo-redo' AND id < '$id' ORDER BY id DESC LIMIT 1";
    $result_prev = mysql_query ($sql_prev) or print ("Can't select previous entry id table php_blog.<br />" . $sql_prev . "<br />" . mysql_error());
    while ($row = mysql_fetch_array($result_prev)) {
        $prev = $row['id'];
    }
    	if (isset($next)) {
        // print a next link
        printf("<a class='fa fa-arrow-right' style='display: inline-block; float: right' href=\"galerie.php?id=%s\"></a>", $next);
    }
    else {
        // just print the word "next"
        printf("<span class='fa fa-arrow-right' style='display: inline-block; float: right; cursor:default;pointer-events: none;opacity : 0.30;'></span>", $next);
    }
    if (isset($prev)) {
        // print a previous link
        printf("<a class='fa fa-arrow-left style='display: inline-block;float: right' href=\"galerie.php?id=%s\"></a> ", $prev);
    }
    else {
        // just print the word "previous"
        printf("<span class='fa fa-arrow-left' style='display: inline-block; float: right; cursor:default;pointer-events: none;opacity : 0.30;'></span>", $next);
    }	
     
    ?>
    - Liste déroulante pour trier le contenu selon plusieurs critères

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    <?php
           $type = mysql_real_escape_string($_GET ["type"]);
    ?>
            <li class="<?php echo ($type=='')?'current':'';?>"><a href="travaux.php">tout</a></li>
            <li class="<?php echo ($type=='identite')?'current':'';?>"><a href="travaux.php?type=identite">identit&eacute;</a></li>
            <li class="<?php echo ($type=='typographie')?'current':'';?>"><a href="travaux.php?type=typographie">typographie</a></li>
            <li class="<?php echo ($type=='photographie')?'current':'';?>"><a href="travaux.php?type=photographie">photographie</a></li>
            <li class="<?php echo ($type=='affiche')?'current':'';?>"><a href="travaux.php?type=affiche">affiche</a></li>
            <li class="<?php echo ($type=='web')?'current':'';?>"><a href="travaux.php?type=web">web</a></li>
     
    	</ul>
    </nav>
    <?php
    //On initialise la connexion à la bdd
    try
    {
            $db_host = "localhost"; //Lieu où est héberger la BDD
            $db_name = "galerie"; //Nom de la BDD
            $db_login = "root"; //Login de connexion à la BDD
            $db_mdp = "root"; //Mot de passe de connexion à la BDD
            $bdd=new PDO("mysql:host=$db_host;dbname=$db_name",$db_login,$db_mdp);
    }
    catch(Exception $e)
    {
            exit("<h1>Erreur de connexion à la BDD SQL</h1></body></html>");
    }
    /* mise en place du nombre d'affichage de galeries par page */
    $nb_affiche = 9; //Nombre de galeries que l'on veut par page
    //On va afficher la/les galeries selon la page où l'on ce trouve
    if (isset($_GET['page']) && is_numeric($_GET['page']) && $_GET['page']>0)
    {
            //$start nous sert pour savoir où commence l'affichage des galeries selon la page où l'on est
            $start = $_GET['page'] * $nb_affiche - $nb_affiche;
            //On récupère la page sur laquelle on est, nécessaire lors de la pagination
            $page = $_GET['page'];		
    }
    else
    {
            $start = 0;
            $page = 1;
    }
    /* ========================================================= */
    //On prepare la requete SQL
    if( !empty($_GET['type']) )
    {
       $type = mysql_real_escape_string($_GET ["type"]); // ne jamais oublier les fonctions de protection contre les injections SQL !
    $req = $bdd->prepare("SELECT * FROM travaux WHERE type='$type' ORDER BY id DESC LIMIT :start,:nb_affiche");
    }
    else
    {
    $req = $bdd->prepare("SELECT * FROM travaux WHERE type<>'undo-redo' ORDER BY id DESC LIMIT :start,:nb_affiche");
    }
    $req->bindValue(':start',$start,PDO::PARAM_INT);
    $req->bindValue(':nb_affiche',$nb_affiche,PDO::PARAM_INT);
    $req->execute();
    while ($donnees = $req->fetch())
    {
    ?>    
    <div class="galerie">
    	<div class="home-gal">
    		<div class="inner">
    			<div class="right">
    				<a href="galerie.php?id=<?php echo $donnees ['id']; ?>"><span class="arrow">❯</span>
    				</a>
    			</div>
    			<img class="lazy" data-src="<?php echo $donnees["preview"]; ?>"/>
    		</div><!-- inner -->
        </div> <!-- lol -->   
    </div> <!-- galerie -->
     
    <?php
    }
    $req->closeCursor();
    //On met en place la pagination
    if( !empty($_GET['type']) )
    {
       $type = mysql_real_escape_string($_GET ["type"]); // ne jamais oublier les fonctions de protection contre les injections SQL !
    $req = $bdd->prepare("SELECT COUNT(*) AS nb_galerie FROM travaux WHERE type='$type'");
    }
    else
    {
    $req = $bdd->prepare("SELECT COUNT(*) AS nb_galerie FROM travaux");
    }
    $req->execute();
    $nb_galerie = $req->fetch();
    $nb_galerie = $nb_galerie['nb_galerie']; //On associe le nombre de galeries
    $nb_pages = ceil($nb_galerie / $nb_affiche); //On compte le nombre de pages par rapport au nombre de galeries que l'on veut par page
    include('pagination.php');
    if( !empty($_GET['type']) )
    {
       $type = mysql_real_escape_string($_GET ["type"]); // ne jamais oublier les fonctions de protection contre les injections SQL !
    echo paginate($_SERVER['PHP_SELF'],'?type='.$type.'&page=',$nb_pages,$page);
    }
    else
    {
    echo paginate($_SERVER['PHP_SELF'],'?page=',$nb_pages,$page);
    }
    $req->closeCursor();
    ?>

    La solution Wordpress peut paraitre interessante dans un premier temps, mais les thèmes les plus adaptés à un book de photographe ou de graphiste sont quand même couteux...(50 euros), sans compter le plug-in qui gère la galerie d'images, compter 150 euros...après ce n'est pas le seul CMS

  7. #7
    Membre du Club
    Homme Profil pro
    graphiste
    Inscrit en
    Janvier 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : graphiste

    Informations forums :
    Inscription : Janvier 2018
    Messages : 9
    Par défaut
    si quelqu'un parmi vous accepte de mettre à jour ce code, je le rémunère évidemment, c'est quand même du boulot, bien que je n'ai pas une idée très précise du volume de travail pour réaliser cette maj

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par itaff Voir le message
    ...mais les thèmes les plus adaptés à un book de photographe ou de graphiste sont quand même couteux...(50 euros), sans compter le plug-in qui gère la galerie d'images, compter 150 euros...
    C'est sûr... si 200 € ça te parait cher....
    .... Je n'ose pas demander jusqu'à combien tu es prêt à aller pour la "mise à jour" du code actuel...


    Sinon, de ce que je vois, il suffit de passer de mysql_ (obsolète) à mysqli_.

  9. #9
    Membre du Club
    Homme Profil pro
    graphiste
    Inscrit en
    Janvier 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : graphiste

    Informations forums :
    Inscription : Janvier 2018
    Messages : 9
    Par défaut
    je pensais m'en sortir avec PHPstorm, le logiciel souligne le code obsolète et suggère une nouvelle syntaxe, mais pas de réusultats, il ne suffit pas de remplacer Mysql par Mysqli ce serait beaucoup trop simple

  10. #10
    Membre du Club
    Homme Profil pro
    graphiste
    Inscrit en
    Janvier 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : graphiste

    Informations forums :
    Inscription : Janvier 2018
    Messages : 9
    Par défaut
    quand je dis que je suis prêt à payer les services d'un développeur c'est parce que j'ai l'obligation impérative (contractuelle) de mettre en ligne ce book et de postuler rapidement (engagement pris auprès de mon conseiller pôle emploi), difficile pour moi d'envisager des candidatures sans un site perso démontrant mes qualités de graphistes (pas de programmeur vous l'aurez compris lol), bref c'est assez urgent, j'ai mis ce projet de côté un long moment et je découvre aujourd'hui son obsolescence, c'est bête parce que graphiquement, il est plutôt sympa

Discussions similaires

  1. [PHP-JS] PHP qui redirige vers une page
    Par jeanfrancois dans le forum Langage
    Réponses: 3
    Dernier message: 09/05/2006, 11h52
  2. [PHP-JS] Redirection vers la bonne page
    Par Dargos dans le forum Langage
    Réponses: 5
    Dernier message: 02/05/2006, 11h03
  3. [PHP-JS] Redirection vers la bonne page
    Par Dargos dans le forum Langage
    Réponses: 3
    Dernier message: 28/04/2006, 15h57
  4. [PHP-JS] Rediriger vers une autre page
    Par Vlacar dans le forum Langage
    Réponses: 13
    Dernier message: 10/04/2006, 13h23
  5. Réponses: 2
    Dernier message: 29/10/2005, 17h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo