begin process at 2012 05 28 13:59:08
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

Bug incompréhensible


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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.'&amp;p='.($current_page-1).'" title="Précédente">&laquo;</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.'&amp;p='.$a.'">'.$a.'</a> | ';
			};

			// away from last page ?
			if ($current_page != $nb_pages)
				$html .= '<a href="'.$redirect_uri.'&amp;p='.($current_page+1).$anchor.'" title="Suivante">&raquo;</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&amp;do=add&amp;ip='.$tip_dr['ip'].'" title="Ajouter à la liste blanche">+WhiteList</a> ';
				$add_to_blacklist = '<a href="?act=blacklist&amp;do=add&amp;ip='.$tip_dr['ip'].'" title="Ajouter à la liste noire">+BlackList</a> ';
				$del = '<a href="?act=admin&amp;id='.$tip_dr['id'].'" title="Supprimer cette entrée">Suppr</a> ';
				$lock = '<a href="?act=lock&amp;id='.$tip_dr['id'].'&amp;lock=1" title="Verrouiller cette IP">Lock</a> ';
				$unlock = '<a href="?act=lock&amp;id='.$tip_dr['id'].'&amp;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' : '&nbsp;';

				$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&amp;do=add&amp;ip='.$tip_dr['ip'].'" title="Ajouter à la liste blanche">+WhiteList</a> ';
						$add_to_blacklist = '<a href="?act=blacklist&amp;do=add&amp;ip='.$tip_dr['ip'].'" title="Ajouter à la liste noire">+BlackList</a> ';
						$del_from_whitelist = '<a href="?act=whitelist&amp;do=del&amp;ip='.$tip_dr['ip'].'" title="Supprimer de la liste blanche">-WhiteList</a> ';
						$del_from_blacklist = '<a href="?act=blacklist&amp;do=del&amp;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

Membre Club
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

Membre Club
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

Membre Club
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

Sujets en rapport avec ce message

Problème de transfert de fichier avec le protocole FTP [ par NerOcrO ] Voici index.php :<body onLoad="document.connexion via div menu appeler une page dans un autre div qui varie en fonction de l'appel [ par babyboo ] d'avance merci pcq mon sujet est loin d'etre claire alors que vous soyez passer c'est super heureusement qu'il y a des gens comme vous :-) <!DOCTYPE Testeur de port [ par kiki67100 ] BonjourJe voudrais testez Des port en php Voila mon codeif (isset($_GET['IP']) AND isset($_GET['PORT'])){$fp = fsockopen("udp://".$_GET["IP"]."", $_GE condition if et else [ par gigawatt ] Bonjour Je suis obligé de passer ce message en textbox Je n'arrive pas à utiliser les conditions if et else avec une option sélect J'explique j'ai qu if (isset($_GET [ par kelm_by ] salut tous le monde,je ne sais pas pourquoi ce code ne fonctione pas???????????????if (isset($_GET['l'])) {include 'l.php';}if (isset($_GET['id'])) {i Problème execution logiciel sur serveur au lieux de poste client [ par aforpien ] Bonjour à tous,Dans le carde de la réalisation d'un intranet, je suis amené à faire des liens me permettant d'effectuer une prise en main sur des serv Mettre en couleur du texte sur une page PHP. [ par Leo_Robotic_Passion ] Bonjours a tous ^^ Je viens solliciter votre aide pour une petite modification sur un plugin dotclear! J'aimerais mettre en couleur un texte sur une Fonction de validation du format d'une @IP [ par faty86 ] Salut tout le monde !!J'ai integré une fonction( ki retourne true si une adresse IP passée en parametre est valide et False sinon) dans un code PHP ki HELP PLEASE !!!! problème de panier... [ par frederic66 ] Bonjour,mon site a été redirigé sur un nouveau serveur qui utilise PHP4, MySQL - 5.0.51a-log. depuis, mon panier ne fonctionne plus correctement... on affiche plus ma bdd quand je supp une entrée [ par jphilippev ] bonjourj'ai un ti probleme sur une page phpelle affiche une liste contenue dans ma bddnom prenom etc... avec une limite de 20 par pagemais le probleme


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,482 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales