Accueil > Forum > > > > Bug incompréhensible
Bug incompréhensible
mardi 9 août 2011 à 23:53:43 |
Bug incompréhensible

Satir34
|
Bonjour à tous,
Voilà, j'aide un ami avec son code, mais il y a un bug que je n'arrive pas à corriger, donc si vous pouviez m'aider svp :
Code:
Code PHP : <?php
/////////////////////////////////////////////////////////////////////////////////////
// By extaz //
/////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
// Début de la configuration //
/////////////////////////////////////////////////////////////////////////////////////
// Si vous utilisez un fichier externe pour la connexion MySQL, spécifiez-le ici
// sinon commentez cette ligne en mettant // devant le require :
//require('/lib/mysql.php'); // attention à l'URL relative
// Si vous préférez spécifier ici vos identifiants MySQL, spécifiez-les ci-dessous
// sinon (cas de l'utilisation d'un fichier) commentez chacun d'eux :
$dbhost = 'mon_hote';
$dbuname = 'nom';
$dbpass = 'mdp';
$dbname = 'nom';
// Identifiants de connexion à l'administration :
define('TIP_ADMIN_LOGIN','ID');
define('TIP_ADMIN_PWD','mdp');
// si votre site a déjà un session start, vous pouvez commenter celui-ci et mettre 0 à la destruction de session
session_start();
$detruire_session = 0;
/////////////////////////////////////////////////////////////////////////////////////
// Fin de la configuration //
/////////////////////////////////////////////////////////////////////////////////////
$tip_is_admin = true;
$get_act = (isset($_GET['act'])) ? $_GET['act'] : '';
$array_acts = array('admin', 'lock', 'blacklist', 'whitelist', 'config', 'connect', 'logout');
if (!in_array($get_act, $array_acts)) { $get_act = ''; $tip_is_admin = false; }
if ((in_array($get_act, array('admin', 'lock', 'blacklist', 'whitelist', 'config'))) && ((!isset($_SESSION['tip_login'])) || ($_SESSION['tip_login'] == '')))
$get_act = 'connect';
//echo '<pre>'; print_r($_SESSION); echo '</pre>';
// visitor general data
$Vcpt = 0;
$Vdate = date('Y-m-d H:i:s');
$Vdatetime = time(); // timestamp
$array_server_values = $_SERVER;
$Vua = $array_server_values['HTTP_USER_AGENT'];
$Vip = $array_server_values['REMOTE_ADDR'];
$VinList = ''; // default : no list (neither black, nor white)
$VisLocked = 0;
$html = '';
$dbic = mysql_connect($dbhost,$dbuname,$dbpass);
if ($dbic === FALSE)
error_reporting(0);
echo("Site en maintenance veuillez rejoindre le forum pour plus d'info");
mysql_select_db($dbname);
function MyQuery($query, $line)
{
//echo '<pre>'; print_r($query); echo '</pre>';
$dataset = mysql_query($query);
if ($dataset !== false)
return $dataset;
else
{
die('Erreur : [ligne '.$line.'] '.$query.'<br /><br />'.mysql_error());
};
};
function TipMailAlert($mailtype)
{
global $Vip, $Vdate, $array_server_values;
if ($mailtype == 'blacklist')
$tip_subject = '[IP bloquée par liste] '.$Vip.' - '.$Vdate . "\r\n";
else
$tip_subject = '[IP Interdite] '.$Vip.' - '.$Vdate . "\r\n";
// Generate the alert mail
$tip_headers = 'From: TraceIP v2 <'.TIP_MAIL_FROM.'>' . "\r\n";
$tip_body = 'Variables serveur envoyées :'."\n";
foreach($array_server_values as $key => $val)
$tip_body .= ' '.$key.' => '.$val."\n";
$tip_body = addslashes($tip_body);
eval("\$tip_body = \"$tip_body\";");
$tip_body = stripslashes($tip_body);
$tip_body .= "\n\nAccéder à l'administration des IP : ".TIP_ADMIN;
// Send the mail
mail(TIP_MAIL_TO, $tip_subject, $tip_body, $tip_headers);
//echo '<pre>'; print_r($tip_subject); echo '</pre>';
//echo '<pre>'; print_r($tip_body); echo '</pre>';
};
function TipRedirect($destination)
{
$html = '<p style="text-align:center;"><a href="'.$destination.'">Redirection en cours ...</a><script type="text/javascript">';
$html .= " window.setTimeout(\"location=('".html_entity_decode($destination)."');\",3000)";
$html .= '</script></p>';
return $html;
};
function TipDisplayPages($nb_pages, $current_page, $redirect_uri)
{
$html = '';
if ($nb_pages > 1)
{
$html .= '<div class="multipages" style="text-align:right; padding-right:1em; margin:1em auto;">';
// away from page 1 ?
if ($current_page != 1)
$html .= '<a href="'.$redirect_uri.'&p='.($current_page-1).'" title="Précédente">«</a> | ';
// list all pages
for($a = 1; $a <= $nb_pages; $a++)
{
if ($a == $current_page)
$html .= '<span>'.$a.'</span> | '.CR;
else
$html .= '<a href="'.$redirect_uri.'&p='.$a.'">'.$a.'</a> | ';
};
// away from last page ?
if ($current_page != $nb_pages)
$html .= '<a href="'.$redirect_uri.'&p='.($current_page+1).$anchor.'" title="Suivante">»</a>';
$html .= '</div>';
};
return $html;
};
// read config
$tip_query = sprintf("SELECT var, val FROM traceip_cfg;");
$tip_ds_config = MyQuery($tip_query, __LINE__);
while ($tip_cfg = mysql_fetch_assoc($tip_ds_config))
{
define(strtoupper($tip_cfg['var']), $tip_cfg['val']);
};
unset($tip_cfg);
unset($tip_ds_config);
// clean up old IP not banned (that means IP older than 60 sec from this moment)
$tip_date_limit = date('Y-m-d H:i:s', time() - 60);
$tip_query = sprintf("DELETE FROM traceip_online WHERE (is_locked='%d' AND date_time < '%s');", 0, $tip_date_limit);
MyQuery($tip_query, __LINE__);
/* ************************************************************************
* DEFAULT (visitor count)
* ********************************************************************** */
if ($get_act == '')
{
// look if visitor is already banned or in (black|white)list
// look into (black|white)list
$tip_query = sprintf("SELECT list_type FROM traceip_lists WHERE (ip='%s');", $Vip);
$tip_ds_blacklist = MyQuery($tip_query, __LINE__);
if (mysql_num_rows($tip_ds_blacklist) == 1) // in black or white list
{
$tip_row = mysql_fetch_assoc($tip_ds_blacklist);
$VinList = $tip_row['list_type']; // blacklist || whitelist
};
unset($tip_ds_blacklist);
unset($tip_row);
// look if visitor is in the online visitor's list
$tip_query = sprintf("SELECT ip, date_time, cpt, is_locked FROM traceip_online WHERE (ip = '%s');", $Vip);
$tip_ds_ip = MyQuery($tip_query, __LINE__);
if (mysql_num_rows($tip_ds_ip) == 0) // visitor is NOT in the online list
{
$is_locked = 0;
// option 1 : if blacklist, add it & ban it
if ($VinList == 'blacklist')
{
$Vcpt = TIP_MAX_PAGE_COUNT +1;
$is_locked = 1;
// send alert mail
TipMailAlert('blacklist');
};
// option 2 : if not in white list, add it
if ($VinList == '')
{
$Vcpt += 1;
$is_locked = 0;
};
$tip_query = sprintf("INSERT INTO traceip_online (ua, ip, date_time, cpt, is_locked) VALUES('%s', '%s', '%s', '%d', '%d');", addslashes($Vua), $Vip, date('Y-m-d H:i:s'), $Vcpt, $is_locked);
MyQuery($tip_query, __LINE__);
}
else // visitor is already in the online list
{
$tip_row = mysql_fetch_assoc($tip_ds_ip);
//print_r($tip_row);
$Vcpt = intval($tip_row['cpt']);
$VisLocked = intval($tip_row['is_locked']);
// process next only if not in whitelist
if ($VinList != 'whitelist')
{
if ($VisLocked == 1)
exit(TIP_MSG_BAN); // bye bye
// option 1 : if blacklist, ban it
if ($VinList == 'blacklist')
{
$Vcpt = TIP_MAX_PAGE_COUNT +1; // erase value
$is_locked = 1;
$tip_query = sprintf("UPDATE traceip_online SET cpt='%d', is_locked='%d' WHERE ip='%s';", $Vcpt, $is_locked, $Vip);
};
// option 2 : if not in white list, upgrade counter. If necessary, lock it
if ($VinList == '')
{
$Vcpt += 1;
$is_locked = ($Vcpt >= TIP_MAX_PAGE_COUNT) ? 1 : 0;
$tip_query = sprintf("UPDATE traceip_online SET cpt=(cpt+1), is_locked='%d' WHERE ip='%s';", $is_locked, $Vip);
if ($is_locked == 1) // send alert mail
TipMailAlert('ban');
};
MyQuery($tip_query, __LINE__);
}; // end of if ($VinList != 'whitelist')
}; // end of if (mysql_num_rows($tip_ds_ip) == 0)
}; // end of if ($get_act == '')
/* ************************************************************************
* Connection
* ********************************************************************** */
if ($get_act == 'connect')
{
if (!isset($_POST['tip_submit']))
{
$html .= '<h2>Connexion Administration TraceIP v2</h2>'."\n";
$html .= '<form id="cnx" method="post" action="?act=connect">'."\n";
$html .= ' <p><label for="login">Login :</label><input type="text" id="login" name="login" /></p>'."\n";
$html .= ' <p><label for="pwd">Mot de passe :</label><input type="password" id="pwd" name="pwd" /></p>'."\n";
$html .= ' <p style="text-align:center;"><input type="submit" name="tip_submit" value="Connexion" /></p>'."\n";
$html .= '</form>'."\n";
}
else
{
$login = (isset($_POST['login'])) ? trim($_POST['login']) : '';
$pwd = (isset($_POST['pwd'])) ? trim($_POST['pwd']) : '';
if (($login === TIP_ADMIN_LOGIN) && ($pwd === TIP_ADMIN_PWD))
{
$_SESSION['tip_login'] = $login;
$html .= TipRedirect('?act=admin');
}
else
{
$html .= '<p>Erreur dans les identifiants de connexion.</p>'."\n";
};
};
}; // end of if ($get_act == 'connect')
/* ************************************************************************
* Logout
* ********************************************************************** */
if ($get_act == 'logout')
{
unset($_SESSION['tip_login']);
if ($detruire_session == 1)
{
$_SESSION = array();
session_destroy();
};
$html .= TipRedirect('?');
};
/* ************************************************************************
* ADMIN
* ********************************************************************** */
if ($get_act == 'admin')
{
$get_page = (isset($_GET['p'])) ? abs(intval($_GET['p'])) : 1; if ($get_page == 0) { $get_page = 1; }
$get_id = (isset($_GET['id'])) ? abs(intval($_GET['id'])) : 0;
if ($get_id != 0)
{
$tip_query = sprintf("DELETE FROM traceip_online WHERE id='%d';", $get_id);
MyQuery($tip_query, __LINE__);
$html .= '<p><strong>Suppression de l\'IP effectuée.</strong></p>';
};
$tip_query = sprintf("SELECT COUNT(id) AS num_ip FROM traceip_online;");
$tip_ds = MyQuery($tip_query, __LINE__);
$tip_row = mysql_fetch_assoc($tip_ds);
$num_pages = ceil($tip_row['num_ip'] / TIP_NUM_ROWS_PER_PAGE);
$firstRow = ($get_page -1) * TIP_NUM_ROWS_PER_PAGE;
$lastRow = TIP_NUM_ROWS_PER_PAGE;
$redirect_uri = '?act='.$get_act;
if ($tip_row['num_ip'] == 0)
{
$html .= '<p><strong>Aucune adresse IP n\'est listée.</strong></p>';
}
else
{
$tip_query = sprintf("SELECT id, ua, ip, date_time, cpt, is_locked FROM traceip_online ORDER BY date_time DESC LIMIT %d,%d;", $firstRow, $lastRow);
$tip_ds = MyQuery($tip_query, __LINE__);
$html .= TipDisplayPages($num_pages, $get_page, $redirect_uri);
$html .= '
<table border="1" cellpadding="3" cellspacing="0" summary="" width="100%">
<thead>
<tr>
<th>ID</th>
<th>Agent Utilisateur</th>
<th>Adresse IP</th>
<th>Date</th>
<th>Compteur pages</th>
<th>Bloquée ?</th>
<th>Opérations</th>
</tr>
</thead>
<tbody>';
while($tip_dr = mysql_fetch_assoc($tip_ds))
{
// prepare operations
$add_to_whitelist = '<a href="?act=whitelist&do=add&ip='.$tip_dr['ip'].'" title="Ajouter à la liste blanche">+WhiteList</a> ';
$add_to_blacklist = '<a href="?act=blacklist&do=add&ip='.$tip_dr['ip'].'" title="Ajouter à la liste noire">+BlackList</a> ';
$del = '<a href="?act=admin&id='.$tip_dr['id'].'" title="Supprimer cette entrée">Suppr</a> ';
$lock = '<a href="?act=lock&id='.$tip_dr['id'].'&lock=1" title="Verrouiller cette IP">Lock</a> ';
$unlock = '<a href="?act=lock&id='.$tip_dr['id'].'&lock=0" title="Déverrouiller cette IP">Unlock</a> ';
$ops = $add_to_whitelist.$add_to_blacklist.$del.$lock.$unlock;
$is_locked = ($tip_dr['is_locked'] == 1) ? 'X' : ' ';
$html .= '
<tr>
<td>'.$tip_dr['id'].'</td>
<td>'.$tip_dr['ua'].'</td>
<td>'.$tip_dr['ip'].'</td>
<td>'.$tip_dr['date_time'].'</td>
<td style="text-align:center;">'.$tip_dr['cpt'].'</td>
<td style="text-align:center;">'.$is_locked.'</td>
<td>'.$ops.'</td>
</tr>';
};
$html .= '
</tbody>
</table>';
$html .= TipDisplayPages($num_pages, $get_page, $redirect_uri);
}; // end of if ($tip_row['num_ip'] == 0)
}; // end of if ($get_act == 'admin')
/* ************************************************************************
* Lock / Unlock
* ********************************************************************** */
if ($get_act == 'lock')
{
$get_lock = (isset($_GET['lock'])) ? abs(intval($_GET['lock'])) : 1; // 0 unlock, 1 lock
$get_id = (isset($_GET['id'])) ? abs(intval($_GET['id'])) : 0;
if ($get_id != 0)
{
$tip_query = sprintf("UPDATE traceip_online SET is_locked='%d' WHERE id='%d';", $get_lock, $get_id);
MyQuery($tip_query, __LINE__);
if ($get_lock == 0)
$html .= '<p><strong>Déverrouillage effectué.</strong></p>';
else
$html .= '<p><strong>Verrouillage effectué.</strong></p>';
};
$html .= TipRedirect('?act=admin');
}; // end of if ($get_act == 'lock')
/* ************************************************************************
* Blacklist / Whitelist
* ********************************************************************** */
if (($get_act == 'blacklist') || ($get_act == 'whitelist'))
{
$get_ip = (isset($_GET['ip'])) ? trim($_GET['ip']) : '';
$get_do = (isset($_GET['do'])) ? trim($_GET['do']) : '';
$get_page = (isset($_GET['p'])) ? abs(intval($_GET['p'])) : 1; if ($get_page == 0) { $get_page = 1; }
if ($get_ip != '')
{
if ($get_do == 'add')
$tip_query = sprintf("INSERT INTO traceip_lists (ip, date_time, list_type) VALUES ('%s', '%s', '%s');", $get_ip, date('Y-m-d H:i:s'), $get_act);
else
$tip_query = sprintf("DELETE FROM traceip_lists WHERE (list_type='%s' AND ip='%s');", $get_act, $get_ip);
MyQuery($tip_query, __LINE__);
$do_array = array('add' => 'ajoutée à', 'del' => 'supprimée de');
if ($get_act == 'blacklist')
$html .= '<p><strong>IP '.$do_array[$get_do].' la liste noire</strong></p>';
else
$html .= '<p><strong>IP '.$do_array[$get_do].' la liste blanche.</strong></p>';
$html .= TipRedirect('?act='.$get_act);
}
else // manage list
{
$html .= '<h2>Les adresses IP en liste ';
$html .= ($get_act == 'blacklist') ? 'noire' : 'blanche';
$html .= '</h2>';
if (isset($_POST['tip_submit']))
{
$post_new_ip = (isset($_POST['tip_add_ip'])) ? trim($_POST['tip_add_ip']) : '';
$array_new_ip = explode("\n", $post_new_ip);
foreach($array_new_ip as $new_ip)
{
$new_ip = trim($new_ip);
if ($new_ip != '')
{
$tip_query = sprintf("INSERT IGNORE INTO traceip_lists (ip, date_time, list_type) VALUES ('%s', '%s', '%s')", $new_ip, date('Y-m-d H:i:s'), $get_act);
MyQuery($tip_query, __LINE__);
};
};
$html .= '<p><strong>Nouvelle(s) adresse(s) IP ajoutée(s).</strong></p>';
$html .= TipRedirect('?act='.$get_act);
};
if (!isset($_POST['tip_submit']))
{
$html .= '<p><a href="#" onclick="if(document.getElementById(\'tip_upd_list\').style.display==\'none\'){ document.getElementById(\'tip_upd_list\').style.display=\'\'; } else { document.getElementById(\'tip_upd_list\').style.display=\'none\'; }">Ajouter une/des IP à la liste</a></p>
<form id="tip_upd_list" method="post" action="?act='.$get_act.'">
<p><label for="tip_add_ip">Ajouter IP (1/ligne) :</label><textarea cols="48" rows="8" id="tip_add_ip" name="tip_add_ip"></textarea></p>
<p style="text-align:center;"><input type="submit" name="tip_submit" value="Ajouter" /></p>
</form><script type="text/javascript">document.getElementById(\'tip_upd_list\').style.display="none";</script>';
$tip_query = sprintf("SELECT COUNT(ip) AS num_ip FROM traceip_lists WHERE list_type='%s';", $get_act);
$tip_ds = MyQuery($tip_query, __LINE__);
$tip_temp = mysql_fetch_assoc($tip_ds);
$num_ip_list = $tip_temp['num_ip'];
unset($tip_ds); unset($tip_temp);
if ($num_ip_list == 0)
$html .= '<p><strong>Aucune IP dans cette liste.</strong></p>';
else
{
$num_pages = ceil($num_ip_list / TIP_NUM_ROWS_PER_PAGE);
$firstRow = ($get_page -1) * TIP_NUM_ROWS_PER_PAGE;
$lastRow = TIP_NUM_ROWS_PER_PAGE;
$redirect_uri = '?act='.$get_act;
// extract IP from DB
$tip_query = sprintf("SELECT id, ip, date_time FROM traceip_lists WHERE list_type='%s' ORDER BY ip ASC LIMIT %d,%d;", $get_act, $firstRow, $lastRow);
$tip_ds = MyQuery($tip_query, __LINE__);
$html .= TipDisplayPages($num_pages, $get_page, $redirect_uri);
$html .= '
<table border="1" cellpadding="3" cellspacing="0" summary="" width="100%">
<thead>
<tr>
<th>ID</th>
<th>Adresse IP</th>
<th>Date d\'ajout à la liste</th>
<th>Opérations</th>
</tr>
</thead>
<tbody>';
while($tip_dr = mysql_fetch_assoc($tip_ds))
{
// prepare operations
$add_to_whitelist = '<a href="?act=whitelist&do=add&ip='.$tip_dr['ip'].'" title="Ajouter à la liste blanche">+WhiteList</a> ';
$add_to_blacklist = '<a href="?act=blacklist&do=add&ip='.$tip_dr['ip'].'" title="Ajouter à la liste noire">+BlackList</a> ';
$del_from_whitelist = '<a href="?act=whitelist&do=del&ip='.$tip_dr['ip'].'" title="Supprimer de la liste blanche">-WhiteList</a> ';
$del_from_blacklist = '<a href="?act=blacklist&do=del&ip='.$tip_dr['ip'].'" title="Supprimer de la liste noire">-BlackList</a> ';
if ($get_act == 'whitelist')
$ops = $add_to_blacklist.$del_from_whitelist;
else
$ops = $add_to_whitelist.$del_from_blacklist;
$html .= '
<tr>
<td>'.$tip_dr['id'].'</td>
<td>'.$tip_dr['ip'].'</td>
<td>'.$tip_dr['date_time'].'</td>
<td>'.$ops.'</td>
</tr>';
};
$html .= '
</tbody>
</table>';
$html .= TipDisplayPages($num_pages, $get_page, $redirect_uri);
};
};
}; // end of if ($get_ip != '')
}; // end of if (($get_act == 'blacklist') || ($get_act == 'whitelist'))
/* ************************************************************************
* Config
* ********************************************************************** */
if ($get_act == 'config')
{
if (isset($_POST['tip_submit']))
{
$TIP_NUM_ROWS_PER_PAGE = (isset($_POST['TIP_NUM_ROWS_PER_PAGE'])) ? abs(intval($_POST['TIP_NUM_ROWS_PER_PAGE'])) : 25;
$TIP_MAX_PAGE_COUNT = (isset($_POST['TIP_MAX_PAGE_COUNT'])) ? abs(intval($_POST['TIP_MAX_PAGE_COUNT'])) : 25;
$TIP_MAIL_TO = (isset($_POST['TIP_MAIL_TO'])) ? $_POST['TIP_MAIL_TO'] : 'vous@votrefournisseur.tld';
$TIP_MAIL_FROM = (isset($_POST['TIP_MAIL_FROM'])) ? $_POST['TIP_MAIL_FROM'] : 'peuimporte@votrefournisseur.tld';
$TIP_ADMIN = (isset($_POST['TIP_ADMIN'])) ? $_POST['TIP_ADMIN'] : $_SERVER['HTTP_REFERER'];
$TIP_MSG_BAN = (isset($_POST['TIP_MSG_BAN'])) ? $_POST['TIP_MSG_BAN'] : '<b>IP interdite pour abus !</b>';
// now update DB
$tip_query = sprintf("UPDATE traceip_cfg SET val='%s' WHERE var='%s';", $TIP_NUM_ROWS_PER_PAGE, 'TIP_NUM_ROWS_PER_PAGE');
MyQuery($tip_query, __LINE__);
$tip_query = sprintf("UPDATE traceip_cfg SET val='%s' WHERE var='%s';", $TIP_MAX_PAGE_COUNT, 'TIP_MAX_PAGE_COUNT');
MyQuery($tip_query, __LINE__);
$tip_query = sprintf("UPDATE traceip_cfg SET val='%s' WHERE var='%s';", $TIP_MAIL_TO, 'TIP_MAIL_TO');
MyQuery($tip_query, __LINE__);
$tip_query = sprintf("UPDATE traceip_cfg SET val='%s' WHERE var='%s';", $TIP_MAIL_FROM, 'TIP_MAIL_FROM');
MyQuery($tip_query, __LINE__);
$tip_query = sprintf("UPDATE traceip_cfg SET val='%s' WHERE var='%s';", $TIP_ADMIN, 'TIP_ADMIN');
MyQuery($tip_query, __LINE__);
$tip_query = sprintf("UPDATE traceip_cfg SET val='%s' WHERE var='%s';", $TIP_MSG_BAN, 'TIP_MSG_BAN');
MyQuery($tip_query, __LINE__);
$html .= '<p><strong>Configuration de TraceIP v2 mise à jour !</strong></p>';
$html .= TipRedirect('?act='.$get_act);
};
if (!isset($_POST['tip_submit']))
{
$html .= '<form id="tip_upd_config" method="post" action="?act=config">'."\n";
$html .= ' <p><label for="TIP_NUM_ROWS_PER_PAGE">Nombre lignes par page admin :</label><input type="text" id="TIP_NUM_ROWS_PER_PAGE" name="TIP_NUM_ROWS_PER_PAGE" value="'.TIP_NUM_ROWS_PER_PAGE.'" /></p>'."\n";
$html .= ' <p><label for="TIP_MAX_PAGE_COUNT">Nombre max. pages par minute :</label><input type="text" id="TIP_MAX_PAGE_COUNT" name="TIP_MAX_PAGE_COUNT" value="'.TIP_MAX_PAGE_COUNT.'" /></p>'."\n";
$html .= ' <p><label for="TIP_MAIL_TO">Destinataire du mail d\'alerte :</label><input type="text" id="TIP_MAIL_TO" name="TIP_MAIL_TO" value="'.TIP_MAIL_TO.'" /></p>'."\n";
$html .= ' <p><label for="TIP_MAIL_FROM">Expéditeur du mail d\'alerte :</label><input type="text" id="TIP_MAIL_FROM" name="TIP_MAIL_FROM" value="'.TIP_MAIL_FROM.'" /></p>'."\n";
$html .= ' <p><label for="TIP_ADMIN">URL de la section admin :</label><input type="text" id="TIP_ADMIN" name="TIP_ADMIN" value="'.TIP_ADMIN.'" /></p>'."\n";
$html .= ' <p><label for="TIP_MSG_BAN">Texte renvoyé aux IP bannies (HTML autorisé) :</label><textarea id="TIP_MSG_BAN" name="TIP_MSG_BAN" cols="30" rows="8">'.TIP_MSG_BAN.'</textarea></p>'."\n";
$html .= ' <p style="text-align:center;"><input type="submit" name="tip_submit" value="Mettre à jour" /></p>'."\n";
$html .= '</form>'."\n";
}
}; // end of if ($get_act == 'config')
if ($tip_is_admin === true)
{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr">
<head>
<title>Anti ddos - Gestion du bannissement d\'IP</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />
<style type="text/css">
body
{
margin:10px 0;
padding:0;
text-align:center;
font:0.8em "Trebuchet MS", helvetica, sans-serif;
background:#dea;
}
label
{
float:left;
width:30%;
text-align:right;
padding-right:10px;
}
input
{
width:50%;
}
div#conteneur
{
width:770px;
margin:0 auto;
text-align:left;
border:2px solid #ab4;
background:#fff;
padding:2em;
}
h1
{
text-align:center;
font-size:1.4em;
color:#090 ;
}
h2
{
padding-left:25px;
line-height:25px;
font-size:1.4em;
color:#9b2 ;
border-bottom:1px solid #9b2;
}
h3
{
margin-left:15px;
padding-left:5px;
border-bottom:1px solid #9b2;
border-left:3px solid #9b2;
color:#9b2;
}
p
{
text-align:justify;
text-indent:2em;
line-height:1.7em;
}
a
{
color:#8a0;
}
a:hover
{
color:#9b2;
}
th
{
text-align:center;
}
</style>
</head>
<body>
<div id="conteneur">
<h1>TraceIP v3</h1>
<p style="text-align:center;"><a href="?act=admin">Administration générale</a> | <a href="?act=whitelist">Gérer liste blanche</a> | <a href="?act=blacklist">Gérer liste noire</a> | <a href="?act=config">Configuration</a> | <a href="?act=logout">Déconnexion</a></p>
<?php
echo $html;
?>
<div style="text-align:right; margin-top:2em;"><a href="http://fearty-online.fr">http://fearty-online.fr</a> - <a href="http://fearty-online.fr"></a></div>
</div>
</body>
</html>
<?php
}; // end of if ($tip_is_admin === true)
?>
Donc le problème viens de la ligne :
-$tip_query = sprintf("DELETE FROM traceip_online WHERE (is_locked='%d' AND date_time < '%s');", 0, $tip_date_limit);
-$tip_query = sprintf("SELECT var, val FROM traceip_cfg;");
-$tip_query = sprintf("SELECT list_type FROM traceip_lists WHERE (ip='%s');", $Vip);
L'erreur affiché dit : [ERREUR] à la ligne XXX database not find.
D'après le code c'est une table qui manque, on a beau l'avoir créé rien ne change à l'erreur.
|
|
mercredi 10 août 2011 à 03:37:08 |
Re : Bug incompréhensible

phpAnonyme
|
j'aide un ami avec son code
- Tu dois lui conseillé de mieux structurer et fragmenter son code
- Tu dois lui conseillé de supprimer tous les points-virgules après les accolades de fermetures, c'est horrible !
Rien que ça, ça serait un bon début !
Après concernant le problème en lui même pas étonnant que vous ayez du mal à trouver la provenance de l'erreur. Ca rejoint ce que j'ai dit plus haut. L'erreur est sans doute anodine mais franchement, ça donne pas envie (personnellement)...
______________________________________________________________________
|
|
mercredi 10 août 2011 à 08:02:13 |
Re : Bug incompréhensible

kohntark
|
Salut,
Mêmes commentaires que PhpAnonyme, ça ne donne pas très envie.
Plutôt que de fournir les 650 lignes de ton script fournis l'essentiel et précise clairement le pb.
L'erreur affiché dit : [ERREUR] à la ligne XXX database not find.
Quelle est cette ligne XXX ? Au dessus tu indiques 3 lignes différentes.
Quelle est la fonction chargée de l'affichage de l'erreur ?
D'après le code c'est une table qui manque
D'après l'erreur c'est la base de données qui n'est pas trouvée.
D'ailleurs tu ne contrôles pas ton mysql_select_db()
Et puis quand on galère le premier réflexe à avoir est d'afficher toutes les erreurs => supprime, le temps du débogage, ton error_reporting(0)
Cordialement,
Kohntark -
|
|
mercredi 10 août 2011 à 09:01:07 |
Re : Bug incompréhensible

cod57
|
bonjour
ligne 156 environ
http://php.net/manual/fr/function.sprintf.php
? les arguments args.
$tip_query = sprintf("SELECT var, val FROM traceip_cfg;");
 Bonne programmation !
|
|
mercredi 10 août 2011 à 14:11:36 |
Re : Bug incompréhensible

Satir34
|
Merci cod57, j'essaye avec ton lien, et Kohntark + phpAnonyme, je sais bien comment il est mal foutu le code, je l'ai devant les yeux, je comprends que ça ne donne pas envie de le lire, pour aider au débogage, mais si vous n'en avez pas envie, pourquoi vous postez des réponses? Elles sont totalement inutiles, le script n'est pas de moi, je ne compte pas le modifier, juste le déboguer, donc ce n'est pas mon histoire si le code est moche, mal écrit, etc... Donc aucune utilité à vos messages.
|
|
mercredi 10 août 2011 à 23:07:09 |
Re : Bug incompréhensible

phpAnonyme
|
Pour ma part,effectivement je ne compte pas aider au débogage dans ce cas présent;
Mais dans l'ensemble, nous avons quand même au moins fournis des conseils fort utile; après si je dois répondre attaque par attaque je te dirai que je ne fais pas d'assistanat on me paye pas ici pour aider. Si je le fais c'est à mon bon vouloir... Il y a un vrai bordel dans ce code et je n'ai pas envie de...perdre mes yeux !
Par ailleurs, pourquoi c'est toi qui formule la demande d'aide ?? Ton pote ne sais pas s'exprimer ?
Notons que toi même tu t'y perds... Arf mais c'est vrai...le faite que se soit mal coder tu t'en moques, la résultante étant que tu ne peux le dépanner.
(Mes propos n'engage que moi)
______________________________________________________________________
|
|
jeudi 11 août 2011 à 08:21:17 |
Re : Bug incompréhensible

kohntark
|
 y a des fois où je crois rêver.
Le monsieur se pointe pour la toute première fois ici, balance ces 650 lignes de code (trop fatiguant de supprimer les lignes superflues), n'est pas du tout précis quant au problème rencontré (ligne de l'erreur imprécise, texte de l'erreur non générée par le code fourni, ...).
Des éléments primordiaux lui sont apportés et des compléments d'information demandés.
Plutôt que d'en tenir compte et d'avoir l'amabilité de fournir les éléments nécessaires à l'aide le monsieur ... s'en fout.
Qu'est ce que tu viens faire ici au juste si ce code n'est "pas ton histoire" et que tu ne "comptes pas le modifier" ?
Tu as cru que CS était une machine à faire le boulot des autres ?
... tu t'es trompé.
J'espère que les intervenants réguliers jugeront comme il se doit ce type de mentalité et réagiront en conséquence.
Inutile de dire que j'adhère à 100% avec les propos de PhpAnonyme
Kohntark -
|
|
jeudi 11 août 2011 à 21:57:58 |
Re : Bug incompréhensible

JulSoft
|
J rejoins tout à fait le propos de Kohntark, et j'irai même plus loin:
- Un post avec un titre qui donne aucune indication, ça donne pas envie d'aider, à moins d'avoir sérieusement du temps à perdre
- 600 lignes de code, qui plus est propre à un projet (et donc pas testables), ça rend juste impossible le debug "de tête", et comme t'as rien de générique, pas possible de laisser un interpréteur faire le boulot
- Pas de description utilisable des erreurs produites et pas possible de les reproduire, donc même avec beaucoup de bonne volonté euh...
Et oui, même si t'as l'impression que les conseils donnés servent à rien, tu/vous perdras moins de temps à factoriser un peu le code, ne serait-ce que pour localiser précisément le composant qui plante.
Une fois que t'as localisé la portion/ligne où t'as l'erreur, tu peux essayer de créer un petit composant (max 50 lignes) qui permette de tester ce qui foire, et là on pourra t'aider plus facilement.
Voila... Le but est pas de te dire "on veut pas t'aider" (si on est ici, c'est justement parce qu'on trouve ça important), mais de te donner les moyens d'être aidé dans des conditions acceptables pour tout le monde.
|
|
Cette discussion est classée dans : html, ip, get, tip, if
Répondre à ce message
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
XML ET PHPXML ET PHP par karouani
Cliquez pour lire la suite par karouani RE : GOOGLE MAPRE : GOOGLE MAP par inwebo
Cliquez pour lire la suite par inwebo
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|