[RESOLU] requete avec passage variable url

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] requete avec passage variable url

Re: [RESOLU] requete avec passage variable url

par nestor94 » 14 déc. 2021, 02:27

Alors, comme je ne m'en sortais pas, j'ai modifié le script sans passer par l'url et tout sur la meme page.
$pdostat = $bdd->prepare("SELECT nom_ville FROM villes LEFT JOIN membres ON villes.pos_x_map = membres.pos_x_enter_ville AND villes.pos_y_map = membres.pos_y_enter_ville WHERE membres.id=:id");
$pdostat->bindvalue(':id',$idMembreSession, PDO::PARAM_INT);
$pdostat->execute();
$membreSession = $pdostat->fetch();    
if (!empty($membreSession)) { 
$nom_ville = $membreSession['nom_ville'];
}
$pdostat = $bdd->prepare("SELECT proprio FROM $nom_ville LEFT JOIN membres ON $nom_ville.pos_x = membres.pos_x_ville AND $nom_ville.pos_y = membres.pos_y_ville WHERE membres.id=:id");
$pdostat->bindvalue(':id',$idMembreSession ,PDO::PARAM_INT);
$pdostat->execute();
$membreSession = $pdostat->fetch();  
if (!empty($membreSession )) { 
$proprio = $membreSession['proprio'];
}
$idMembreCible = $proprio;
// récupération en bdd du membre sélectionné 
$pdostat = $bdd->prepare("SELECT * FROM membres WHERE pseudo = :pseudo");
$pdostat->bindvalue(':pseudo', $idMembreCible, PDO::PARAM_STR);
$pdostat->execute();
$membreCible = $pdostat->fetch();
if (!empty($membreCible)) { 
$pseudo = $membreCible['pseudo'];
}
puis plus loin, je recupère ce qui m'intéresse.
<?php if (!$membreCible) : ?>

    <p>Ce perso n'existe pas ou n'est plus à proximité.<p>
    

<?php else :
// identifiant du membre déclaré
$idMembreCible = $proprio;

// récupération en bdd du membre déclaré
$pdostat = $bdd->prepare("SELECT * FROM membres WHERE pseudo = :pseudo");
$pdostat->bindvalue(':pseudo', $idMembreCible, PDO::PARAM_STR);
$pdostat->execute();
$membreCible = $pdostat->fetch();
?>
<br>
<table>
<td><?php echo '<img src="' . htmlentities($membreCible['contenu_batiment']) . '">'; ?>
<br><b><font size="2"><?php echo '' . htmlentities($membreCible['qte_batiment']) .''; ?></b></font></td>
</table>
<br>
<table>
<tr><td><font size="3"><a href="/devaliser_stock_batiment_perso_id.php?id=<?php echo intval($membreCible['id']) ?>" title="VOL">FORCER LA PORTE</a></td>
</table>
<?php endif; ?>
C'est un peu tordu, mais ça fonctionne parfaitement.

Re: requete avec passage variable url

par nestor94 » 11 déc. 2021, 11:30

proprio...

j'ai remodifié ainsi le lien:
<a href="cambrioler_entrepot.php?id='$proprio'">
puis:
$pdostat = $bdd->prepare("SELECT proprio FROM $nom_ville LEFT JOIN membres ON $nom_ville.pos_x = membres.pos_x_ville AND $nom_ville.pos_y = membres.pos_y_ville WHERE membres.id=:id");
$pdostat->bindvalue(':id',$idMembreSession ,PDO::PARAM_INT);
$pdostat->execute();
$membreSession = $pdostat->fetch();  
if (!empty($membreSession )) { 
$proprio = $membreSession['proprio'];
}
$proprio = !empty($_GET['id']) ? $_GET['id'] : NULL;
// récupération en bdd du membre sélectionné dans l'url
$pdostat = $bdd->prepare("SELECT * FROM membres WHERE id =:id AND contenu_batiment = :contenu_batiment");
$pdostat->bindvalue(':id', $proprio, PDO::PARAM_INT);
$pdostat->bindvalue(':contenu_batiment', $proprio, PDO::PARAM_INT);
$pdostat->execute();
$proprio = $pdostat->fetch();  




Re: requete avec passage variable url

par or 1 » 11 déc. 2021, 00:11

cambrioler_entrepot.php?id=proprio
que vaut $_GET['id'] avec une telle url ?

Re: requete avec passage variable url

par nestor94 » 10 déc. 2021, 23:47

Ok, dans le script qui appelle le lien, j'ai mis ceci:
<td><b><a href="cambrioler_entrepot.php?id=proprio"></b></a></td>

puis modifié celui qui nous intéresse ainsi: (extrait)
$proprio = !empty($_GET['id']) ? $_GET['id'] : NULL;
// récupération en bdd du membre sélectionné dans l'url
$pdostat = $bdd->prepare("SELECT * FROM membres WHERE id =:id AND contenu_batiment = :contenu_batiment");
$pdostat->bindvalue(':id', $proprio, PDO::PARAM_INT);
$pdostat->bindvalue(':contenu_batiment', $proprio, PDO::PARAM_INT);
$pdostat->execute();
$proprio = $pdostat->fetch();  

Re: requete avec passage variable url

par or 1 » 10 déc. 2021, 19:34

il faut faire les choses dans l'ordre.
il faut commencer par
https://www.farwest1850.net/cambrioler_entrepot.php
comme je doute que ce soit l'utilisateur qui rentre direct cette url, il faut revoir le code qui fait un lien vers cette page et passer le paramètre.

Re: requete avec passage variable url

par nestor94 » 10 déc. 2021, 19:30

Je pense que non, mais je ne comprends pas comment faire par rapport à:
$proprio = !empty($_GET['proprio']) ? $_GET['proprio'] : NULL;

Re: requete avec passage variable url

par or 1 » 10 déc. 2021, 19:18

soit une url sans paramètre.
est-il possible de récupérer le paramètre proprio dans une url qui n'a pas de paramètre ?

Re: requete avec passage variable url

par nestor94 » 10 déc. 2021, 19:06

Re: requete avec passage variable url

par or 1 » 10 déc. 2021, 18:37

quelle est l'url de la page ?

Re: requete avec passage variable url

par nestor94 » 10 déc. 2021, 18:29

C'est parce que je n'ai pas remis ici tout le code :oops:
<?php
session_start();
require_once 'config.php';
$idMembreSession = !empty($_SESSION['id']) ? $_SESSION['id'] : NULL;

$pdostat = $bdd->prepare("SELECT nom_ville FROM villes LEFT JOIN membres ON villes.pos_x_map = membres.pos_x_enter_ville AND villes.pos_y_map = membres.pos_y_enter_ville WHERE membres.id=:id");
$pdostat->bindvalue(':id',$idMembreSession, PDO::PARAM_INT);
$pdostat->execute();
$membreSession = $pdostat->fetch();    
if (!empty($membreSession)) { 
$nom_ville = $membreSession['nom_ville'];
}

$pdostat = $bdd->prepare("SELECT proprio FROM $nom_ville LEFT JOIN membres ON $nom_ville.pos_x = membres.pos_x_ville AND $nom_ville.pos_y = membres.pos_y_ville WHERE membres.id=:id");
$pdostat->bindvalue(':id',$idMembreSession ,PDO::PARAM_INT);
$pdostat->execute();
$membreSession = $pdostat->fetch();  
if (!empty($membreSession )) { 
$proprio = $membreSession['proprio'];
}
$proprio = !empty($_GET['proprio']) ? $_GET['proprio'] : NULL;
// récupération en bdd du membre sélectionné dans l'url
$pdostat = $bdd->prepare("SELECT * FROM membres WHERE id =:id AND contenu_batiment = :contenu_batiment");
$pdostat->bindvalue(':id', $proprio, PDO::PARAM_INT);
$pdostat->bindvalue(':contenu_batiment', $proprio, PDO::PARAM_INT);
$pdostat->execute();
$proprio = $pdostat->fetch();  
partie html
<?php if (!$proprio) : ?>

    <p>Ce perso n'existe pas.<p>
    

<?php else :
// identifiant du membre sélectionné dans l'url
$proprio = !empty($_GET['proprio']) ? $_GET['proprio'] : NULL;

// récupération en bdd du membre sélectionné dans l'url
$pdostat = $bdd->prepare("SELECT * FROM membres WHERE id= :id AND contenu_batiment =:contenu_batiment");
$pdostat->bindvalue(':id', $proprio, PDO::PARAM_INT);
$pdostat->bindvalue(':contenu_batiment', $proprio, PDO::PARAM_INT);
$pdostat->execute();
$proprio = $pdostat->fetch();
?>
<br><br>
<table>
<tr><td colspan="3"><b><font size="3">INTERACTIONS</b></font></td></tr>
<tr><td><font size="3"><a href="/voler_stock_batiment_perso_id.php?id=<?php '<img src="' . htmlentities($proprio['contenu_batiment']) . '">'; 
intval($proprio['id']) ?>" title="CAMBRIOLER">CAMBRIOLER</a></td>
</table>
<?php endif; ?>
<br><br><center><a href="/map_detail_lieu.php">Vers la carte de jeu</a></a></center>
</body>
</html>



Re: requete avec passage variable url

par or 1 » 10 déc. 2021, 18:16

ce dernier code ne comprend pas : "Ce perso n'existe pas". il ne peut donc pas afficher "Ce perso n'existe pas".
quelle est l'url de la page ?

Re: requete avec passage variable url

par nestor94 » 10 déc. 2021, 17:40

$pdostat = $bdd->prepare("SELECT proprio FROM $nom_ville LEFT JOIN membres ON $nom_ville.pos_x = membres.pos_x_ville AND $nom_ville.pos_y = membres.pos_y_ville WHERE membres.id=:id");
$pdostat->bindvalue(':id',$idMembreSession ,PDO::PARAM_INT);
$pdostat->execute();
$membreSession = $pdostat->fetch();  
if (!empty($membreSession )) { 
$proprio = $membreSession['proprio'];
}
$proprio = !empty($_GET['proprio']) ? $_GET['proprio'] : NULL;

// récupération en bdd du membre sélectionné dans l'url
$pdostat = $bdd->prepare("SELECT * FROM membres WHERE id =:id AND contenu_batiment = :contenu_batiment");
$pdostat->bindvalue(':id', $proprio, PDO::PARAM_INT);
$pdostat->bindvalue(':contenu_batiment', $proprio, PDO::PARAM_INT);
$pdostat->execute();
$proprio = $pdostat->fetch();  
J'ai réécris le script ainsi mais je tombe toujours sur "
<p>Ce perso n'existe pas.<p>

Re: requete avec passage variable url

par two3d » 10 déc. 2021, 12:29

requete avec passage variable url

par nestor94 » 10 déc. 2021, 11:15

Bonjour, je n'arrive pas à passer une variable dans une url
$pdostat = $bdd->prepare("SELECT proprio FROM $nom_ville LEFT JOIN membres ON $nom_ville.pos_x = membres.pos_x_ville AND $nom_ville.pos_y = membres.pos_y_ville WHERE membres.id=:id");
$pdostat->bindvalue(':id',$idMembreSession ,PDO::PARAM_INT);
$pdostat->execute();
$membreSession = $pdostat->fetch();  
if (!empty($membreSession )) { 
$proprio = $membreSession['proprio'];
}
$idMembreProprio = !empty($_GET['id']) ? $_GET['id'] : NULL;

// récupération en bdd du membre sélectionné dans l'url
$pdostat = $bdd->prepare("SELECT * FROM membres WHERE id = :id AND contenu_batiment = :contenu_batiment");
$pdostat->bindvalue(':id', $idMembreProprio, PDO::PARAM_INT);
$pdostat->bindvalue(':contenu_batiment', $membreSession, PDO::PARAM_INT);
$pdostat->execute();
$membreProprio = $pdostat->fetch();  
----partie html----
<?php if (!$membreProprio) : ?>

    <p>Ce perso n'existe pas.<p>
    

<?php else :
// identifiant du membre sélectionné dans l'url
$idMembreProprio = !empty($_GET['id']) ? $_GET['id'] : NULL;

// récupération en bdd du membre sélectionné dans l'url
$pdostat = $bdd->prepare("SELECT * FROM membres WHERE id= :id AND contenu_batiment =:contenu_batiment");
$pdostat->bindvalue(':id', $idMembreProprio, PDO::PARAM_INT);
$pdostat->bindvalue(':contenu_batiment', $membreSession['contenu_batiment'], PDO::PARAM_INT);
$pdostat->execute();
$membreProprio = $pdostat->fetch();
echo '<img src="' . htmlentities($membreProprio['contenu_batiment']) . '">'; 
?>
Il faudrait que $proprio ( qui est un pseudo) passe dans l'url...