Erreur php

Résolu/Fermé
Talmidiel - 5 janv. 2017 à 14:38
 Talmidiel - 5 janv. 2017 à 16:32
Bonjour,

J'ai ce matin installé un module topsite sur mon site web mais j'ai quelques erreurs dont une qui m'embête énormément.

Lorsque l'on arrive sur ma page index (du topsite)

J'ai ses erreurs qui s'affiches

Notice: Undefined index: connecte in /public_html/autosurf/topsite/index.php on line 123

Et

Notice: Undefined index: connecte in /public_html/autosurf/topsite/index.php on line 135

Ca a l'air d'être les mêmes mais je n'arrive pas a les résoudres..

Je vous donne mon code

<?php
include('config.php');
function dehtml($html)
{
return htmlentities($html, ENT_QUOTES, 'utf-8');
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="<?php echo $design; ?>/style.css" rel="stylesheet" title="Style" />
<title>Top site</title>
</head>
<body>
<div class="header">
<a href="<?php echo $url_topsite; ?>"><img src=""quot;<?php echo $design; ?>/images/logo.png" alt="Top site" /></a>
</div>
<?php
//On verifie si ladministrateur a essaye de se connecter
if(isset($_POST['motdepasse']))
{
//On verifie si le mot de passe est bon
if(strtolower($_POST['motdepasse'])==strtolower($mot_de_passe))
{
echo '<div class="connection">Vous avez bien été connecté.</div>';
$_SESSION['connecte'] = true;
}
else
{
echo '<div class="connection">Le mot de passe que vous avez entré n\'est pas le bon.</div>';
}
}
//On affiche un lien dinscription et la top site
?>
<div class="new"><a href="nouveau.php" rel="nofollow noopener noreferrer" target="_blank">Ajoutez votre site à notre top site</a></div>
<table class="topsite" cellpadding="0" cellspacing="0">
<tr>
<th class="classement_th">Classement</th>
<th class="site_th">Site</th>
<th class="votes_th">Votes</th>
</tr>
<?php
//On recupere le nombre de sites
$req1 = mysql_fetch_array(mysql_query('select count(id) as nb from topsite where statut="ok"'));
//On recupere la page actuelle
if(isset($_GET['page']))
{
$page = intval($_GET['page']);
}
else
{
$page = 1;
}
//On calcule le nombre de pages et on affiche la site des pages
$nbpages = ceil($req1['nb']/$nb_site_page);
if($page<1 or $page>$nbpages)
{
$page = 1;
}
$pages_list = 'Pages: ';
if($page>1)
{
$pages_list .= '<a href="?page='.($page-1).'" rel="nofollow noopener noreferrer" target="_blank">Précédent</a> ';
}
for($i=1;$i<=$nbpages;$i++)
{
if($i==$page)
{
$pages_list .= '<strong>'.$i.'</strong> ';
}
else
{
$pages_list .= '<a href="?page='.$i.'" rel="nofollow noopener noreferrer" target="_blank">'.$i.'</a> ';
}
}
if($page<$nbpages)
{
$pages_list .= '<a href="?page='.($page+1).'" rel="nofollow noopener noreferrer" target="_blank">Suivant</a>';
}
?>
<tr>
<td colspan="3" class="pages"><?php echo $pages_list; ?></td>
</tr>
<?php
//on calcule la position premier a afficher
$premier_message = ($page-1)*$nb_site_page;
$i = $premier_message;
//On affiche les sites
$req2 = mysql_query('select id, url, nom, description, banniere, votes from topsite where statut="ok" order by votes desc limit '.$premier_message.','.$nb_site_page);
while($dnn2 = mysql_fetch_array($req2))
{
$i++;
?>
<tr>
<td class="classement"><?php echo $i; ?>
<?php
//On verifie si cest un administrateur
if($_SESSION['connecte']==true)
{
?>
<br /><a href="accepter_refuser.php?id=<?php echo $dnn2['id']; ?>&ch=s" style="font-size:16px;">Supprimer ce site</a>
<?php
}
?>
</td>
<td class="site"><a href="<?php echo dehtml($dnn2['url']); ?>" style="color:#0000ff;text-decoration:underline;font-weight:bold;"><?php echo dehtml($dnn2['nom']); ?></a><br />
<?php echo dehtml($dnn2['description']); ?><br />
<a href="<?php echo dehtml($dnn2['url']); ?>" style="color:#008000;"><?php echo dehtml($dnn2['url']); ?></a> - <a href="http://www.supportduweb.com/" rel="nofollow noopener noreferrer" target="_blank" title="PageRank google Top site top liste top list Générateurs gratuit outils et services pour webmasters compteurs tchatajax outils gratuits"><img src=""quot;http://images.supportduweb.com/prggl.gif?site=<?php echo urlencode($dnn2['url']); ?>&style=5" /></a>
<div style="text-align:center;"><a href="<?php echo dehtml($dnn2['url']); ?>"><img src=""quot;<?php echo dehtml($dnn2['banniere']); ?>" alt="<?php echo dehtml($dnn2['nom']); ?>" style="max-width:500px;max-height:200px;" /></a></div></td>
<td class="votes"><?php echo $dnn2['votes']; ?><br /><a href="vote.php?id=<?php echo $dnn2['id']; ?>">Voter</a></td>
</tr>
<?php
}
//On reaffiche la site des pages en bas
?>
<tr>
<td colspan="3" class="pages"><?php echo $pages_list; ?></td>
</tr>
</table>
<?php
//On verifie si cest un administrateur
if($_SESSION['connecte']==true)
{
//On affche un lien pour reinitialiser les votes
?>
<div style="text-align:right;margin-right:20px;"><a href="reinitialisation.php" rel="nofollow noopener noreferrer" target="_blank">Réinitialiser les votes</a></div>
<?php
}
//On reaffiche un lien dinscription
?>
<div class="new"><a href="nouveau.php" rel="nofollow noopener noreferrer" target="_blank">Ajoutez votre site à notre top site</a></div>
<?php
//On verifie si cest un administrateur
if($_SESSION['connecte']==true)
{
?>
<h1>Administration</h1>
<table class="topsite" cellpadding="0" cellspacing="0">
<tr>
<th class="site_th">Site</th>
<th class="votes_th">Votes</th>
<th class="accepter_refuser_th">Accepter/Refuser</th>
</tr>
<?php
//On affiche les sites qui nont pas encore ete valides
$i = false;
$req2 = mysql_query('select id, url, nom, description, banniere, votes from topsite where statut!="ok"');
while($dnn2 = mysql_fetch_array($req2))
{
$i = true;
?>
<tr>
<td class="site"><a href="<?php echo dehtml($dnn2['url']); ?>" style="color:#0000ff;text-decoration:underline;font-weight:bold;"><?php echo dehtml($dnn2['nom']); ?></a><br />
<?php echo dehtml($dnn2['description']); ?><br />
<a href="<?php echo dehtml($dnn2['url']); ?>" style="color:#008000;"><?php echo dehtml($dnn2['url']); ?></a> - <a href="http://www.supportduweb.com/" rel="nofollow noopener noreferrer" target="_blank" title="PageRank google Top site top liste top list Générateurs gratuit outils et services pour webmasters compteurs tchatajax outils gratuits"><img src=""quot;http://images.supportduweb.com/prggl.gif?site=<?php echo urlencode($dnn2['url']); ?>&style=5" /></a>
<div style="text-align:center;"><a href="<?php echo dehtml($dnn2['url']); ?>"><img src=""quot;<?php echo dehtml($dnn2['banniere']); ?>" alt="<?php echo dehtml($dnn2['nom']); ?>" style="max-width:500px;max-height:200px;" /></a></div></td>
<td class="votes"><?php echo $dnn2['votes']; ?><br /><a href="vote.php?id=<?php echo $dnn2['id']; ?>">Voter</a></td>
<td class="accepter_refuser"><a href="accepter_refuser.php?id=<?php echo $dnn2['id']; ?>&ch=a">Accepter</a><br /><a href="accepter_refuser.php?id=<?php echo $dnn2['id']; ?>&ch=r">Refuser</a></td>
</tr>
<?php
}
if(!$i)
{
?>
<tr>
<td colspan="3">Il n'y a aucun site en attente de validation.</td>
</tr>
<?php
}
?>
</table>
<?php
}
else
{
//Si ladmnistrateur nest pas connecte, on affiche un formulaire
?>
<a href="#null" rel="nofollow noopener noreferrer" target="_blank" onclick="document.getElementById('administration').style.display='block';">Administration</a>
<form action="<?php echo $url_toplist; ?>" method="post" id="administration" style="display:none;">
<label for="motdepasse">Mot de passe</label><input type="password" name="motdepasse" id="motdepasse" /><input type="submit" value="Connection" />
</form>
<?php
}
?>
<div class="foot">
<a href="http://www.supportduweb.com/" rel="nofollow noopener noreferrer" target="_blank">Support du Web</a>
</div>
</body>
</html>



Voilà, j'espère que quel saura m'aider car ca m'agace beaucoup

2 réponses

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
5 janv. 2017 à 15:39
Salut,

L'erreur vient du fait que tu vérifies si la variable $_SESSION['connecte'] vaut true alors que cette variable n'est pas déclarée/initialisée.

Il faut donc vérifier que cette variable existe avec la fonction php isSet avant de vérifier sa valeur.
Au passage, la condition
if ($_SESSION['connecte'] == true)
est équivalent à la condition
if ($_SESSION['connecte'])
.

On peut donc corriger ces lignes en remplaçant la condition actuelle par :
//On verifie si cest un administrateur
if (isset($_SESSION['connecte']) && $_SESSION['connecte'])


Bonne journée,
0
Merci ca marche

J'ai un autre problème :

Quand je me connecte :

Si le mot de passe et erroné il me redirige a : http://master-surf.com/topsite/<br%20/><b>Notice</b>:%20%20Undefined%20variable:%20url_toplist%20in%20<b>/public_html/autosurf/topsite/index.php</b>%20on%20line%20<b>180</b><br%20/>

Et si le mot de passe est bon :
http://master-surf.com/topsite/<br%20/><b>Notice</b>:%20%20Undefined%20variable:%20url_toplist%20in%20<b>/public_html/autosurf/topsite/index.php</b>%20on%20line%20<b>180</b><br%20/>

Vous savez d'ou ca vient ?
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
5 janv. 2017 à 15:59
Même message d'erreur : la variable $url_toplist n'est définie nulle part.
0
Donc je repare comme avant mais avec $url_toplist ?
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
5 janv. 2017 à 16:26
Pas exactement.

La variable de session est initialisée que lorsque le mot de passe saisie est correct mais il est normal que celle-ci ne soit pas définie si le mot de passe est faux, nous sommes donc obliger de vérifier son existence avec isset car il est légitime que cette variable puisse ne pas être initialisée.

Au contraire la variable $url_toplist qui contient le chemin vers le fichier de traitement du formulaire (attribut action) devrait toujours être initialisée puisque le formulaire et donc cette variable sont toujours affichées.

Néanmoins cette variable semble n'être utilisée à aucun autre endroit que dans l'affichage de l'attribut action. Si c'est le cas et que le chemin vers le fichier de traitement du formulaire est toujours le même, l'utilisation d'une variable est inutile et tu peux saisir directement le chemin vers le fichier de traitement du formulaire dans l'attribut action.

Enfin, puisque le formulaire semble simplement pointer sur la même page, tu peux laisser l'attribut action vide ce qui corrige ton erreur en supprimant l'utilisation de la variable :
<form action="" method="post" id="administration" style="display:none;">
0
En fin de compte j'ai fait plus simple

J'ai remplacé le $url_toplist par $urltopsite

Ca marche nickel
Merci pour votre aide ja passe en résolu

Bonne journée
0