Page 2 sur 2

Posté : 21 juil. 2006 22:01
par McStealer
Pi Fuck :D ^^

Posté : 21 juil. 2006 22:33
par J-Ben
lol

bo mais sincéremant
un site trés bien fait sans erreur et bien organisé attirera plus de monde qu'un site avec des erreurs
c'est pour toi que je dis ca

sinon au niveau du syte, au lieu de mettre les jeux en vrac comme ca, fait des catégorie avec les lien des jeux, c'est a dire que un jeu = une fenetre, car tout les jeux sur un meme fenetre c'est pas terrible, et ca donne pas envi de revenir.

puis en plus donne les explication des jeux, car le jeux de la cigarette j'ai rien compris

j'éspere que tout se qu'on t'a dit fera du bien a ton site
puis lis quand meme le tuto quand tu aura le tps, ca aide toujours :wink:

Posté : 22 juil. 2006 00:32
par McStealer
Ok merci je retien :)

Si bien après ce site va fermé c'est sur cle script va etre revendu je le sais déjà :D

Posté : 22 juil. 2006 11:49
par kadaz
Moi je vosi 3 rectangle blancs, je suis sur mozilla firefox.

Posté : 22 juil. 2006 14:03
par real34
kadaz a écrit :Moi je vosi 3 rectangle blancs, je suis sur mozilla firefox.
Pareil !


Sinon, pour la sécurité, fais gaffe aux variables qui sont passées en GET ...
http://dasx4.free.fr/jeux/index.php?cat=jeux&page=' => Pas glop ! Pour les fans de SQL Injection je pense que cela doit être un régal ;)

Il te suffit juste de faire un

Code : Tout sélectionner

$page = (is_int($_GET['page'])) ? $_GET['page'] : 1;
Et le tour est joué ;)

Sinon, je ne sais pas si tu utilises un logiciel genre NVU, FrontPage ou Dreamveawer pour ton site, mais si c'est le cas, lâche tout de suite !!!

Rien ne vaut le bloc-note pour avoir un code propre (maximum 15 balises à connaitre ;) ) et une page beaucoup plus légère en terme de poids, tout en ayant une page conforme aux normes !
Sachant qu'en plus, si tu fais du vrai xHTML/CSS normalement tu n'as aucun problème pour modifier le style de tes pages. Mais ca demande une bonne rigueur ;)

Pour te motiver, fais un tour ici : http://www.csszengarden.com/
A droite tu as pleins de styles radicalements différents. Pourtant, le code HTML est exactement le même, seule la feuille de style CSS change ;)

Sinon, ton compteur n'est pas un compteur de visite, mais un compteur de pages vues ... nuance ;)

Bye !

Posté : 22 juil. 2006 16:30
par Mick@el
real34 a écrit :
kadaz a écrit :Moi je vosi 3 rectangle blancs, je suis sur mozilla firefox.
Pareil !


Sinon, pour la sécurité, fais gaffe aux variables qui sont passées en GET ...
http://dasx4.free.fr/jeux/index.php?cat=jeux&page=' => Pas glop ! Pour les fans de SQL Injection je pense que cela doit être un régal ;)

Il te suffit juste de faire un

Code : Tout sélectionner

$page = (is_int($_GET['page'])) ? $_GET['page'] : 1;
Et le tour est joué ;)

Sinon, je ne sais pas si tu utilises un logiciel genre NVU, FrontPage ou Dreamveawer pour ton site, mais si c'est le cas, lâche tout de suite !!!

Rien ne vaut le bloc-note pour avoir un code propre (maximum 15 balises à connaitre ;) ) et une page beaucoup plus légère en terme de poids, tout en ayant une page conforme aux normes !
Sachant qu'en plus, si tu fais du vrai xHTML/CSS normalement tu n'as aucun problème pour modifier le style de tes pages. Mais ca demande une bonne rigueur ;)

Pour te motiver, fais un tour ici : http://www.csszengarden.com/
A droite tu as pleins de styles radicalements différents. Pourtant, le code HTML est exactement le même, seule la feuille de style CSS change ;)

Sinon, ton compteur n'est pas un compteur de visite, mais un compteur de pages vues ... nuance ;)

Bye !
:happy:
include($page); c'est le pire ça :p

Et j'avais essayé l'injection SQL mais sur une autre variable :rires:

Je mettrais plutot :

Code : Tout sélectionner

$page = intval($_GET['page']);
if ($page < 1) $page = 1;
C'est plus simple

Posté : 22 juil. 2006 18:09
par Mick@el
Bon allez je suis sympa :

Code : Tout sélectionner

class SQL
{
	var $connexion;
	var $debug;
	var $nombre_requetes = 0;

	function connecter($serveur, $base, $utilisateur, $motDePasse)
	{
		$this->connexion = @mysql_connect($serveur, $utilisateur, $motDePasse);
		
		if (!$this->connexion)
			$this->_erreur('La connexion à mysql à échoué', true);
		
		if (!@mysql_select_db($base, $this->connexion))
			$this->_erreur('Impossible de séléctionner la base de données', true);
	}
	function requete($requete)
	{
		$nombre_arguments = func_num_args();
		if ($nombre_arguments > 1)
		{
			$arguments =  func_get_args();
			array_shift($arguments);
			$arguments = array_map('mysql_real_escape_string', $arguments);
			$requete   = vsprintf($requete, $arguments);
		}
		$this->nombre_requetes++;
		
		if ($this->debug)
			echo '<p><strong>Requète SQL</strong> : ' . htmlspecialchars($requete) . ' -> ';
		
		$resultat = @mysql_query($requete);
		
		if (!$resultat)
		{
			if ($this->debug)
				echo '<span style="color: red; font-weight: bold;">ERREUR</span></p>';
			
			$this->_erreur('La requète à échouée', false);
		}
		elseif ($this->debug)
			echo '<span style="color: green; font-weight: bold;">OK</span></p>';
		
		return $resultat;		
	}
	
	function enreg_suivant($resultat)
	{
		return mysql_fetch_assoc($resultat);
	}
	
	function _erreur($message, $fatale=null)
	{
		echo "<p><strong>Erreur SQL</strong> : ";
		echo htmlspecialchars($message);
		
		if ($this->debug)
			echo ' (' . htmlspecialchars(mysql_error()) . ')';
		
		echo '</p>';
		if ($fatale)
			exit;
	}
}
Exemple d'utilisation :

Code : Tout sélectionner

<!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" xml:lang="fr" >
	<head>
		<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
		<title>Test SQL</title>
	</head>
	
	<body>


<?php

$bdd = new SQL();
$bdd->debug = isset($_GET['debug']);
$bdd->connecter("localhost", "bdd1", "McStealer", "12345");

$req = $bdd->requete("SELECT * FROM `membres` WHERE ville = '%s'", $_GET['ville']);
?>

<table style="border: 1px solid black;">
<caption style="color: green; font-size: 15pt;">Membres :</caption>

<tr><th style="border: 1px solid black;">ID du membre</th><th style="border: 1px solid black;">Nom d'utilisateur</th><th style="border: 1px solid black;">Ville</th></tr>
<?php
$i = 0;
while ($enreg = $bdd->enreg_suivant($req))
{
	echo '<tr><td style="border: 1px solid black;">' . $enreg['id'] . '</td><td style="border: 1px solid black;">' . htmlspecialchars($enreg['utilisateur']) . '</td><td style="border: 1px solid black;">' . htmlspecialchars($enreg['ville']) . '</td></tr>';
	
	$i++;
}

if ($i == 0)
	echo '<tr><th style="border: 1px solid black;" colspan="3">Aucun membre trouvé</th></tr>';

?>
</table>

<?php echo '<p>Nombre de requètes : ' . $bdd->nombre_requetes . '</p>'; ?>

  <p>
    <a href="http://validator.w3.org/check?uri=referer"><img
        src="http://www.w3.org/Icons/valid-xhtml10"
        alt="Valid XHTML 1.0 Strict" height="31" width="88" /></a>
  </p>

</body>
</html>
http://test_sql.mickael.ouba.com/?ville=Nancy&debug
http://test_sql.mickael.ouba.com/?ville=Nancy
http://test_sql.mickael.ouba.com/?ville=?
http://test_sql.mickael.ouba.com/?ville=Rouen

et bien sûr aucun truc de ce genre ne marche :
http://test_sql.mickael.ouba.com/?debug&ville=<script>
http://test_sql.mickael.ouba.com/?debug&ville=lol'%20OR%20true;--

Tiens par exemple, je te refais ton compteur :

Code : Tout sélectionner

$ip = $_SERVER['REMOTE_ADDR'];

$req      = $bdd->requete("SELECT COUNT(*) AS nbr FROM `visiteurs` WHERE ip = '%s';", $ip);
$enreg = $bdd->enreg_suivant($req);

if ($enreg['nbr'] == 0)
{
	$bdd->requete("INSERT INTO `visiteurs` (ip) VALUES ('%s');", $ip);
}
$req = $bdd->requete("SELECT COUNT(ip) AS nombre_visiteurs FROM `visiteurs`;");
$enreg = $bdd->enreg_suivant($req);

echo "<p>Nombre de visiteurs : <strong>$enreg[nombre_visiteurs]</strong></p>";
* Mickael repart améliorer sa classe SQL :wink:

EDIT : Mwarf McStealer, tu sais le <gras> ça marche encore moins que le <b> :smile: -> http://dasx4.free.fr/jeux/index.php?cat=jeux

Posté : 23 juil. 2006 04:15
par McStealer
Je comprend pas tout ...
J'ai fias cette requete :

CREATE TABLE `visiteurs` (
`nombre_visiteurs` VARCHAR( 1 ) NOT NULL ,
`timestamp` TIMESTAMP NOT NULL ,
PRIMARY KEY ( `nombre_visiteurs` )
) TYPE = MYISAM ;

Maintenant je test le script ;)

Posté : 23 juil. 2006 05:44
par Mick@el
McStealer a écrit :CREATE TABLE `visiteurs` (
`nombre_visiteurs` VARCHAR( 1 ) NOT NULL ,
`timestamp` TIMESTAMP NOT NULL ,
PRIMARY KEY ( `nombre_visiteurs` )
) TYPE = MYISAM ;
Depuis quand tu utilise VARCHAR pour des nombres ?
De plus c'est pas TYPE mais ENGINE.

Code : Tout sélectionner

CREATE TABLE `visiteurs` (
`ip` VARCHAR(15) NOT NULL
) ENGINE = InnoDB ;
Et pi vla la deuxième version : http://test_sql.mickael.ouba.com/index2.php
McStealer a écrit :Je comprend pas tout ...
J'en connais un qui va se taper 2 tutos pour le prix d'un :sm_bravo:

Posté : 23 juil. 2006 14:31
par McStealer
Je testerai plus tard :cool:

Posté : 24 juil. 2006 10:13
par real34
mickael9 ... on se doute que tu as de superbes capacités en php, mais au cas où tu n'aurais pas vu, c'est un débutant !

Pour la POO il pourra attendre un peu de connaître les bases du langages ...

Et puis un include($page); ce n'est pas ce qu'il fait !
Sinon, cela marcherait : http://dasx4.free.fr/jeux/index.php?cat=index ;)

Mais il est vrai qu'il faudrait peut-être te pencher sur quelques tutos ... :D

Posté : 24 juil. 2006 16:44
par Mick@el
real34 a écrit :Et puis un include($page); ce n'est pas ce qu'il fait !
Je sais, je sais ...

L'utilisation n'est pas compliquée en soit, suffit de mettre $bdd = new SQL; en haut de la page et se dire que $bdd->machin() c'est une fonction avec un nom un peu spécial :blink: