avis sur des transferts de donné

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 : avis sur des transferts de donné

par shi » 12 juil. 2005, 14:05

voilà le code un peu allégé...

Je viens de me rendre compte que si on tape un mot qui n'est pas dans la base, le message s'affiche mais il dit que page n'est pas défini :?:
(fonctions.inc.php contient seulement la fonction pour colorer le mot recherché.)

Code : Tout sélectionner

<?php echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; ?> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr"> <meta http-equiv="content-type" content="text/html" charset="UTF-8" /> <head> <?php include( "mysql.inc.php" ); require( "fonctions.inc.php" ); if( isset( $_POST["recherche"] ) ) $recherche = $_POST["recherche"]; else $recherche = 0; if( isset( $_POST["critere"] ) ) $critere = $_POST["critere"]; ?> </head> <body> <form name="annuaire" method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>"> <input type="text" name="critere" value="Votre recherche ici. <?php if(!$critere) echo stripslashes( $critere ); ?>" size="17" onFocus='document.forms["annuaire"].elements["critere"].value =""'/> <input type="submit" name="envoyer" value="Traduire"/><input type="hidden" name="recherche" value="1"/></form> </body> <?Php if( $recherche==1 && !empty( $critere) ) { $requete = "SELECT * FROM japfr WHERE fr LIKE '%" . stripslashes( $critere ) . "%'"; $execution = mysql_query( $requete, $connection ) OR die( "Impossible d'executer la Requete !" ); $total = @mysql_num_rows( $execution ) ; $na = 5; if( $total> 0 ) { $nb_pages = ceil($total/$na); $page = isset($_GET['page']) ? $_GET['page'] : 0; $depart = $page * $na; $requete2 = "SELECT * FROM japfr WHERE fr LIKE '%" . stripslashes( $critere ) . "%' limit ".$depart.",".$na; $execution2 = mysql_query( $requete2, $connection ) OR die( "Impossible d'executer la Requete !" ); $totallimite = @mysql_num_rows( $execution2 ) ; ?> <br /> <div style="position: absolute; left: 16px; top:230px; width: 753px;background-color: #FFFFFF; layer-background-color: #FFFFFF; border: 1px none #000000;"> <p class="s11">R&eacute;sultat : <span class="b"><?php echo $total; ?></span><br /> Mot recherch&eacute; :<span class="b""color:#FF0000"> <?php echo colorise_query( $critere,$critere,$critere); ?></span></p> <br /> <?php while( $un_mot = mysql_fetch_array( $execution2 )) { ?><ul><li><p class="style2"><strong><?php echo colorise_query( $un_mot["fr"], $critere,"stabylo" ); ?></strong></li></ul></p> <p class="style8"><?php echo $un_mot["jap"] . " " . $un_mot["pro"]; ?><br /></p> <p class="style5"><?php echo $un_mot["com"]; ?><br /> </p> <?php } mysql_free_result( $execution2 ); } else { $requete = "SELECT * FROM japfr WHERE jap LIKE '%" . stripslashes( $critere ) . "%' OR pro LIKE '%". stripslashes( $critere ) . "%'"; $execution = mysql_query( $requete, $connection ) OR die( "Impossible d'executer la Requete !" ); $total = @mysql_num_rows( $execution ); $na = 5; if( $total > 0 ) { $nb_pages = ceil($total/$na); $page = isset($_GET['page']) ? $_GET['page'] : 0; $depart = $page * $na; $requete2 = "SELECT * FROM japfr WHERE jap LIKE '%" . stripslashes( $critere ) . "%' OR pro LIKE '%". stripslashes( $critere ) . "%' limit ".$depart.",".$na; $execution2 = mysql_query( $requete2, $connection ) OR die( "Impossible d'executer la Requete !" ); $totallimite = @mysql_num_rows( $execution2 ) ; ?> <br /> <div style="position: absolute; left: 16px; top:230px; width: 753px;background-color: #FFFFFF; layer-background-color: #FFFFFF; border: 1px none #000000;"> <p class="s11">R&eacute;sultat : <span class="b"><?php echo $total; ?></span><br /> Mot recherch&eacute; :<span class="b""color:#FF0000"> <?php echo colorise_query( $critere,$critere,$critere ); ?></span></p> <br /> <?php while( $un_mot = mysql_fetch_array( $execution2 ) ) { ?><ul><li><p class="style4"><strong><?php echo colorise_query( $un_mot["jap"],$critere,"stabylo" );?></strong></li></p></ul> <p class="style8"><?php echo $un_mot["fr"]; ?><br /></p> <p class="style5"><?php echo $un_mot["com"]; ?><br /> </p> <?php } mysql_free_result( $execution2 ); } else echo "Aucune traduction disponible pour le moment.<br />\n"; } if($page > 0) { ?> <a href="<?php echo($_SERVER['PHP_SELF']."?page=". ($page - 1))?>">Page précédente</a> <?php } if($page < $nb_pages) { ?> <a href="<?php echo($_SERVER['PHP_SELF']."?page=". ($page + 1))?>">Page suivante</a> <?php } } ?> </body> </html> <?Php mysql_close(); ?>

par shi » 12 juil. 2005, 13:58

attends le code fait 187 lignes avec toutes les mises en page... Je purge un peu pour alléger alors !

Merci beaucoup en tout cas !

par zeus » 12 juil. 2005, 13:56

A mon humble avis, le problème se situe plutôt au niveau du traitement des variables.

Tu donnes un bout de code ? mici

par shi » 12 juil. 2005, 13:46

Merci Zeus !

Je crois avoir compris à quoi sert $_REQUEST. Elle permet d'acquérir les éléments d'un formulaire par exemple ?

j'ai un formulaire qui sert pour un dico. On entre le mot dans une langue et apparaît son équivalent dans l'autre langue d'après la requête.
J'ai réussi à limiter le nombre a afficher par page et à faire apparaître le lien 'suivant' à la première recherche grâce au post suivant :

http://www.phpfrance.com/forums/voir_sujet-5284.php

Si je clique sur suivant, ça load la page avec pour lien dans le navigateur :
base.php?page=1

Mais le mot de la recherche n'est pas pris en compte et finalement, ça me reload seulement base.php sans les résultats et les liens 'suivant' 'précédent'

Y'aurait-il quelque chose qui manque dans mon formulaire et/ou les liens ?

Merci beaucoup !

le formulaire :

Code : Tout sélectionner

<form name="annuaire" method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>"> <input type="text" name="critere" value="Votre recherche ici. <?php if(!$critere) echo stripslashes( $critere ); ?>" size="17" onFocus='document.forms["annuaire"].elements["critere"].value =""'/> <input type="submit" name="envoyer" value="Traduire"/><input type="hidden" name="recherche" value="1"/></form>
les liens 'suivants' et 'précédents' :

Code : Tout sélectionner

if($page > 0) { ?> <a href="<?php echo($_SERVER['PHP_SELF']."?page=". ($page - 1))?>">Page précédente</a> <?php } if($page < $nb_pages) { ?> <a href="<?php echo($_SERVER['PHP_SELF']."?page=". ($page + 1))?>">Page suivante</a> <?php }

par zeus » 12 juil. 2005, 13:26

$ma_var = $_REQUEST["var"];
correspond à
if (isset($_ENV["var"]))
  $ma_var = $_ENV["var"];
elseif(isset($_GET["var"]))
  $ma_var = $_GET["var"];
elseif(isset($_POST["var"]))
  $ma_var = $_POST["var"];
elseif(isset($_SESSION["var"]))
  $ma_var = $_SESSION["var"];
elseif(isset($_COOKIE["var"]))
  $ma_var = $_COOKIE["var"];
Plus d'infos ==> ICI <==

même problème

par shi » 12 juil. 2005, 13:19

Bonjour,

J'ai le même problème mais je ne comprends pas où il faut mettre le $_request...

Quelqu'un pourrait-il m'expliquer ? Merci :)

par pingoo » 03 juil. 2005, 13:03

OK merci :lol:

par Elie » 03 juil. 2005, 12:01

Tu la fait passer en _GET apres :)

Genre :

page.php?page=1&recherche=mot+cle

Du coup pour gerer ta recherche utilise $_REQUEST qui recherche la variable soit dans $_POST ou soit dans $_GET

avis sur des transferts de donné

par pingoo » 03 juil. 2005, 11:58

Bonjours,
Je viens graçe à votre Forum de limiter le nombre d'affichage de ma base de données et de le diviser en page par page.
La ou ca bloc c'est que je part d'un formulaire de recherche avec les valeur envoyées en POST, et lorsque l'on passe à la page suivante il faut que les valeurs soit transmises...
N'y a t il pas un autre moyen surtout afin de limiter les perte des données?
Merci