Variable en php

Fermé
Elpaz - 3 sept. 2008 à 15:53
Flachy Joe Messages postés 2103 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 21 novembre 2023 - 3 sept. 2008 à 17:48
Bonjour,
[php]
soit une variable $x. je met dans $x "monebook.pdf":$x="monebook.pdf".
j veux faire ci: <a href="ce qui est dans x soit monebook.pdf">voici votre ebook</a>
coma le faire?

4 réponses

adaro2000 Messages postés 46 Date d'inscription vendredi 23 mai 2008 Statut Membre Dernière intervention 28 octobre 2008 2
3 sept. 2008 à 16:02
Si c'est bien là ta question, ma réponse est celle-ci :

$x = "monebook.pdf";
echo "<a href='$x'>voici votre ebook</a>";

Satisfait ?
0
j'ai un ebook en pdf que je veux vendre.
si qq achete l'ebook je l'envoi un mail dans lequel je met un lien vers l'ebook.
pour éviter qu'on télécharger l'ebook sans payer je change regulièrement le nom de l'ebook.
donc dans le href je met le nom de l'ebook mais nom la variable qui contient ce nom.
si je fait href="$x",que j change ou pas la valeur de $x le lien sera valable.
0
vlmath Messages postés 794 Date d'inscription vendredi 20 octobre 2006 Statut Contributeur Dernière intervention 4 septembre 2011 160
3 sept. 2008 à 16:06
Salut,

Tu ne peux pas modifier une directement une variable PHP : tu dois recharger la page.
$x = $_GET['x'] ? $_GET['x'] : "monebook.pdf" ; // x = la variable du lien seulement si celle-ci est définie.
echo "<a href='./page.php?x=lien'>voici votre ebook</a>";


@Bientôt
0
pouvez vous mieux expliquer ce code?
0
vlmath Messages postés 794 Date d'inscription vendredi 20 octobre 2006 Statut Contributeur Dernière intervention 4 septembre 2011 160 > Elpaz
3 sept. 2008 à 17:06
$x = $_GET['x'] ? $_GET['x'] : "monebook.pdf" ;

C'est une opperation ternaire : si $_GET['x'] est vrai (" $_GET['x'] ? "), alors l'oppérateur va être remplacé par $_GET['x'] (ce qu'il y a entre le ? et le : ), sinon par "monebook.pdf".
En claire, si la variable $_GET['x'] contient quelque chose, le code est équivalent à : $x = $_GET['x'];
sinon à : $x = "monebook.pdf";

La forme générale de l'oppérateur ternaire est la suivant :
(condition boolean) ? si vrai : si faux ;




echo "<a href='./page.php?x=lien'>voici votre ebook</a>";

Cette partie du code fait simplement un lien vers la page elle même, en initialisant la variable $_GET['x'] à 'lien'. Les variables GET viennent après le nom de la page suivi d'un ? .

La forme générale est la suivante :
page.php?variable1=valeur1&variable2=valeur"&...
0
adaro2000 Messages postés 46 Date d'inscription vendredi 23 mai 2008 Statut Membre Dernière intervention 28 octobre 2008 2
3 sept. 2008 à 16:35
Le premier exemple a-t-il marché ? Veuille me l'indiquer, Elpaz !
0
Flachy Joe Messages postés 2103 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 21 novembre 2023 260
3 sept. 2008 à 17:48
Niveau sécurité c'est zéro.

Il faudrai utiliser des identifiants uniques stockés dans une base de donné et couplés aux adresses mails.
Le fichier PDF ne serait pas disponible directement mais à travers une page PHP qui renverrai le contenu et dont voici la structure de base :
<?php
 $id = $_GET['id'];
 $mail = $_GET['mail'];

//Vérification dans la base de donnée de la correspondance id <->mail
// [...]

if (c_est_ok){
  header('Content-type: application/pdf');
  header('Content-Disposition: attachment; filename="downloaded.pdf"');
  readfile('original.pdf');
}else{
  //erreur le fichier n'a pas été acheté
}
?>

Il faut bien évidement créer l'identifiant unique au moment de l'envoi du mail.
Et le passer dans l'url fourni dans le mail :
$link = 'la_page.php?id='.$uniqid.'&mail='.$to;

$msg = ''voici le lien où telecharger le livre :';
$msg .= '<a href="'.$link.'">'.$link.'</a>';

mail ($to,$msg);

De cette façon l'utilisateur ne connaît pas la véritable adresse sur le serveur.
On peut rajouter des fonctionnalités :
Par exemple en supprimant l'id de la base de donné on n'autorise qu'un téléchargement.
En faisant une page qui fabrique un nouvel id et le renvoi, un utilisateur peut télécharger plusieurs fois (s'il perd le fichier il peut le récupérer), mais l'adresse e-mail doit correspondre donc on est sur que c'est pas quelqu'un d'autre.
0