par
moogli » 25 nov. 2012, 13:40
- ligne 205 il y a une virgule en trop donc ton script ne passe même pas la compilation. tu as fait une modif non testée avant de poster sur le forum ?
- ligne 1 & 2 pourquoi deux ouverture / fermeture de tag php ?
- ligne 20 et 21 tu sélectionne 2 million de tuples pour savoir combien il y en a ? O_o c'est même pas imaginable fait un select count(*) sur cette table si tu veux le nombre total.
- ligne 25 : pourquoi re sélectionner la base ? c'est déjà fait ligne 11
- pourquoi deux mysql_free_result ligne 170 ? et pourquoi dans un span ? (qui lui même est dans un <p> tu attend l'affichage de quelque chose ? une erreur ?)
- ligne 28 cette requête va sélectionner toute la table reponse_visiteur que tu n'utilise pas (effectivement tu prend le premier résultat que tu n'utilise pas et qui est totalement inutile vue que tu ne peux pas prévoir s'il correspond ou non à un critère précis). ensuite tu n'utilise pas cette requête donc a supprimer.
- Pour faire propre les déclarations de fonction sont à faire au début, et mieux dans un autre fichier elle n'on rien a faire la, hors mis rendre le code moins lisible

- ligne 87 encore un select_db à virer,
- ligne 81 et suivante : tu présume de l’existence des indexs dans $_POST ce n'est pas bon il faut vérifier leurs existence avant de les utiliser.
- Pourquoi utiliser sprintf à tout bout champ ? utilise la concaténation
- Quel est le but de la fonction mail au milieu de nul part sur la fin du fichier ? (le span suivant sert a rien d'ailleurs)
- la mise en page avec les tableaux c'est le mal

utilise plutôt les css. Vu ton doctype je ne suis pas certain que ton site passe au validateur sans encombre

-$currentPage = $_SERVER["PHP_SELF"]; totalement inutile utilise directement l'info de départ. idem pour editFormAction.
Je te conseil de laisser tomber l'éditeur qui fait tout à ta place et de réfléchir a comment le faire toi même. Ce sera plus simple pour toi car en cas de soucis tu pourras savori où regarde rapidement.
De plus c'est formateur et t'aidera à apprendre php
je corrigerais ton code ainsi (au minimum y a beaucoup plus a faire)
<?php
require_once('Connections/BD.php');
mysql_select_db($database_BD, $BD); // devrait être dans le fichier précédent ?
$maxRows_demandevisiteur = 1;
$pageNum_demandevisiteur= 0;
if (isset($_GET['pageNum_demandevisiteur'])) {
$pageNum_demandevisiteur = $_GET['pageNum_demandevisiteur'];
}
$startRow_demandevisiteur = $pageNum_demandevisiteur* $maxRows_demandevisiteur;
$query_demandevisteur = "SELECT * FROM email_visiteur ORDER BY email_num ASC";
$query_limit_demandevisiteur = sprintf("%s LIMIT %d, %d", $query_demandevisiteur, $startRow_demandevisiteur, $maxRows_demandevisiteur);
$demandevisiteur = mysql_query($query_limit_demandevisiteur, $BD) or die(mysql_error());
$row_demandevisiteur = mysql_fetch_assoc($demandevisiteur);
mysql_free_result($demandevisiteur);
if (!empty($_GET['totalRows_demandevisiteur'])) {
$totalRows_demandevisiteur = $_GET['totalRows_demandevisiteur'];
} else {
$all_demandevisiteur= mysql_query('select count(*) as nb from email_visteur');
$data = mysql_fetch_assoc($all_demandevisiteur);
$totalRows_demandevisiteur = $data['nb'];
mysql_free_result($all_demandevisiteur);
}
$totalPages_demandevisiteur = ceil($totalRows_demandevisiteur/$maxRows_demandevisiteur)-1;
$queryString_demandevisiteur = "";
if (!empty($_SERVER['QUERY_STRING'])) {
$params = explode("&", $_SERVER['QUERY_STRING']);
$newParams = array();
foreach ($params as $param) {
if (stristr($param, "pageNum_demandevisiteur") == false &&
stristr($param, "totalRows_demandevisiteur") == false) {
array_push($newParams, $param);
}
}
if (count($newParams) != 0) {
$queryString_demandevisiteur = "&" . htmlentities(implode("&", $newParams));
}
}
$queryString_demandevisiteur = sprintf("&totalRows_demandevisiteur=%d%s", $totalRows_demandevisiteur, $queryString_demandevisiteur);
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
if (isset($_SERVER['QUERY_STRING'])) {
$_SERVER["PHP_SELF"] .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
// il faut vérifier tous les index dans $_POST avant de la utiliser, pour info "MM_insert" est inutile sans valeur spécifique (token de validité)
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "reponse")) {
$insertSQL = sprintf("INSERT INTO reponse_visiteur (reponse_num, reponse_prenom,reponse_email, reponse_sujet, reponse_reponse) VALUES (%s, %s, %s, %s, %s, %s)",
GetSQLValueString($_POST['reponse_num'], "int"),
GetSQLValueString($_POST['reponse_prenom'], "text"),
GetSQLValueString($_POST['reponse_email'], "text"),
GetSQLValueString($_POST['reponse_sujet'], "text"),
GetSQLValueString($_POST['reponse_reponse'], "text"));
$Result1 = mysql_query($insertSQL, $BD) or die(mysql_error());
$insertGoTo = "demandevisiteur.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Réception mail</title>
<style type="text/css">
<!--
.Style1 {
font-family: Calibri;
font-weight: bold;
}
.Style2 {
font-family: Calibri
}
-->
</style>
</head>
<body>
<p> </p>
<p align="center" class="Style1">
<u>Demande de <?php echo $row_demandevisiteur['email_prenom']; ?>
</u>
</p>
<table width="549" border="0" align="center">
<tr>
<td width="163"><span class="Style1">N° demande: </span></td>
<td width="370"><?php echo $row_demandevisiteur['email_num']; ?></td>
</tr>
<tr>
<td><span class="Style1">Civilité : </span></td>
<td><?php echo $row_demandevisiteur['email_civilite']; ?></td>
</tr>
<tr>
<td><span class="Style1">Prénom : </span></td>
<td><?php echo $row_demandevisiteur['email_prenom']; ?></td>
</tr>
<tr>
<td><span class="Style1">Ville : </span></td>
<td><?php echo $row_demandevisiteur['email_ville']; ?></td>
</tr>
<tr>
<td><span class="Style1">Département : </span></td>
<td><?php echo $row_demandevisiteur['email_departement']; ?></td>
</tr>
<tr>
<td><span class="Style1">Adresse mail : </span></td>
<td><?php echo $row_demandevisiteur['email_email']; ?></td>
</tr>
<tr>
<td><span class="Style1">Question : </span></td>
<td><?php echo $row_demandevisiteur['email_question']; ?></td>
</tr>
</table>
<p class="Style2">
<strong>Nbre de demande totale : </strong>
<?php echo $totalRows_demandevisiteur ?>
</p>
<p class="Style2"> </p>
<p class="Style2">
<a
href="<?php printf("%s?pageNum_demandevisiteur=%d%s", $_SERVER["PHP_SELF"], 0, $queryString_demandevsiteur); ?>">Premier</a>
- <a
href="<?php printf("%s?pageNum_demandevisiteur=%d%s", $_SERVER["PHP_SELF"], max(0, $pageNum_demandevisiteur - 1), $queryString_demandevisiteur); ?>">Précédent</a>
- <a
href="<?php printf("%s?pageNum_demandevisiteur=%d%s", $_SERVER["PHP_SELF"], min($totalPages_demandevisiteur, $pageNum_demandevisiteur+ 1), $queryString_demandevisiteur); ?>">Suivant</a>
- <a
href="<?php printf("%s?pageNum_demandevisiteur=%d%s", $_SERVER["PHP_SELF"], $totalPages_demandevisiteur, $queryString_demandevisiteur); ?>">Dernier</a>
</p>
<p align="center" class="Style1">
<u>Répondre à <?php echo $row_demandevisiteur['email_prenom']; ?>
</u>
</p>
<p align="center" class="Style1"> </p>
<form method="post" name="reponse"
action="<?php echo $_SERVER["PHP_SELF"]; ?>">
<input type="hidden" name="reponse_num" value="" /> <input
type="hidden" name="reponse_prenom"
value="<?php echo $row_demandevisiteur['email_prenom']; ?>" /> <input
type="hidden" name="reponse_email"
value="<?php echo $row_demandevisiteur['email_email']; ?>" /> <input
type="hidden" name="reponse_sujet"
value="Réponse à votre demande d'information" /> <input type="hidden"
name="MM_insert" value="reponse" />
<table align="center">
<tr valign="baseline">
<td nowrap align="right" valign="top"><span class="Style1">Réponse :
</span></td>
<td><textarea name="reponse_reponse" cols="50" rows="5"></textarea>
</td>
</tr>
<tr valign="baseline">
<td nowrap align="right"> </td>
<td><input type="submit" value="Envoyer la réponse"> <?php
mail($row_demandevisiteur['email_email'],$row_demandevisiteur['email_sujet'],$row_demandevisiteur['email_reponse']);
?> <span class="Style1"> </span></td>
</tr>
</table>
</form>
@+
- ligne 205 il y a une virgule en trop donc ton script ne passe même pas la compilation. tu as fait une modif non testée avant de poster sur le forum ?
- ligne 1 & 2 pourquoi deux ouverture / fermeture de tag php ?
- ligne 20 et 21 tu sélectionne 2 million de tuples pour savoir combien il y en a ? O_o c'est même pas imaginable fait un select count(*) sur cette table si tu veux le nombre total.
- ligne 25 : pourquoi re sélectionner la base ? c'est déjà fait ligne 11
- pourquoi deux mysql_free_result ligne 170 ? et pourquoi dans un span ? (qui lui même est dans un <p> tu attend l'affichage de quelque chose ? une erreur ?)
- ligne 28 cette requête va sélectionner toute la table reponse_visiteur que tu n'utilise pas (effectivement tu prend le premier résultat que tu n'utilise pas et qui est totalement inutile vue que tu ne peux pas prévoir s'il correspond ou non à un critère précis). ensuite tu n'utilise pas cette requête donc a supprimer.
- Pour faire propre les déclarations de fonction sont à faire au début, et mieux dans un autre fichier elle n'on rien a faire la, hors mis rendre le code moins lisible ;)
- ligne 87 encore un select_db à virer,
- ligne 81 et suivante : tu présume de l’existence des indexs dans $_POST ce n'est pas bon il faut vérifier leurs existence avant de les utiliser.
- Pourquoi utiliser sprintf à tout bout champ ? utilise la concaténation
- Quel est le but de la fonction mail au milieu de nul part sur la fin du fichier ? (le span suivant sert a rien d'ailleurs)
- la mise en page avec les tableaux c'est le mal ;) utilise plutôt les css. Vu ton doctype je ne suis pas certain que ton site passe au validateur sans encombre ;)
-$currentPage = $_SERVER["PHP_SELF"]; totalement inutile utilise directement l'info de départ. idem pour editFormAction.
Je te conseil de laisser tomber l'éditeur qui fait tout à ta place et de réfléchir a comment le faire toi même. Ce sera plus simple pour toi car en cas de soucis tu pourras savori où regarde rapidement.
De plus c'est formateur et t'aidera à apprendre php
je corrigerais ton code ainsi (au minimum y a beaucoup plus a faire)
[php]<?php
require_once('Connections/BD.php');
mysql_select_db($database_BD, $BD); // devrait être dans le fichier précédent ?
$maxRows_demandevisiteur = 1;
$pageNum_demandevisiteur= 0;
if (isset($_GET['pageNum_demandevisiteur'])) {
$pageNum_demandevisiteur = $_GET['pageNum_demandevisiteur'];
}
$startRow_demandevisiteur = $pageNum_demandevisiteur* $maxRows_demandevisiteur;
$query_demandevisteur = "SELECT * FROM email_visiteur ORDER BY email_num ASC";
$query_limit_demandevisiteur = sprintf("%s LIMIT %d, %d", $query_demandevisiteur, $startRow_demandevisiteur, $maxRows_demandevisiteur);
$demandevisiteur = mysql_query($query_limit_demandevisiteur, $BD) or die(mysql_error());
$row_demandevisiteur = mysql_fetch_assoc($demandevisiteur);
mysql_free_result($demandevisiteur);
if (!empty($_GET['totalRows_demandevisiteur'])) {
$totalRows_demandevisiteur = $_GET['totalRows_demandevisiteur'];
} else {
$all_demandevisiteur= mysql_query('select count(*) as nb from email_visteur');
$data = mysql_fetch_assoc($all_demandevisiteur);
$totalRows_demandevisiteur = $data['nb'];
mysql_free_result($all_demandevisiteur);
}
$totalPages_demandevisiteur = ceil($totalRows_demandevisiteur/$maxRows_demandevisiteur)-1;
$queryString_demandevisiteur = "";
if (!empty($_SERVER['QUERY_STRING'])) {
$params = explode("&", $_SERVER['QUERY_STRING']);
$newParams = array();
foreach ($params as $param) {
if (stristr($param, "pageNum_demandevisiteur") == false &&
stristr($param, "totalRows_demandevisiteur") == false) {
array_push($newParams, $param);
}
}
if (count($newParams) != 0) {
$queryString_demandevisiteur = "&" . htmlentities(implode("&", $newParams));
}
}
$queryString_demandevisiteur = sprintf("&totalRows_demandevisiteur=%d%s", $totalRows_demandevisiteur, $queryString_demandevisiteur);
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
if (isset($_SERVER['QUERY_STRING'])) {
$_SERVER["PHP_SELF"] .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
// il faut vérifier tous les index dans $_POST avant de la utiliser, pour info "MM_insert" est inutile sans valeur spécifique (token de validité)
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "reponse")) {
$insertSQL = sprintf("INSERT INTO reponse_visiteur (reponse_num, reponse_prenom,reponse_email, reponse_sujet, reponse_reponse) VALUES (%s, %s, %s, %s, %s, %s)",
GetSQLValueString($_POST['reponse_num'], "int"),
GetSQLValueString($_POST['reponse_prenom'], "text"),
GetSQLValueString($_POST['reponse_email'], "text"),
GetSQLValueString($_POST['reponse_sujet'], "text"),
GetSQLValueString($_POST['reponse_reponse'], "text"));
$Result1 = mysql_query($insertSQL, $BD) or die(mysql_error());
$insertGoTo = "demandevisiteur.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Réception mail</title>
<style type="text/css">
<!--
.Style1 {
font-family: Calibri;
font-weight: bold;
}
.Style2 {
font-family: Calibri
}
-->
</style>
</head>
<body>
<p> </p>
<p align="center" class="Style1">
<u>Demande de <?php echo $row_demandevisiteur['email_prenom']; ?>
</u>
</p>
<table width="549" border="0" align="center">
<tr>
<td width="163"><span class="Style1">N° demande: </span></td>
<td width="370"><?php echo $row_demandevisiteur['email_num']; ?></td>
</tr>
<tr>
<td><span class="Style1">Civilité : </span></td>
<td><?php echo $row_demandevisiteur['email_civilite']; ?></td>
</tr>
<tr>
<td><span class="Style1">Prénom : </span></td>
<td><?php echo $row_demandevisiteur['email_prenom']; ?></td>
</tr>
<tr>
<td><span class="Style1">Ville : </span></td>
<td><?php echo $row_demandevisiteur['email_ville']; ?></td>
</tr>
<tr>
<td><span class="Style1">Département : </span></td>
<td><?php echo $row_demandevisiteur['email_departement']; ?></td>
</tr>
<tr>
<td><span class="Style1">Adresse mail : </span></td>
<td><?php echo $row_demandevisiteur['email_email']; ?></td>
</tr>
<tr>
<td><span class="Style1">Question : </span></td>
<td><?php echo $row_demandevisiteur['email_question']; ?></td>
</tr>
</table>
<p class="Style2">
<strong>Nbre de demande totale : </strong>
<?php echo $totalRows_demandevisiteur ?>
</p>
<p class="Style2"> </p>
<p class="Style2">
<a
href="<?php printf("%s?pageNum_demandevisiteur=%d%s", $_SERVER["PHP_SELF"], 0, $queryString_demandevsiteur); ?>">Premier</a>
- <a
href="<?php printf("%s?pageNum_demandevisiteur=%d%s", $_SERVER["PHP_SELF"], max(0, $pageNum_demandevisiteur - 1), $queryString_demandevisiteur); ?>">Précédent</a>
- <a
href="<?php printf("%s?pageNum_demandevisiteur=%d%s", $_SERVER["PHP_SELF"], min($totalPages_demandevisiteur, $pageNum_demandevisiteur+ 1), $queryString_demandevisiteur); ?>">Suivant</a>
- <a
href="<?php printf("%s?pageNum_demandevisiteur=%d%s", $_SERVER["PHP_SELF"], $totalPages_demandevisiteur, $queryString_demandevisiteur); ?>">Dernier</a>
</p>
<p align="center" class="Style1">
<u>Répondre à <?php echo $row_demandevisiteur['email_prenom']; ?>
</u>
</p>
<p align="center" class="Style1"> </p>
<form method="post" name="reponse"
action="<?php echo $_SERVER["PHP_SELF"]; ?>">
<input type="hidden" name="reponse_num" value="" /> <input
type="hidden" name="reponse_prenom"
value="<?php echo $row_demandevisiteur['email_prenom']; ?>" /> <input
type="hidden" name="reponse_email"
value="<?php echo $row_demandevisiteur['email_email']; ?>" /> <input
type="hidden" name="reponse_sujet"
value="Réponse à votre demande d'information" /> <input type="hidden"
name="MM_insert" value="reponse" />
<table align="center">
<tr valign="baseline">
<td nowrap align="right" valign="top"><span class="Style1">Réponse :
</span></td>
<td><textarea name="reponse_reponse" cols="50" rows="5"></textarea>
</td>
</tr>
<tr valign="baseline">
<td nowrap align="right"> </td>
<td><input type="submit" value="Envoyer la réponse"> <?php
mail($row_demandevisiteur['email_email'],$row_demandevisiteur['email_sujet'],$row_demandevisiteur['email_reponse']);
?> <span class="Style1"> </span></td>
</tr>
</table>
</form>[/php]
@+