Variable en php

Elpaz -  
Flachy Joe Messages postés 2102 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   2
 
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
Elpaz
 
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   Statut Contributeur Dernière intervention   160
 
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
Elpaz
 
pouvez vous mieux expliquer ce code?
0
vlmath Messages postés 794 Date d'inscription   Statut Contributeur Dernière intervention   160 > Elpaz
 
$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   Statut Membre Dernière intervention   2
 
Le premier exemple a-t-il marché ? Veuille me l'indiquer, Elpaz !
0
Flachy Joe Messages postés 2102 Date d'inscription   Statut Membre Dernière intervention   261
 
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