submit en restant sur la méme page

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 : submit en restant sur la méme page

Re: submit en restant sur la méme page

par dadon » 31 déc. 2009, 18:07

Ça marche super bien! je vous remercie de votre disponibilité.......Voici le code
// $pagecourante a été déjà initialisé voir code précedent
maintenant à la fin du formulaire j'ai mis:

$pagesuiv=$pagecourante+1;
$pageprec=$pagecourante-1;
echo'<table height="8" border="0%" align="center">';
echo '<td align="center">';
echo '<form action="personne.php?page='.$pageprec.'" method="post">';
echo '<input type="submit" value="précédent">'."\n";
echo '</form>';
echo '</td>';
echo '<td align="center">';
echo '<form action="personne.php?page='.$pagesuiv.'" method="post">';
echo '<input type="submit" value="suivant">';
echo '</form>';
echo '</td>';
echo'</table>';

Re: submit en restant sur la méme page

par dadon » 30 déc. 2009, 18:32

dacor mais actuellement je suis entrain d'écrire un algo ........A bientot

Re: submit en restant sur la méme page

par Ryle » 30 déc. 2009, 14:29

Ben c'était déjà une bonne piste me semble-t-il ... en débroussaillant encore un peu on peut te trouver un sentier dans du pseudo code, mais pour la voie rapide, ça sera à toi de travailler ;)

Code : Tout sélectionner

SI la page courante est supérieure strictement à la première page AFFICHE le bouton précédent SI la page courante est inférieure strictement à la dernière page AFFICHE le bouton suivant

Re: submit en restant sur la méme page

par macgawel » 30 déc. 2009, 13:42

:google:

ICI par exemple...

Re: submit en restant sur la méme page

par dadon » 30 déc. 2009, 13:33

merci de votre réponse. pouvez vous me lancer sur une piste svp........

Re: submit en restant sur la méme page

par Ryle » 30 déc. 2009, 13:25

C'est tout à fait possible.... tu connais le nombre de pages maximum, tu connais la page qui est actuellement consulté. Il ne te reste qu'à définir quand est ce que le bouton précédent peut être affiché (à priori si tu n'es pas sur la première page) et quand le bouton suivant doit être affiché (vraissemblablement si tu n'es pas sur la dernière page), et afficher les liens qui vont bien dans ces deux cas :)

Re: submit en restant sur la méme page

par dadon » 30 déc. 2009, 13:18

En fait au lieu que les numéros de page s'affiche d'aprés ce code:
for($i=1; $i<=$nombreDePages; $i++)
{
if($i==$pagecourante)
{
echo ' [ '.$i.' ] ';
}
else
{
echo ' <a href="personne.php?page='.$i.'">'.$i.'</a> ';
}

}

Je voudrais créer à la place des boutons précédent et suivant......Est ce possible?

Re: submit en restant sur la méme page

par dadon » 30 déc. 2009, 12:28

Je vous REMERCIE 1000fois....Ça a marché.....yavé une accolade manquante: $pagecourante=intval($_POST["page_courante_retour_formulaire"]). A bientot

Re: submit en restant sur la méme page

par dadon » 30 déc. 2009, 12:10

je vais l'essayer......thanks

Re: submit en restant sur la méme page

par Aureusms » 30 déc. 2009, 11:49

Hmm c'est pas très propre comme solution mais c'est un début...
Tu peux pointer vers une seule page qui traite le formulaire et qui ensuite te redirige vers la page de ton choix via header. De ce fait tu n'auras q"un seul formuliare à traiter, à protéger , à injecter. Ensuite les reste c'est que de l'affichage. Tu peux aussi utiliser hidden des champs input
Si on reprend ton code :

Au passage :
$req_total=mysql_query('SELECT COUNT(*) AS total FROM personne');
$rep_total=mysql_fetch_assoc($req_total);
$total=$rep_total['total']; //tu es sûr que cela marche çà ?
Ton code :
<?php

include('connections/link.php');
mysql_select_db($base, $id_connect);

$elmtpage=1;


$req_total=mysql_query('SELECT COUNT(*) AS total FROM personne');
$rep_total=mysql_fetch_assoc($req_total);
$total=$rep_total['total']; //tu es sûr que cela marche çà ?

$elmtpage=ceil($total/$elmtpage);

if(isset($_GET['page']) && !isset($_POST["page_courante_retour_formulaire"]))
{
	$pagecourante=intval($_GET['page']);
	if($pagecourante>$nombreDePages)
		$pagecourante=$nombreDePages;
}

if (isset($_POST["page_courante_retour_formulaire"]) && !isset($_GET['page']))
{
	$pagecourante=intval($_POST["page_courante_retour_formulaire");
}

if (empty($pagecourante))
	$pagecourante=1; //par défaut car intval mettra 0 si pas un entier


$premiereEntree=($pagecourante-1)*$elmtpage;


$retour_page=mysql_query('SELECT * FROM personne ORDER BY num LIMIT '.$premiereEntree.', '.$emltpage.'');

while($donnees_page=mysql_fetch_assoc($retour_page))
{

?>
<form name="pers" action="personne.php" method="POST">
<input type="hidden" name="page_courante_retour_formulaire" value="<?php echo $pagecourante; ?>" />
<table height="398" border="10%" align="center">

<caption><h1>Fiche de personne</h1></caption>
<tr align="center">
<th>numero</th>
<td><input type="text" name="num" value="<?php echo(''.$donnees_page['num'].'') ;?>"></td>
</tr>
<tr align="center">
<th>nom</th>
<td><input type="text" name="nom" value="<?php echo(''.$donnees_page['nom'].'') ;?>"></td>
</tr>
<tr align="center">
<th>prenoms</th>
<td><input type="text" name="prenoms" value="<?php echo(''.$donnees_page['prenoms'].'') ;?>"></td>
</tr>
<tr align="center">
<th>date naiss</th>
<td><input type="text" name="datenaiss" value="<?php echo(''.$donnees_page['datenaiss'].'') ;?>"></td>
</tr>
<tr align="center">
<th>sexe</th>
<td><input type="text" name="sexe" value="<?php echo(''.$donnees_page['sexe'].'') ;?>"></td>
</tr>

<tr align="center">
<td colspan="2"><input type="submit" value="valider"></td>
</tr>
</table>
</form><?

}

echo '<p align="center">Page : ';
for($i=1; $i<=$nombreDePages; $i++)
{
	if($i==$pagecourante)
		echo ' [ '.$i.' ] ';
	else
	echo ' <a href="personne.php?page='.$i.'">'.$i.'</a> ';
}

Re: submit en restant sur la méme page

par dadon » 30 déc. 2009, 11:38

le probléme en est que je dois faire des traitements formulaire par formulaire(fiche par fiche).....Mais aussi s'il ya une possibilité de rester sur une méme page de type formulaire avec des "input type= text" et d'importer depuis la base de données les infos de la fiche et un bouton suivant qui assure la navigation des infos?????? je serais vraiment partant....

Re: submit en restant sur la méme page

par dadon » 30 déc. 2009, 11:16

effectivement j'avais fait une erreur au moment de la copie....dsolé...sisi j'ai chaque page un formulaire.....est ce que il ya une autre possibilité?

Re: submit en restant sur la méme page

par Aureusms » 30 déc. 2009, 11:07

Au passage tu as un formulaire sur chaque page ? Si oui c'est débile...

Re: submit en restant sur la méme page

par Aureusms » 30 déc. 2009, 11:04

Avant de te répondre (et avant que tu te fasses gronder par les modos), utilises les outils pour dire qu'il s'agit de PHP ou HTML, ... ce sera plus clair pour nous de lire ton code

Re: submit en restant sur la méme page

par dadon » 30 déc. 2009, 10:58

bonjour! merci de vos réponses mais il ya une variable $numéropage qui tourne en boucle. étant donné qu'il ya beaucoup de page je ne peux pas à chaque fois indiquer le numéro de page. je vous propose de regarder mon code:

<?php

include('connections/link.php');
mysql_select_db($base, $id_connect);

$elmtpage=1;


$req_total=mysql_query('SELECT COUNT(*) AS total FROM personne');
$rep_total=mysql_fetch_assoc($req_total);
$total=$rep_total['total'];

$elmtpage=ceil($total/$elmtpage);

if(isset($_GET['page']))
{
$pagecourante=intval($_GET['page']);

if($pagecourante>$nombreDePages)
{
$pagecourante=$nombreDePages;
}
}
else
{
$pagecourante=1;
}

$premiereEntree=($pagecourante-1)*$elmtpage;


$retour_page=mysql_query('SELECT * FROM personne ORDER BY num LIMIT '.$premiereEntree.', '.$emltpage.'');

while($donnees_page=mysql_fetch_assoc($retour_page))
{

?>
<form name="pers" action="personne.php"" method="POST">
<table height="398" border="10%" align="center">

<caption><h1>Fiche de personne</h1></caption>
<tr align="center">
<th>numero</th>
<td><input type="text" name="num" value="<?php echo(''.$donnees_page['num'].'') ;?>"></td>
</tr>
<tr align="center">
<th>nom</th>
<td><input type="text" name="nom" value="<?php echo(''.$donnees_page['nom'].'') ;?>"></td>
</tr>
<tr align="center">
<th>prenoms</th>
<td><input type="text" name="prenoms" value="<?php echo(''.$donnees_page['prenoms'].'') ;?>"></td>
</tr>
<tr align="center">
<th>date naiss</th>
<td><input type="text" name="datenaiss" value="<?php echo(''.$donnees_page['datenaiss'].'') ;?>"></td>
</tr>
<tr align="center">
<th>sexe</th>
<td><input type="text" name="sexe" value="<?php echo(''.$donnees_page['sexe'].'') ;?>"></td>
</tr>

<tr align="center">
<td colspan="2"><input type="submit" value="valider"></td>
</tr>
</table>
</form><?

}

echo '<p align="center">Page : ';
for($i=1; $i<=$nombreDePages; $i++)
{
if($i==$pagecourante)
{
echo ' [ '.$i.' ] ';
}
else
{
echo ' <a href="personne.php?page='.$i.'">'.$i.'</a> ';
}

}


Ce code marche bien sauf si je valide par le bouton submit il me retourne à la 1ère page............Merci de votre contribution