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 :

Générer un fichier php à partir d'un autre php


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juillet 2011
    Messages : 29
    Points : 16
    Points
    16
    Par défaut Générer un fichier php à partir d'un autre php
    Bonjour, afin de mettre en pratique ce que j'ai appris sur php (mode débutant)
    je suis en train de créer une page de redirection automatique pour des adhérents d'une société afin de raccourcir un lien boutique.

    il vont sur une page web du type raccourcis.maboutique.com
    le
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <p>&nbsp;</p>
    <h3 style="text-align: center; color: #3f7320;">&Eacute;ditez le nom de votre propre boutique en ligne</h3>
    <p style="text-align: center;"><strong>Tapez ci-dessous le code courtier de votre boutique en ligne actuelle </strong></p>
    <p style="text-align: center;"><strong>(Respectez la casse, ex : N2Bt7eXX)</strong></p>
    <form action="action.php" method="post">
    <p style="text-align: center;"><input type="text" name="courtier" /></p>
    <p style="text-align: center;"></p>
    <p style="text-align: center;"><strong>Tapez ci-dessous le nom que vous souhaitez pour votre boutique</strong></p>
    <p style="text-align: center;"><strong>(en minuscule, sans accents, sans espaces)</strong></p>
    <p style="text-align: center;"><input type="text" name="boutique" /></p>
    <p style="text-align: center;"><input type="submit" value="C'est parti !" /></p>
    Puis ils sont redirigés vers une page php suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    echo 'Verfiez que votre lien boutique est : https://lenomdemaboutiqueesttroplongpouretreraisonnable.com/?CodeCourtier='.htmlspecialchars($_POST["courtier"]).'<br> </br>';
    echo 'Si il est correct, votre site sera : https://maboutique.com/'.htmlspecialchars($_POST["boutique"]);
    echo '<br> </br>';
    $dir = "/var/www/html/maboutique/".htmlspecialchars($_POST["boutique"])."/";
    mkdir($dir, 0755);
    file_put_contents($dir.'index.php',"ICIDUCODEPHP");
    ?>
    un dossier se créé automatiquement avec le nom de la boutique choisie, ainsi qu'un index.php dans ce même dossier.
    jusqu'à là tout va bien.
    Là ou ça se complique, je n'arrive pas a insérer le code php correctement (caractère d'évitement, apostrophe,etc...) dans un file_put_contents()
    Pouvez-vous m'aider ?
    Le code à rentrer dans le index.php du nouveau dossier est celui ci-dessous avec la variable "courtier" générée automatiquement à partir du php précédent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
      header('Location: https://lenomdemaboutiqueesttroplongpouretreraisonnable.com/?CodeCourtier=MAVARIABLECOURTIER');
      exit();
    ?>
    Le but de la manœuvre, c'est que l'adhérent ai un lien de type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maboutique.com/nomquejeveux
    qui créera une redirection visible vers: https://lenomdemaboutiqueesttroplongpouretreraisonnable.com/?CodeCourtier=MAVARIABLECOURTIER
    Par avance, merci !

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Bonjour,
    Si vous passez une valeur en get, il ne faut pas de /

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    https://lenomdemaboutiqueesttroplongpouretreraisonnable.com?CodeCourtier=MAVARIABLECOURTIER

  3. #3
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juillet 2011
    Messages : 29
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par MaitrePylos Voir le message
    Bonjour,
    Si vous passez une valeur en get, il ne faut pas de /

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    https://lenomdemaboutiqueesttroplongpouretreraisonnable.com?CodeCourtier=MAVARIABLECOURTIER
    Désolé, je n'ai pas saisi le get
    les deux derniers "CODE" c'est pas du code, c'est juste pour info (le forum me génère automatiquement un url)

    Sinon j'ai une erreur 500 avec ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    file_put_contents($dir.'index.php',"<?php".'<br> </br>'."header('Location: https://lenomdemaboutiqueesttroplongpouretreraisonnable.com/?CodeCourtier="'.htmlspecialchars($_POST["courtier"])."\');".'<br> </br>'."exit();".'<br> </br>'."?>");

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Passer des valeur dans un url, c'est envoyer en GET.

    Il existe plusieurs verbe pour le http : GET,POST,PUT,DELETE....

    Dans votre cas, vous essayer de passer en get et vous mettez un / avant votre ?CodeCourrier

    Vous avez ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    file_put_contents($dir.'index.php',"<?php".'<br> </br>'."header('Location: https://lenomdemaboutiqueesttroplongpouretreraisonnable.com/?CodeCourtier="'.htmlspecialchars($_POST["courtier"])."\');".'<br> </br>'."exit();".'<br> </br>'."?>");
    essayer ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    file_put_contents($dir.'index.php',"<?php".'<br> </br>'."header('Location: https://lenomdemaboutiqueesttroplongpouretreraisonnable.com?CodeCourtier="'.htmlspecialchars($_POST["courtier"])."\');".'<br> </br>'."exit();".'<br> </br>'."?>");

  5. #5
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juillet 2011
    Messages : 29
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par MaitrePylos Voir le message
    Passer des valeur dans un url, c'est envoyer en GET.

    Il existe plusieurs verbe pour le http : GET,POST,PUT,DELETE....

    Dans votre cas, vous essayer de passer en get et vous mettez un / avant votre ?CodeCourrier

    Vous avez ceci
    Ah ok je ne comprenais pas, le "https://lenomdemaboutiqueesttroplongpouretreraisonnable.com/?CodeCourtier=" est imposé, par l'entreprise qui fournis les liens d'origines, je ne peux pas y déroger...
    l'erreur 500 c'est lors de la création du fichier index.php

  6. #6
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Sorry, je viens seulement de bien comprendre la demande.

    Je regarde si j'y arrive.

  7. #7
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Ce que vous voulez c'est ceci ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    $txt = "<?php\nheader('Location: https://lenomdemaboutiqueesttroplongpouretreraisonnable.com/?CodeCourtier=MAVARIABLECOURTIER');\nexit();\n?>";
    file_put_contents($dir.'index.php',$txt);

  8. #8
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juillet 2011
    Messages : 29
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par MaitrePylos Voir le message
    Ce que vous voulez c'est ceci ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    $txt = "<?php\nheader('Location: https://lenomdemaboutiqueesttroplongpouretreraisonnable.com/?CodeCourtier=MAVARIABLECOURTIER');\nexit();\n?>";
    file_put_contents($dir.'index.php',$txt);

    j'ai testé, plus d'erreurs, le fichier se créé nickel !
    par contre j'ai essayé de mettre htmlspecialchars($_POST["courtier"]) à la place de "MAVARIABLECOURTIER"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $txt = "<?php\nheader('Location: https://lenomdemaboutiqueesttroplongpouretreraisonnable.com/?CodeCourtier='.htmlspecialchars($_POST["courtier"]));\nexit();\n?>";
    et j'ai de nouveau l'erreur 500...

  9. #9
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juillet 2011
    Messages : 29
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par halfernet Voir le message
    j'ai testé, plus d'erreurs, le fichier se créé nickel !
    par contre j'ai essayé de mettre htmlspecialchars($_POST["courtier"]) à la place de "MAVARIABLECOURTIER"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $txt = "<?php\nheader('Location: https://lenomdemaboutiqueesttroplongpouretreraisonnable.com/?CodeCourtier='.htmlspecialchars($_POST["courtier"]));\nexit();\n?>";
    et j'ai de nouveau l'erreur 500...
    C'est bon, j'ai trouvé avec votre technique, j'ai rajouté des variables, et ça fonctionne nickel ! Merci
    Je ne sais pas si c'est bien optimisé par contre, mais ça fait le job.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $txt = "<?php\nheader('Location: https://lenomdemaboutiqueesttroplongpouretreraisonnable.com/?CodeCourtier=";
    $txt2 = "');\nexit();\n?>";
    file_put_contents($dir.'index.php',$txt.htmlspecialchars($_POST["boutique"]).$txt2);
    ?>

  10. #10
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Vous avez un souci avec vos double quotes et vos single quote , il faut être plus précis.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     $txt = "<?php\nheader('Location: https://lenomdemaboutiqueesttroplongpouretreraisonnable.com/?CodeCourtier=".htmlspecialchars($_POST["courtier"])."');\nexit();\n?>";

  11. #11
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juillet 2011
    Messages : 29
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par MaitrePylos Voir le message
    Vous avez un souci avec vos double quotes et vos single quote , il faut être plus précis.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     $txt = "<?php\nheader('Location: https://lenomdemaboutiqueesttroplongpouretreraisonnable.com/?CodeCourtier=".htmlspecialchars($_POST["courtier"])."');\nexit();\n?>";
    Un grand merci MaitrePylos vous méritez bien votre pseudonyme, je garde votre solution en une ligne.
    Problème résolu !!

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

Discussions similaires

  1. Générer un fichier XML à partir php et requête SQL
    Par ramzi87 dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 13/09/2015, 17h22
  2. génèrer un fichier php à partir de base de données
    Par nrandria dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 10/09/2008, 14h59
  3. Générer un fichier php à partir d'un script php
    Par Jim_Nastiq dans le forum Langage
    Réponses: 5
    Dernier message: 06/03/2007, 15h49
  4. Réponses: 4
    Dernier message: 02/05/2005, 20h25
  5. Réponses: 2
    Dernier message: 27/05/2004, 00h40

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