Salut,

Je vais avoir d'autes champs à ajouter et je pense qu'il serait mieux que j'optimise le tout pour avoir
un codage plus propre. Si quelqu'un a une idée comment je pourrais faire. Peut-être mettre en fonction
certaines tâches. Je suis en apprentissage autodidacte.

Je suis preneur si vous avez des idées.

Merci d'avance!

Mon code pour faire des entrée dans la base de données, j'ai mis que la partie traitement pour ne pas
encombrer le message.

    

    // entrée de données
    include 'base.php';
    if(!empty($_POST['pseudo'])&&!empty($_POST['email'])&&!empty($_POST['commentaire'])) {

    $champ1 = $_POST['pseudo']; 
    $champ2 = $_POST['email']; 
    $champ3 = $_POST['commentaire'];

    $rchamp1 = preg_replace('/^\s/', null, $champ1); 
    $rchamp2 = preg_replace('/^\s/', null, $champ2); 
    $rchamp3 = preg_replace('/^\s/', null, $champ3);
         
    $rchamp1 = preg_match("/[^a-z0-9ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ.,'\s]+/i", $champ1);
    $rchamp2 = preg_match("/[^a-z0-9ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ.,'\s]+/i", $champ2);
    $rchamp3 = preg_match("/[^a-z0-9ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ.,'\s]+/i", $champ3);

    if($rchamp1 == "1" OR $rchamp2 == "1" OR $rchamp3 == "1") {
    echo '<span style="font-size:12px;">Requête refusée, repérer la position de l\'erreur <strong>[' . $rchamp1 . ' | ' . $rchamp2 . ' | '. $rchamp3 . ']</strong> dans le formulaire (1 indique erreur, 0 sans erreur) : </span><br />';
    echo '<span style="font-size:12px;">Information sur l\'erreur : <strong>n/d</strong></span>';
    }
    else {
    $result = mysql_query(" INSERT INTO commentaires VALUES ('','".mysql_real_escape_string($champ1)."','".mysql_real_escape_string($champ2)."','".mysql_real_escape_string($champ3)."')") OR die('Erreur!');

    $numero = mysql_insert_id();
    if(!$numero) { NULL; }
    else {
    echo '<span style="font-size:12px;">Requète acceptée! </span>'; 

    $result_rows = mysql_query("SELECT * FROM commentaires", $db);
    $num_rows = mysql_num_rows($result_rows);
    echo '<span style="font-size:12px;">Il y\'a <strong><span class="entree">' . $num_rows . '</span></strong> entrées totales dans la BDD : </span>';
    
    $resultview = mysql_query("SELECT * FROM commentaires WHERE id = '".mysql_real_escape_string($numero)."'") OR die('Erreur!');
  
    echo '<table border="0"><tr>';
    while ($ligne = mysql_fetch_array($resultview)) {
    echo '<td class="entree">' . substr($ligne['pseudo'],0,12) . '..</td>';
    echo '<td class="entree">' . substr($ligne['email'],0,12) . '..</td>';
    echo '<td class="entree">' . substr($ligne['commentaire'],0,12) . '..</td>';
    } //while
    echo '</tr></table>';
    
    } //numero
    mysql_close();						 


    } //formulaireetinsert
    } //ifempty
    else
    { echo '<span style="font-size:12px;">Tous les champs sont requis!</span>'; }
Pas testé, mais ça devrait marcher :

    // entrée de données
include 'base.php';
$autorises = array('pseudo','email','commentaire'); // ajouter tes champs ici.

$found=true;
$vars = array();
foreach($autorises as $a)
{
	if(empty($_POST[$a]))
	{
	 $found=false;
	 break;
	}else
		$vars[$a]=pre$_POST[$a];
}

if($found)
{
	$rvars = array();
	foreach($vars as $key=>$value)
	{
		$rvars[$key]=preg_replace('/^\s/', null, $value); 
		$rvars[$key]=preg_match("/[^a-z0-9ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ.,'\s]+/i", $value);
	}
	$error=false;
	foreach($rvars as $key=>$value)
	{
		if($value=="1")
		{
			echo '<span style="font-size:12px;">Requête refusée, repérer la position de l\'erreur <strong>[' . implode(' | ',$vars) . ']</strong> dans le formulaire (1 indique erreur, 0 sans erreur) : </span><br />';
			echo '<span style="font-size:12px;">Information sur l\'erreur : <strong>n/d</strong></span>';
			$error=true;
			break;
		}
	}
	if(!$error)
	{
		$values = "";
		foreach($vars as $v)
			$values.="'".mysql_real_escape_string($v)."',";
		
		$result = mysql_query(" INSERT INTO commentaires(".implode(",",$autorises).") VALUES (".substr($values,0,-1).")") OR die('Erreur!');
		$numero = mysql_insert_id();
		if($numero)
		{
			$result_rows = mysql_query("SELECT * FROM commentaires", $db);
			echo '<span style="font-size:12px;">Requète acceptée! </span>'; 
			$num_rows = mysql_num_rows($result_rows);
			echo '<span style="font-size:12px;">Il y\'a <strong><span class="entree">' . $num_rows . '</span></strong> entrées totales dans la BDD : </span>';
			$resultview = mysql_query("SELECT * FROM commentaires WHERE id = '".mysql_real_escape_string($numero)."'") OR die('Erreur!');
					
		  
			echo '<table border="0"><tr>';
			while ($ligne = mysql_fetch_array($resultview)) {
				foreach($ligne as $key=>$value)
				{
					if(in_array($key,$autorises))
						echo '<td class="entree">' . substr($value,0,12) . '..</td>';
				}
			} //while
			echo '</tr></table>';
			mysql_close();	
		}
	}
}else
{ echo '<span style="font-size:12px;">Tous les champs sont requis!</span>'; }

Modifié par icareo (26 May 2010 - 00:22)
Pour commencer, icareo, je veux vous dire merci pour votre réponse rapide! Et je suis plutôt impressionné du résultat. J'ai ajouté mon formulaire et mon captcha du début.

j ai un probleme de variable à ligne 26. Voici mon code complet avec vos modifications.

J'ai toujours eu de la difficulté avec les foreach.



<style><!-- input,td{background:#FFD42B;padding-left:5px;padding-right:5px;border:1px double green;font-size:12px;color:green;}input{background:#F2EEDF;}.entree{background:white;} --></style>
<h2>Ajouter des donneés!</h2>
<?php


session_start();
if(!isset($_SESSION['captcha'])||!isset($_POST['captcha'])){
null;
}
else{
if ( $_SESSION['captcha'] == htmlentities($_POST['captcha']) ) { 
unset($_SESSION['captcha']); 

// entrée de données
include 'base.php';
$autorises = array('pseudo','email','commentaire'); // ajouter tes champs ici.
$found=true;
$vars = array();
foreach($autorises as $a)
{
	if(empty($_POST[$a]))
	{
	 $found=false;
	 break;
	}else
		$vars[$a]=pre$_POST[$a];
}
if($found)
{
	$rvars = array();
	foreach($vars as $key=>$value)
	{
		$rvars[$key]=preg_replace('/^\s/', null, $value); 
		$rvars[$key]=preg_match("/[^a-z0-9ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ.,'\s]+/i", $value);
	}
	$error=false;
	foreach($rvars as $key=>$value)
	{
		if($value=="1")
		{
			echo 'Requête refusée, repérer la position de l\'erreur [' . implode(' | ',$vars) . '] dans le formulaire (1 indique erreur, 0 sans erreur) : 
';
			echo 'Information sur l\'erreur : n/d';
			$error=true;
			break;
		}
	}
	if(!$error)
	{
		$values = "";
		foreach($vars as $v)
			$values.="'".mysql_real_escape_string($v)."',";
		
		$result = mysql_query(" INSERT INTO commentaires(".implode(",",$autorises).") VALUES (".substr($values,0,-1).")") OR die('Erreur!');
		$numero = mysql_insert_id();
		if($numero)
		{
			$result_rows = mysql_query("SELECT * FROM commentaires", $db);
			echo 'Requète acceptée! '; 
			$num_rows = mysql_num_rows($result_rows);
			echo 'Il y\'a ' . $num_rows . ' entrées totales dans la BDD : ';
			$resultview = mysql_query("SELECT * FROM commentaires WHERE id = '".mysql_real_escape_string($numero)."'") OR die('Erreur!');
					
		  
			echo '';
			while ($ligne = mysql_fetch_array($resultview)) {
				foreach($ligne as $key=>$value)
				{
					if(in_array($key,$autorises))
						echo '';
				}
			} //while
			echo '
' . substr($value,0,12) . '..
';
			mysql_close();	
		}
	}
}else
{ echo 'Tous les champs sont requis!'; }



} else { echo '<span style="font-size:12px;">Mauvais code de vérification anti-spams!</span>'; }} // captchafin

$_SESSION['captcha'] = substr(md5(mt_rand(10000,99999)),0,5); // captcha

?>
<form action="add.php" method="post">
  <table>
  <tr><td><label for="pseudo">Pseudo : </label></td><td><input name="pseudo" id="pseudo" size="66" value="" type="text" /></td></tr>
  <tr><td><label for="email">Email : </label></td><td><input name="email" id="email" size="66" value="" type="text" /></td></tr>
  <tr><td><label for="commentaire">Commentaire : </label></td><td><input name="commentaire" id="commentaire" size="66" value="" type="text" /></td></tr>
  </table><br />

  <label for="captcha"><span style="font-size:14px;">Code anti-spam (<?php echo $_SESSION['captcha']; ?>) : </span></label><input style="position:absolute;left:166px;" type="text" name="captcha" id="captcha" size="5" maxlength="5" /> <br /><br />

  <label for="rad1"><span style="font-size:14px;">Confirmer la requête : </span></label><input style="position:absolute;left:166px;" name="rad" id="rad1" type="radio"  value="No" onclick="this.form['sub'].disabled=false" onfocus="if(this.blur)this.blur();"><br />
  <label for="rad2"><span style="font-size:14px;">Désactiver le bouton : </span></label><input style="position:absolute;left:166px;" name="rad" id="rad2" type="radio"  value="Yes" onclick="this.form['sub'].disabled=true" onfocus="if(this.blur)this.blur();" checked><br /><br />
  
  <input type="submit" name="sub" value="Soumettre" disabled>
</form>




Merci, c'est apprécié !
a écrit :
j ai un probleme de variable à ligne 26.


Un problème de variable ?
Quel problème ?
Quelle est la "ligne 26" chez toi ?
icareo a écrit :
j ai un probleme de variable à ligne 26.


Un problème de variable ?
Quel problème ?
Quelle est la "ligne 26" chez toi ?

Salutation!

La ligne 26 est :
$vars[$a]=pre$_POST[$a];

Le message :
syntax error, unexpected T_VARIABLE
Merci encore.

Je regarde pour comprendre le fonctionnement de la fonction Foreach car j'ai jamais réussi à l'utiliser dans les scripts que je fais.

C'est temps-ci, j'étudie les Preg_Mach PCRE PHP et je trouve ça fascinant ce que cela peut faire.

Pour finir, j'aimerais avoir votre idée sur le script d'affichage ci-joint :


<?php 
include 'produits_connect.php';
include 'produits_function.php';

chk($_GET['nocat']);
chk($_GET['search']);

if( isset($_GET['page']) && is_numeric($_GET['page']) )
    $page = $_GET['page'];
else
    $page = 1;
$pagination = 5;
$limit_start = ($page - 1) * $pagination;

$nb_total = mysql_query('SELECT COUNT(*) AS nb_total FROM produits') OR die('Erreur de connexion');
$nb_total = mysql_fetch_array($nb_total);
$nb_total = $nb_total['nb_total'];

$nb_pages = ceil($nb_total / $pagination);

    $reqq = ("SELECT nocat, COUNT(nocat) AS nombre FROM produits GROUP BY nocat ORDER BY noart ASC") OR die('Erreur de connexion');
    $req = mysql_query($reqq, $db);
    
    echo '<div id="onright2">';

      $i = 0; 

      echo '<table><tr style="line-height:.1em;">';
      echo '<th style="width:120px;">Catégories</th>';
      echo '<th style="width:5px;padding-left:3px;padding-right:3px;">Qté</th>';
      echo "</tr>";
   
    while ($data = mysql_fetch_array($req)) 
    {
      $bgcolor = ($i++ & 1) ? '#E8E8B1' : '#D7D77C';
   
      echo '<tr bgcolor='.$bgcolor.'>';
      echo '<td><a href="' . $_SERVER['PHP_SELF'] . '?nocat=' . trim(stripslashes(htmlspecialchars($data['nocat'],ENT_QUOTES))) .'">'.trim(stripslashes(htmlspecialchars($data['nocat'],ENT_QUOTES))).'</a></td><td>'.trim(stripslashes(htmlspecialchars($data['nombre'],ENT_QUOTES))) .'</td>';
      echo "</tr>";
    } 
      print("<tr bgcolor='#9E9E0A'><td><a style=\"font-size:1em;color:white;\" href=\"accueil.php?search=tout\"><b>TOUT</b></a></td><td><b><span style=\"color:white;\">" . $nb_total . "</b></td>");
      echo "</tr></table>";
      echo '</div>';

    if($_GET['search'] != '' ) { 
    
    chk($_GET['search']);
    
    $searchercher =trim(stripslashes(htmlspecialchars($_GET['search'],ENT_QUOTES)));
    $reqq1 = ("SELECT nocat,noart,article,taille,stock,prix,vendu,details,tout,image FROM produits WHERE nocat LIKE '%$searchercher%' OR noart LIKE '%$searchercher%' OR article LIKE '%$searchercher%' OR taille LIKE '%$searchercher%' OR stock LIKE '%$searchercher%' OR prix LIKE '%$searchercher%' OR vendu LIKE '%$searchercher%' OR tout LIKE '%$searchercher%' ORDER BY noart ASC LIMIT $limit_start,$pagination") OR die('Erreur de connexion');
    }
    else {
    $categorie =trim(stripslashes(htmlspecialchars($_GET['nocat'],ENT_QUOTES)));
    $reqq1 = ("SELECT * FROM produits WHERE nocat='".$categorie."' ORDER BY noart DESC LIMIT $limit_start,$pagination") OR die('Erreur de connexion');
    }

    $req1 = mysql_query($reqq1, $db);

      $i = 0; 
        echo '<p style="font-weight:bold; font-size:1.2em; text-align:center;line-height:0.7em;">PRODUITS EN LIGNE<br /><span style="font-weight:bold; font-size:0.6em; text-align:center;">* hauteur / largeur en cm</span></p>';
        echo '<table style="margin-left:5px;"><tr>';
        echo "<th>Catégorie</th>";
        echo "<th># Article</th>";
        echo "<th>Article</th>";
        echo "<th>Taille*</th>";
        echo "<th>Inventaire</th>";
        echo "<th>Prix CAD</th>";
        echo "<th>Promotion</th>";
        echo "<th>Image</th>";
        echo "</tr>";

    while ($data = mysql_fetch_array($req1)) 
    {
            chk($x);
            chk($y);
            chk($source);
    
            $filename = 'imgart/' . trim(stripslashes(htmlspecialchars($data['image'],ENT_QUOTES))) . '.jpg';
            
            if (file_exists($filename)) {
           
            $taillemax=34;
            $img = getimagesize($filename);
            $x=$img[0];
            $y=$img[1];
            if ($x > $y)
            {
            $y=$y*(($taillemax)/$x);
            $x=$taillemax;
            }
            if ($y > $x)
            {
            $x=$x*(($taillemax)/$y);
            $y=$taillemax;
            }
            if ($y == $x)
            {
            $x=$taillemax;
            $y=$taillemax;
            }
            $source=$filename;
            }              
            else {
            }
    $imgpath = 'http://domaine.com/';
 
    $bgcolor = ($i++ & 1) ? '#E8E8B1' : '#D7D77C';
    echo '<tr bgcolor='.$bgcolor.'>';
    echo '<td style="height:38px;">' .trim(stripslashes(htmlspecialchars($data['nocat'],ENT_QUOTES))). '</td>'; 
    echo '<td style="height:38px;">' .trim(stripslashes(htmlspecialchars($data['noart'],ENT_QUOTES))). '</td>'; 
    echo '<td style="height:38px;">' .trim(stripslashes(htmlspecialchars($data['article'],ENT_QUOTES))). '</td>'; 
    echo '<td style="height:38px;">' .trim(stripslashes(htmlspecialchars($data['taille'],ENT_QUOTES))). '</td>'; 
    echo '<td style="height:38px;">' .trim(stripslashes(htmlspecialchars($data['stock'],ENT_QUOTES))). '</td>'; 
    echo '<td style="font-size:1.1em;"><b>' .trim(stripslashes(htmlspecialchars($data["prix"],ENT_QUOTES))) . '</b></td>';
    echo '<td style="border-width:0.01em; border-color:red; border-style:double;background:yellow;font-size:1.5em;"><b>' .trim(stripslashes(htmlspecialchars($data["vendu"],ENT_QUOTES))) . '</b></td>';

    (file_exists($filename)) ? print('<td height="38"><a class="thumbnail" href="#thumb"><img class="htrans" style="margin-top:2px;" src="'. $imgpath . $source .'" width="' . $x . '" height="' . $y . '" border="0"><span><img src="'. $imgpath . $source . '"></span></a></td>') : print('<td height="38"><img src="' . $pimage . 'none.png"></td>');

    echo '</tr><tr>';
    echo '<td colspan="8" style="background:#FFFFFF;border:0.01em dashed #001155;text-align:left;font-size:.7em;padding-left:10px;"><b>DETAILS : </b>' .$data['details']. '</td>'; 
    echo '</tr><td style="height:4px;background:transparent;"></td><tr>';
    }
    echo "</tr></table>";
   
    mysql_free_result($req1);

    $reqte = mysql_query("SELECT *, COUNT(*) AS qte FROM produits WHERE nocat LIKE '%$searchercher%' OR noart LIKE '%$searchercher%' OR article LIKE '%$searchercher%' OR taille LIKE '%$searchercher%' OR stock LIKE '%$searchercher%' OR prix LIKE '%$searchercher%' OR vendu LIKE '%$searchercher%' OR tout LIKE '%$searchercher%'") OR die('Erreur de connexion');
    $count = mysql_num_rows($reqte); 
    while ($line = mysql_fetch_array($reqte)) {
    $nbqte=trim(stripslashes(htmlspecialchars($line['qte']))); 
    }
   
    echo '<p class="pagination">' . pagination($page, $nb_pages) . '</p>';

    ($_GET['search'] != '' ) ? print("Critère de recherche : <b><u>" . $searchercher . "</u></b> | Nombre d'article : " . $nbqte . "<br /><br />") : print("");
        
mysql_close();

?>

<form name="theForm" method="get">
<input type="text" name="search" value="Rechercher" onFocus="javascript:this.value='tout'">
</form>
<br />
<?php (!empty($data['search']))  ? print('<a href="javascript:document.theForm.submit();">Rechercher</a> | <a href="javascript:document.theForm.reset();">Annuler</a><br /><br />') : print(''); ?>



Ce script affiche par 5 items et permet de faire une recherche selon des critères. On peut afficher par catégories aussi. Celui là, je l'ai fait avec mes connaissances un peu moins avancées y a quelques semaines.

Je vais créer un autre sujet pour mon uploader que j'ai fait.

upload/29862-dan4.jpg

Ce que j'ai réussi à faire, c'est de faire un hover pour afficher l'image sans être obligé de cliquer sur l'image. Et de maintenir une résolution de l'image.