Conseil pour l'otpimisation du code php

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Conseil pour l'otpimisation du code php

par Invité » 23 juin 2005, 21:25

Grand merci de ta réponse rapide !

Je vais dessuite voir le lien que tu as posé sur ce message

A bientot pascaltje

par pascaltje » 23 juin 2005, 21:08

essaie de séparer les différentes parties dans ton code:
- les infos à récupérer des formulaires + les tests, pour savoir quel traitement effectuer
- les traitements = en gros ce qui a trait au SQL, à l'enregistrement des données
- l'affichage

pour cela, des schémas peuvent aider :)

et je conseille aussi et surtout de programmer en objet (DAO) pour avoir un code plus lisible:
http://www.phpfrance.com/forums/voir_sujet-224.php

A+

Pascal

Conseil pour l'otpimisation du code php

par Mestoph » 23 juin 2005, 19:36

Bonjour, je debut en php... Je me suis fait un enorme script php avec plusieurs page qui fonctionne plus ou moin bien...

Mon gros problème et que je mets des variables partout et mon code est vraiment laid a lire et pas tres obtimisée...

Voici un exemple de mon travail, j'aurais besoin de quelques conseil pour l'optimisation ce celui-ci car je ne vois vraiment pas comment faire....

Merci d'avance aux personnes qui me repondront !
<?
include("include/config.php");
include("langues/$Langage.php");
include("include/header.php");
echo "<br>";
if($_GET['Page']=='1'){			
	$Compte=$_POST['Compte'];
	$Motdepasse=$_POST['Motdepasse'];
	$Id=$_POST['Id'];
	$Personnage=$_POST['Personnage'];			   
	$cnx = odbc_connect($Db_Serveur, $Db_Compte, $Db_Pass);
	if( ! $cnx ) echo "$banque_6 <br>";			 
	$query = "SELECT * FROM PlayingCharacters WHERE UserId =$Id";
	$result = odbc_exec($cnx, $query);
	while (odbc_fetch_into($result, $PlayingCharacters)) {
		$Gold = $PlayingCharacters[21];
		$Xp	= $PlayingCharacters[24];	
			$Xp=substr( $Xp  , 0, strlen($Xp) - strlen(stristr( $Xp, ".")) );			// enleve la , et les decimale
?>
<table width="100%" border="1" cellpadding="5" cellspacing="0" align="center">
	<tr>
		<td class='texte1' bgcolor='#949C84' bordercolordark="white" bordercolorlight="black" align="left" width="50%"><font face="Tahoma" size="1" color="#FFFFFF"><b><?php echo $banque_19; ?> <?php echo $Personnage; ?></b></td>
		<td class='texte1' bgcolor='#949C84' bordercolordark="white" bordercolorlight="black" align="left" width="50%"><font face="Tahoma" size="1" color="#FFFFFF"><b>&nbsp;</b></td>
	</tr>
	<tr bgcolor='B8C0B2'>
		<td class='texte1' bordercolordark='white' bordercolorlight='black' align='center' width="50%"><font face="Tahoma" size="1"><? echo $banque_12; ?></td>
		<td class='texte1' bordercolordark='white' bordercolorlight='black' align='center' width="50%"><font face="Tahoma" size="1"><? echo $banque_13; ?></td>
	</Tr>
	<tr>
		<td class='texte1' bordercolordark="white" bordercolorlight="black" align="center" width="50%"><font face='Tahoma' size='1'><?php echo $Gold; ?></td>
		<td class='texte1' bordercolorlight="black" bordercolordark="white" align="center" width="50%"><font face='Tahoma' size='1'><?php echo $Xp; ?></td>
	</tr>				
	<tr bgcolor='B8C0B2'>
		<td class='texte1' bgcolor='#949C84' bordercolordark="white" bordercolorlight="black" align="left" width="50%"><font face="Tahoma" size="1" color="#FFFFFF"><b><?php echo $banque_18; ?></b></td>
		<td class='texte1' bgcolor='#949C84' bordercolordark="white" bordercolorlight="black" align="left" width="50%"><font face="Tahoma" size="1" color="#FFFFFF"><b>&nbsp;</b></td>
	</tr>
	<tr>
		<td class='texte1' align="center" valign="top" width="50%">	 
			<form method="post" action="<?php echo $_SERVER[PHP_SELF]; ?>?Page=2&id=<? echo $id; ?>">
		    <p align="center">
		    <input type="hidden" name="Personnage" value="<? echo $Personnage ?>">
			<p align="center">
			<font face='Tahoma' size='1'><?php echo $banque_17; ?> : <br><br><input type="text" name="Echange" size="20" tabindex="4"><br><br>
			<input type="hidden" name="Compte" value="<? echo $Compte ?>">
			<input type="hidden" name="Motdepasse" value="<? echo $Motdepasse ?>">
		    <input type="submit" value="<?php echo $banque_4; ?>" tabindex="1"><br><br></p>
		</td>
		<td class='texte1' align="center" width="50%"><font color="#FF0000" size='1'><?php echo $banque_16; ?> <?php echo $Gold; ?>
		  <?
			  if ($Gold<=1) { 
				  echo $banque_14;
		  } else { 
			  echo $banque_15;
			  }
?>		</td>
	</tr>
</table><br>
<?
	}
 odbc_close($cnx);	
include("include/footer.php");
exit;			
}
if($_GET['Page']=='2'){
	$Compte=$_POST['Compte'];
	$Motdepasse=$_POST['Motdepasse'];
	$Personnage=$_POST['Personnage'];
	$Echange=$_POST['Echange'];						
	if($Echange=='') {
		echo "<center><font face='Tahoma' size='1'>$banque_1 !<br><br>";
		echo "<center><input type='button' value='$banque_9' onclick='javascript:history.back();'><br><br>";
		include("include/footer.php");
		exit;
	} elseif($Echange<='0') {
		echo "<center><font face='Tahoma' size='1'>$banque_20 !<br><br>";
		echo "<center><input type='button' value='$banque_9' onclick='javascript:history.back();'><br><br>";
		include("include/footer.php");
		exit;
	} else {					
		$cnx = odbc_connect($Db_Serveur, $Db_Compte, $Db_Pass);
		if( ! $cnx ) echo "$banque_6";
		$Verif_Gold = odbc_exec ($cnx, "Select * FROM PlayingCharacters WHERE PlayerName = '$Personnage' ");
		while (odbc_fetch_into($Verif_Gold, $PlayingCharacters)); {
			if ( preg_match('#[0-9]#',$Echange) ) {
				if ($Echange <= $PlayingCharacters[21]) {
					$Echange2 = "$PlayingCharacters[24]" + "$Echange";
					$Echange3 = "$PlayingCharacters[21]" - "$Echange";
					odbc_exec ($cnx, "UPDATE PlayingCharacters SET XP = '$Echange2' WHERE PlayerName = '$Personnage'");
					odbc_exec ($cnx, "UPDATE PlayingCharacters SET Gold = '$Echange3' WHERE PlayerName = '$Personnage'");  
					echo "<center><font face='Tahoma' size='1'>$banque_22<br><br>";
echo<<<END
					<form method="POST" action="$_SERVER[PHP_SELF]?id=$id">
					<input type="hidden" name="Compte" value="$Compte">
					<input type="hidden" name="Motdepasse" value="$Motdepasse">
					<input type="submit" value="$banque_23">
					</form>		
END;
					include("include/footer.php");
					exit;
				} else {
		 		  echo "<center><font face='Tahoma' size='1'>$banque_21 !<br><br>";
				  echo "<center><input type='button' value='$banque_9' onclick='javascript:history.back();'><br><br>";
				  include("include/footer.php");
				  exit;
				}
			} else {
			 	echo "<center><font face='Tahoma' size='1'>$Xp_19 !<br><br>";
				echo "<center><input type='button' value='$Xp_6' onclick='javascript:history.back();'><br><br>";
				include("include/footer.php");
				exit;
			}
		}
	}
	odbc_close($cnx);			
	include("include/footer.php");
	exit;			
}
$num=0;
if($Compte=='' || $Motdepasse=='') {
 	echo "<center><font face='Tahoma' size='1'>$banque_1 !<br><br>";
	echo "<center><input type='button' value='$banque_9' onclick='javascript:history.back();'><br><br>";
	include("include/footer.php");
	exit;
} else {
	$cnx = odbc_connect($Db_Serveur, $Db_Compte, $Db_Pass);
	if( ! $cnx ) echo "$banque_6 <br>";
	$query = "SELECT * FROM T4Cusers WHERE Account ='$Compte'";
	$result = odbc_exec($cnx, $query);
	if (odbc_fetch_row($result)==$Compte) {
		$query1 = "SELECT * FROM OnlineUsers WHERE AccountName ='$Compte'";
		$result1 = odbc_exec($cnx, $query1);
		if (odbc_fetch_row($result1)<>$Compte) {
			$query2 = "SELECT * FROM T4Cusers WHERE Account ='$Compte'";
			$result2 = odbc_exec($cnx, $query2);
			while (odbc_fetch_into($result2, $T4Cusers)) {
				$Lecturemdp = $T4Cusers[2];
				if ($Lecturemdp == $Motdepasse) {
					$querynum = "SELECT * FROM PlayingCharacters WHERE Accountname ='$Compte'";
					$resultnum = odbc_exec($cnx, $querynum);
					while (odbc_fetch_into($resultnum, $PlayingCharacters)) {
						$num++;
					}
					if ( $num > 0 ) {
?>
					<center><form method="post" action="<?php echo $_SERVER[PHP_SELF]; ?>?Page=1&id=<? echo $id; ?>">
					<FONT face=Tahoma size=1><?php echo $banque_7; ?> :
					<select name="Id">
<?
					$query3 = "SELECT * FROM PlayingCharacters WHERE Accountname ='$Compte'";
					$result3 = odbc_exec($cnx, $query3);
					while (odbc_fetch_into($result3, $PlayingCharacters)) {
						$Personnage = $PlayingCharacters[1];
						$Id	= $PlayingCharacters[0];
						echo "<option value=\"".$Id."\">".$Personnage."</option>";
					}
?>
					</select><br><br>
					<p align="center"><input type="hidden" name="envoit" value="Ok">
				   	<input type="hidden" name="Personnage" value="<? echo $Personnage ?>">
					<input type="hidden" name="Compte" value="<? echo $Compte ?>">
					<input type="hidden" name="Motdepasse" value="<? echo $Motdepasse ?>">
					<input type="submit" value="<?php echo $banque_4; ?>" tabindex="1"><br></p>
					</form>
<?
  					} else {
?>						  	
					<center><font face="Tahoma" size="1"><?php echo $mule_19; ?>
					<br><br>
					<p align="center"><input type="button" value="<?php echo $banque_9; ?>" onclick="javascript:history.back();"><br><br></p>
					</form>
<?
					}
				} else {
				 	echo "<center><font face='Tahoma' size='1'>$banque_8 !<br><br>";
					echo "<center><input type='button' value='$banque_9' onclick='javascript:history.back();'><br><br>";
					include("include/footer.php");
					exit;
				}
			}
		} else {
		 	echo "<center><font face='Tahoma' size='1'>$banque_10 !<br><br>";
			echo "<center><input type='button' value='$banque_9' onclick='javascript:history.back();'><br><br>";
			include("include/footer.php");
			exit;
		}
	} else {
	 	echo "<center><font face='Tahoma' size='1'>$banque_11 !<br><br>";
		echo "<center><input type='button' value='$banque_9' onclick='javascript:history.back();'><br><br>";
		include("include/footer.php");
		exit;
	}
}
include("include/footer.php");
exit;
?>