Signaler

Erreur php [Résolu]

Posez votre question Talmidiel - Dernière réponse le 5 janv. 2017 à 16:32 par Talmidiel
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
Utile
+0
plus moins
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,
Donnez votre avis
Utile
+0
plus moins
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 ?
Pitet 2316Messages postés lundi 11 février 2013Date d'inscription 18 octobre 2017 Dernière intervention - 5 janv. 2017 à 15:59
Même message d'erreur : la variable $url_toplist n'est définie nulle part.
Répondre
Talmidiel- 5 janv. 2017 à 16:02
Donc je repare comme avant mais avec $url_toplist ?
Répondre
Pitet 2316Messages postés lundi 11 février 2013Date d'inscription 18 octobre 2017 Dernière intervention - 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;">
Répondre
Talmidiel- 5 janv. 2017 à 16:32
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
Répondre
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !