Page 1 sur 1

Transfert de variables

Posté : 05 mars 2012, 23:08
par Prade
Bonsoir,

Voila le problème : Je suis chargé de réaliser un module de recherche pour un site lors d'un projet de notre école. Le fonctionnement global j'ai compris le truc, j'ai juste une erreur que je n'arrive pas à comprendre. Mes codes :


Tout d'abord la saisie des données et le transfert au fichier resultatrecherche.php qui se chargera d'effectuer la recherche dans la base de données
        <h1>Recherche</h1>
			<form action = "#" method="post">
				<label for="recherche">Rechercher dans</label><br />
				<select name="recherche" id="recherche">
					<option value="nom">Spectacles</option>
					<option value="theatre">Th&eacute;atres</option>
					<option value="comedien">Com&eacute;dien</option>
					<option value="date">Date</option>
				</select><br /><br />
                <label for="cle">Tapez un mot cl&eacute; : </label><br />
				<input type="text" name="cle" id="cle" />&nbsp;<input type="submit" value="Envoyer" id="valider" />
				 <p id = "message"><?php if(isset($message)) echo $message ?></p>
			</form>
<?php

function Verif_magicquotes ($chaine)
{
	if (get_magic_quotes_gpc()) $chaine = stripslashes($chaine);
	
	return $chaine;
}
$message = null;

if (isset($_POST['cle']))
{

    $recherche = (isset($_POST['recherche']) && trim($_POST['recherche']) != '')? Verif_magicquotes($_POST['recherche']) : null;
    $cle = (isset($_POST['cle']) && trim($_POST['cle']) != '')? Verif_magicquotes($_POST['cle']) : null;

	$message = '<a href = "resultatrecherche.php?recherche=.$recherche&cle=.$cle">Resultat de la recherche : </a>';
}	
	?>
 



Ici le code dans resultatrecherche.php qui récupère les données et le test qui merde :
			         $hostname = "localhost";
			         $database = "admin";
			         $username = "root";
			         $theatreword = "";
			   
			         $connection = mysql_connect($hostname, $username, $theatreword) or die(mysql_error());
			
			         // Connexion à la base
			         mysql_select_db($database, $connection);
			   
			         // Indique à mySql de travailler en UTF-8 (par défaut mySql risque de travailler au standard ISO-8859-1)
			         mysql_query("SET NAMES 'utf8'");
			         
			   
			   		
					if (isset ($_GET['recherche']))
					{
						$recherche = $_GET['recherche'];
					}
					
					if (isset ($_GET['cle']))
					{
						$cle = $_GET['cle'];
					}

				    if($recherche== "nom")
					{
				    // On récupère tout le contenu de la table
				    $bdd = "SELECT idEvenement, NomEvenement, Type_2 FROM evenement  WHERE NomEvenement=.$cle ORDER BY idEvenement LIMIT " . $premierMessageAafficher . ", " . $nombreDeMessagesParPage;
					
					}
					

L'erreur se situe au niveau du " if($recherche== "nom") " qui ne fonctionne pas, impossible de rentrer dedans et de lancer la requête.C'est peut être une erreur toute conne j'avoue être une bille en php ^^". Bref j'ai besoin de votre aide merci. (J'ai mis que les bouts de code qui me semblait relier au problèmes mais si nécessaire je mettrai les fichiers entier.

Re: Transfert de variables

Posté : 05 mars 2012, 23:36
par moogli
salut,

fait le en une seule fois. pourquoi ? :
- les magic quote c'est a chaque chargement de script sur tout les valeurs donc c'est a refaire sur la seconde page
- pas d'intérêt d'avoir une page intermédiaire (enfin si c'est lourd et peu pratique :)

a partir de la l'action du formulaire devient resultatrecherche.php
dans ce fichier tu utilise $_POST au lieu de $_GET
Il faut que tu prévois un cas alternatif dans tes if car la si $_GET['recherche'] n'existe pas tu va quand essayer le test d'égalité et tu aura une erreur (ce qui fait que tu n'a pas de résultat d'ailleurs).

Pour le développement il est indispensable de :
- mettre sont niveau de report d'erreur à E_ALL|E_STRICT (ou simplement E_ALL pour php5.4).
- utiliser la fonction var_dump

@+

Re: Transfert de variables

Posté : 06 mars 2012, 00:24
par Prade
Je vais essayer ça, merci de la réponse rapide