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

Langage PHP Discussion :

Problème pour l'URL de mes nouveaux articles crées PHP [PHP 5.5]


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2015
    Messages : 12
    Points : 7
    Points
    7
    Par défaut Problème pour l'URL de mes nouveaux articles crées PHP
    Bonjour à tous ! Ca va votre journée ?

    Je suis en train d'apprendre à développer en php et j'ai un petit soucis, certainement que j'utilise très mal les if/elseif/else et boucle

    Je m'explique : J'ai créer une partie news sur mon site qui marche nickel. Il y a la page NEWS qui afficher toutes les dernières news avec un petit résumé de chaque news et lorsqu'on clic sur "Lire la suite..." on tombe sur la page de la news en question, du genre : "Anniversaire Roger". Pour écrire chaque news, j'ai créer une page admin avec un formulaire contenant un input pour le sujet et un input pour l'article. Je traite ensuite le sujet en php pour donner par exemple l'url : "anniversaire-roger" que j'utilise pour créer la page "www.monsite/news/anniversaire-roger.php". Bon je fais pas plus long puisque pour ça, tout marche nickel !

    En fait le soucis c'est le nom du fichier, car si l'année prochaine je veux faire une nouvelle news : "Anniversaire Roger", eh bien en la créant je supprimerais/remplacerait l'ancienne news "Anniveraire Roger".

    J'ai donc crée ce bout de code :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    //on vérifie si la page existe, si oui on lui ajoute un numéro.
    $num_page = 1;
     
    if (file_exists($url.'.php') AND file_exists($url.'-'.$num_page.'.php') == FALSE ) {
    	$url = $url.'-'.$num_page;
    }
    //si elle a déja un numéro, on rajoute +1 à num_page jusqu'a ce qu'on tombe sur un chiffre pas utilisé
    elseif (file_exists($url.'.php') AND file_exists($url.'-'.$num_page.'.php')) {
    	while (file_exists($url.'-'.$num_page.'.php')) {
    		$num_page = $num_page++;
    		$url = 	$url.'-'.$num_page;	
    	}
    }

    Et il ne marche pas comme je voudrais ...

    En gros la si je crée une première news "Anniversaire Roger" l'url de la page sera : "www.monsite/news/anniversaire-roger.php", ça c'est bon.
    Si je crée une deuxième news "Anniversaire Roger" l'url sera bien comme je le veux: "www.monsite/news/anniversaire-roger-1.php", ça aussi c'est bon.
    MAIS si je crée une troisième je me retrouve encore avec : "www.monsite/news/anniversaire-roger-1.php", ça c'est pas bon ...


    Si quelqu'un peut m'aider ça serait génial !

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu nous dis que tu crées un fichier PHP sur le disque dur pour chaque news ?
    Si c'est vraiment ça, c'est l'inverse d'un site dynamique, il faut utiliser une base de données.

    Sinon purement sur l'incrémentationk, il faut faire simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (file_exists($url.'.php')) {
                  $num_page = 1;
                  while (file_exists($url.'-'.$num_page.'.php')) {
    	            $num_page++;
                  }
    }
    Dans ton code à toi tu mélangeais l'url et le numéro : ligne 9 tu consideres que l'url et le numéro sont dissociés alors que ligne 11 tu injectes le numéro dans l'url.
    Un simple echo de ton $url te l'aurai montré.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2015
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Si si j'utilise bien une base de donnée !

    Seulement je crée un fichier avec juste la structure de base en gros, avec dedans une requête pour aller chercher l'article en question dans ma base de donnée (l'input "sujet", "article", "auteur" qui lui est simplement le nom de la personne connectée (j'utilise les sessions) et la date, je stock aussi l'url. Je pourrais avec ça faire une autre page type : "modif-news.php" qui permettra de modifier l'article de la news. C'est pas bon ?

    Sinon dans le code que tu m'as fourni, il faut bien que je rajoute du code encore non ? Du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if (file_exists($url.'.php')) {
                  $num_page = 1;
                  while (file_exists($url.'-'.$num_page.'.php')) {
    	            $num_page++;
     
                  }
                  $url = $url.'-'.$num_page;
    }
    Le ".php" j'le rajoute plus tard dans mon code, a vrai dire je sais pas trop pourquoi j'ai fais comme ça mais ça s'est imposé tout seul. Je répète que je débute, donc je suis certainement très brouillon et j'utilise certainement pas les bonnes manières de faire ...

    Merci pour ta réponse en tout cas je vais essayer ton code de suite

    EDIT: En rajoutant ma ligne de code ça marche nickel ! Merci beaucoup !

    J'aurais juré avoir écris un code comme le tien au départ (avec juste le if et pas de elseif) mais ça marchait pas ... j'ai du lourder quelque part. Du coup j'en suis arrivé à mon code super long et qui marche pas.

    MERCI en tout cas, j'ai bien compris le fonctionnement.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2015
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Je voulais te remercier sabotage ! En me disant :

    "Tu nous dis que tu crées un fichier PHP sur le disque dur pour chaque news ?
    Si c'est vraiment ça, c'est l'inverse d'un site dynamique, il faut utiliser une base de données."
    Tu m'as fais tilter que j'avais pas la bonne méthode, enfin à moitié puisque le contenu de mes fichiers était lui pioché dans ma base de donnée. Mais je comprenais pas comment faire autrement ...
    Puis aujourd'hui j'ai commencé à regarder comment faire un système de pagination, et j'ai remarqué que pour le faire il fallait utilisé la super-globale $_GET et un truc (j'ai pas le nom) qui se met après news.php (par exemple) qui est : ?page=1.

    J'ai réussi à me faire mon système de pagination qui marche nickel (reste des améliorations à faire quand même), puis une fois fini je me suis rappelé ce que tu m'as dis: "il faut utiliser une base de données." donc maintenant toutes mes news je vais les chercher grâce à la method $_GET et ça se présente genre : news.php?sujet=anniversaire-roger.

    Ca marche SUPER bien !

    Merci beaucoup
    Bonne fin de journée à toi et à tous.

    Alvan

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Free Pascal] Problème pour mettre en lien mes fonctions et mes procédures
    Par HughJack dans le forum Free Pascal
    Réponses: 1
    Dernier message: 14/12/2014, 17h10
  2. problème pour intégrer des boutons paypal sur un site php
    Par moricette17 dans le forum Langage
    Réponses: 1
    Dernier message: 30/06/2011, 18h05
  3. [RegEx] Problème pour transformer les url en liens cliquable
    Par AlphaYoDa dans le forum Langage
    Réponses: 2
    Dernier message: 20/02/2006, 14h54
  4. [EJB]JBoss et JNDI, problème pour trouver mes EJB
    Par shingo dans le forum Wildfly/JBoss
    Réponses: 3
    Dernier message: 31/12/2005, 16h14
  5. Réponses: 1
    Dernier message: 03/12/2005, 17h17

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