[RESOLU] mon code ne fonctionne pas

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] mon code ne fonctionne pas

Re: mon code ne fonctionne pas

par bibou51 » 28 oct. 2018, 22:33

bon je ne sais pas si c'était la meilleur solution mais en tout cas ça fonctionne en changeant l'ordre des lignes de codes.
Et merci pour l'aide apportée.

<?php
define('include',NULL);
include('core.php');

if (!isset($_SESSION['membre']) || !isset($_SESSION['connect'])) {
header('Location: /compte/login');
die();
}

if (isset($_GET['id']) && !empty($_GET['id']) && $_GET['id'] != 0) {

$_GET['id'] = intval($_GET['id']);

$sqlcount = $db->prepare('SELECT count(id) as count FROM membres WHERE id = :id');
$sqlcount->execute(array(':id' => $_GET['id']));
$count = $sqlcount->fetch(PDO::FETCH_OBJ);

if ($count->count == 0) {

$nompage = 'Erreur';
$descpage = 'Ce membre n\'existe pas !';
include('header.php');
include('sidebar.php');

echo '<div id="content" class="float_r center"><h2>Erreur</h2><br />Ce membre n\'existe pas !';
}
else {

$infos->pseudo = htmlentities($infos->pseudo, ENT_QUOTES, 'UTF-8');

$sqlcounts = $db->prepare('SELECT COUNT(id) as count FROM sites WHERE membre = :id');
$sqlcounts->execute(array(':id' => $_GET['id']));
$counts = $sqlcounts->fetch(PDO::FETCH_OBJ);

$nompage = 'Profil de '.$infos->pseudo;
$descpage = 'Le profil du membre : '.$infos->pseudo;
include('header.php');
include('sidebar.php');

$sqlinfos = $db->prepare('SELECT pseudo, visites, niveau, date, statut, clics, euros, avatar FROM membres WHERE id = :id');
$sqlinfos->execute(array(':id' => $_GET['id']));
$infos = $sqlinfos->fetch(PDO::FETCH_OBJ);

$avatar = ($infos->avatar == '') ? '/theme/images/noavatar.png' : $infos->avatar;

$sqlstatut = $db->prepare('SELECT titre FROM statuts WHERE id = :id');
$sqlstatut->execute(array(':id' => $infos->statut));
$statut = $sqlstatut->fetch(PDO::FETCH_OBJ);

echo '<div id="content" class="float_r"> <h2 class="center">Profil de '.$infos->pseudo.'</h2><br />
<section style="width:70%;margin:auto"><div class="topart"><h3>Informations</h3><div class="sidehead2"><div class="sidehead3"></div></div></div><div class="padding">
<div style="float:left;width:30%;text-align:center;margin-top:6%"><img src="'.$avatar.'" alt="avatar" style="border-radius:10%;max-width:60px" /></div>
<div style="float:left;width:70%"><div style="padding:4px;padding-left:10%">
┌Son Pseudo : '.$infos->pseudo.' <a href="/messagerie/index?page=envoyer&membre='.$_GET['id'].'" data-tips="Contacter ce Membre" class="bottom-tip" target="_blank"><img src="/theme/images/sendmail.png" class="vertical" width="16" height="16" alt="sendmail" /></a><br />├Son Statut : '.$statut->titre.'<br />├Inscrit '.jour_date($infos->date) .'<br />
├Liens visités : '.$infos->visites.'<br />├Ses Euros : '.$infos->euros.' €<br />├Son niveau : '.$infos->niveau.'<br />├Ses clics effectués sur le PTC : '.$infos->clics.'<br />└Nombre de Liens : '.$counts->count.'</div></div><div style="clear:left"></div></div></section><br />
<form method="post" class="center" action="/compte/index?page=amis"><div class="center"><input type="hidden" name="membre" value="'.$_GET['id'].'" /><button class="btn" name="ajout" type="submit">Ajouter à mes amis</button></a> <button class="btn" onclick="history.back()" type="button">Retour</button></div></form>';
}
echo '</div>';
include('footer.php');
}
else header('Location: /404');
?>

Re: mon code ne fonctionne pas

par bibou51 » 28 oct. 2018, 19:59

Le problème c'est que j'y connais pas grand chose donc là ça se complique pour moi d'autant plus que ça fonctionne très bien sur d'autres sites du même genre et codés de la même façon.
Peut-être que ça viens de la bdd ?

$sqlinfos = $db->prepare('SELECT pseudo, visites, niveau, date, statut, clics, euros, avatar FROM membres WHERE id = :id');
$sqlinfos->execute(array(':id' => $_GET['id']));
$infos = $sqlinfos->fetch(PDO::FETCH_OBJ);var_dump($infos);


object(stdClass)#14 (8) { ["pseudo"]=> string(5) "admin" ["visites"]=> string(4) "3758" ["niveau"]=> string(1) "2" ["date"]=> string(10) "1535716777" ["statut"]=> string(1) "3" ["clics"]=> string(2) "84" ["euros"]=> string(8) "0.324018" ["avatar"]=> string(65) "http://bibou-surf.ovh/upload/b16945e587 ... d5bd98.png" }

Re: mon code ne fonctionne pas

par @rthur » 28 oct. 2018, 19:54

Ces messages d'erreur indiquent que tu fais appel à des propriétés (statut, avatar, pseudo...) sur des objets qui n'en ont pas.
Donc vérifie comment tu récupères ton objet... Probablement un pb de requête SQL qui échoue et donc qui ne construit pas ton objet comme tu le voudrai

Re: mon code ne fonctionne pas

par bibou51 » 28 oct. 2018, 19:41

Bonjour,
Voilà ce que ça donne :
Notice: Undefined property: stdClass::$statut in /storage/ssd4/886/6971886/public_html/membre.php on line 45

Notice: Undefined property: stdClass::$avatar in /storage/ssd4/886/6971886/public_html/membre.php on line 47

Notice: Undefined property: stdClass::$pseudo in /storage/ssd4/886/6971886/public_html/membre.php on line 49

Notice: Undefined property: stdClass::$pseudo in /storage/ssd4/886/6971886/public_html/membre.php on line 53

Notice: Trying to get property of non-object in /storage/ssd4/886/6971886/public_html/membre.php on line 53

Notice: Undefined property: stdClass::$date in /storage/ssd4/886/6971886/public_html/membre.php on line 53

Notice: Undefined property: stdClass::$visites in /storage/ssd4/886/6971886/public_html/membre.php on line 54

Notice: Undefined property: stdClass::$euros in /storage/ssd4/886/6971886/public_html/membre.php on line 54

Notice: Undefined property: stdClass::$niveau in /storage/ssd4/886/6971886/public_html/membre.php on line 54

Notice: Undefined property: stdClass::$clics in /storage/ssd4/886/6971886/public_html/membre.php on line 54

Et une fene^tre doit afficher les statistiques d'un membre donné mais il n'y a que le nombre de liens qui s'affiche correctement

Re: mon code ne fonctionne pas

par @rthur » 28 oct. 2018, 19:35

C'est à dire rien ne s'affiche ? Tu as une page blanche ?

Il faut que tu fasses un peu de debug de ton côté pour savoir à quel moment ton code ne se comporte pas comme prévu.
Mets des var_dump($variable_a_verifier); pour vérifier la valeur de tes variables au fur et à mesure de ton code.

mon code ne fonctionne pas

par bibou51 » 26 oct. 2018, 20:10

Bonjour,
Je ne comprend pas pourquoi mais il doit y avoir une erreur quelque part car c'est censé afficher les statistiques personnelles des membres mais rien ne s'affiche alors que sur les autres sites qui ont cette même page ça fonctionne.
Pourriez-vous me dire ce qui cloche s'il vous plait ?
Merci d'avance.
<?php
define('include',NULL);
include('core.php');

if (!isset($_SESSION['membre']) || !isset($_SESSION['connect'])) {
header('Location: /compte/login'); 
die();
}

if (isset($_GET['id']) && !empty($_GET['id']) && $_GET['id'] != 0) {

$_GET['id'] = intval($_GET['id']);

$sqlcount = $db->prepare('SELECT count(id) as count FROM membres WHERE id = :id');
$sqlcount->execute(array(':id' => $_GET['id']));  
$count = $sqlcount->fetch(PDO::FETCH_OBJ);

if ($count->count == 0) {

$nompage = 'Erreur';
$descpage = 'Ce membre n\'existe pas !';
include('header.php');
include('sidebar.php');

echo '<div id="content" class="float_r center"><h2>Erreur</h2><br />Ce membre n\'existe pas !';
}
else {

$sqlinfos = $db->prepare('SELECT pseudo, visites, niveau, date, statut, clics, euros, avatar FROM membres WHERE id = :id');
$sqlinfos->execute(array(':id' => $_GET['id']));  
$infos = $sqlinfos->fetch(PDO::FETCH_OBJ);

$infos->pseudo = htmlentities($infos->pseudo, ENT_QUOTES, 'UTF-8');

$sqlcounts = $db->prepare('SELECT COUNT(id) as count FROM sites WHERE membre = :id');
$sqlcounts->execute(array(':id' => $_GET['id']));
$counts = $sqlcounts->fetch(PDO::FETCH_OBJ);

$nompage = 'Profil de '.$infos->pseudo;
$descpage = 'Le profil du membre : '.$infos->pseudo;
include('header.php');
include('sidebar.php');

$sqlstatut = $db->prepare('SELECT titre FROM statuts WHERE id = :id');
$sqlstatut->execute(array(':id' => $infos->statut));
$statut = $sqlstatut->fetch(PDO::FETCH_OBJ);
$avatar = ($infos->avatar == '') ? '/theme/images/noavatar.png' : $infos->avatar;

echo '<div id="content" class="float_r"> <h2 class="center">Profil de '.$infos->pseudo.'</h2><br />
<section style="width:70%;margin:auto"><div class="topart"><h3>Informations</h3><div class="sidehead2"><div class="sidehead3"></div></div></div><div class="padding">
<div style="float:left;width:30%;text-align:center;margin-top:6%"><img src="'.$avatar.'" alt="avatar" style="border-radius:10%;max-width:60px" /></div>
<div style="float:left;width:70%"><div style="padding:4px;padding-left:10%">
┌Son Pseudo : '.$infos->pseudo.' <a href="/messagerie/index?page=envoyer&membre='.$_GET['id'].'" data-tips="Contacter ce Membre" class="bottom-tip" target="_blank"><img src="/theme/images/sendmail.png" class="vertical" width="16" height="16" alt="sendmail" /></a><br />├Son Statut : '.$statut->titre.'<br />├Insrit '.jour_date($infos->date) .'<br />
├Liens visités : '.$infos->visites.'<br />├Ses Euros : '.$infos->euros.' €<br />├Son niveau : '.$infos->niveau.'<br />├Ses clics effectués sur le PTC : '.$infos->clics.'<br />└Nombre de Liens : '.$counts->count.'</div></div><div style="clear:left"></div></div></section><br />
<form method="post" class="center" action="/compte/index?page=amis"><div class="center"><input type="hidden" name="membre" value="'.$_GET['id'].'" /><button class="btn" name="ajout" type="submit">Ajouter à mes amis</button></a> <button class="btn" onclick="history.back()" type="button">Retour</button></div></form>';
}
echo '</div>';
include('footer.php');
}
else header('Location: /404');
?>