suivant code renvoie vers page suivant action

Mammouth du PHP | 19672 Messages

24 févr. 2010, 23:15

Quand je vois ce genre de code, j'ai juste envie de me barrer à la course... et je constate également que tu écoutes ce que tu as bien envie d'entendre....
Être un débutant n'est pas un défaut, très loin de là, et ceux qui sur ce forums sont disposés à les aider en partageant leur expérience et leur savoir apprécient ceux d'entre eux qui sont attentifs.

Là, je ne sais pas où tu as pioché cette syntaxe, mais à priori dans un vieux bouquin qu'on t'a donné ou encore acheté 1€ dans un bac de vieilleries sur le trottoir devant chez un libraire : la dernière version stable de PHP actuellement est la 5.3.xx, or ton code, c'est du PHP 4. Jette-moi donc ce bouquin et trouves-en un plus récent, on gagnera du temps ;)

-1- Les short_open_tag sont à éviter pour ne pas dire à bannir : donc on écrit « <?php » et pas juste « <? »;
-2- $HTTP_POST_VARS est complètement obsolète et doit être remplacé par $_POST

Corrige et aligne ton code pour commencer, sois discipliné si tu veux aboutir, ce sera moins pénible pour tout le monde, y compris pour toi.
Ensuite, lis convenablement les questions que je te pose et ne saute pas les étapes : je ne t'ai pas parlé des insertions dans les tables de ta base, je t'ai mentionné les variables du premier formulaire vers les champs cachés du second formulaire.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 388 Messages

25 févr. 2010, 19:15

donc comme tu me la dit j'ai alligner mon code et retravaillé mon php.

Voici se que sa me donne page 1
<?php

echo("<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n");

/* Variables de connexion : ajustez ces paramètres selon votre propre environnement */

$serveur = "aaa";

$admin   = "laaa";

$mdp     = "aaa";

$base    = "aaa";

/* On récupère si elle existe la valeur de la région envoyée par le formulaire */

$idr = isset($_POST['region'])?$_POST['region']:null;

?>



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
		<head> 
			<title>petite annonce gratuite pour particulier encart publicitaire pour profesionnel - mon espace</title>
				<meta http-equiv="Content-Type" content="text/html";
				charset=iso-8859-1" />
				<link rel="stylesheet" media="screen" type="text/css"
				title="Design espace" href="css/ajoutannonce_style.css" />
		</head>
<body>

	<div id="annonce"></div>
	

	<div id="entete">
 
	</div>

	<div id="corps">
 
		<img src="contenu/logisdesannonces.png" alt="logisdesannonces" class="logisdesannonces" />
		<img src="contenu/logo.png" alt="logo" class="logo" />
	<div id="bouton">		
		<a href="divers.html"><img src="contenu/divers.png" alt="divers" class="divers" border="0"/></a>
		<a href="vehicule.html"><img src="contenu/vehicule.png" alt="vehicule" class="vehicule" border="0"/></a>
		<a href="hightech.html"><img src="contenu/high-tech.png" alt="hightech" class="hightech" border="0"/></a>
		<a href="immobilier.html"><img src="contenu/immobilier.png" alt="immobilier" class="immobilier" border="0"/></a>
		<a href="animaux.html"><img src="contenu/animaux.png" alt="animaux" class="animaux" border="0"/></a>
		<a href="espacepro.html"><img src="contenu/boutonpro.png" alt="bouton" class="bouton" border="0"/></a>
	</div>	
		<a href="http://www.logisdesannonces.fr/accueil.html"><img src="contenu/bouton_accueil.png" alt="accueil" class="accueil" border="0"/></a>

	</div>
	<div id="formulaire">
			Votre département :<br />
<?php

	/* On établit la connexion à MySQL avec mysql_pconnect() plutôt qu'avec mysql_connect()

	*  car on aura besoin de la connexion un peu plus loin dans le script */

	$connexion = mysql_pconnect($serveur, $admin, $mdp);

	if($connexion != false)

	{

		$choixbase = mysql_select_db($base, $connexion);

		$sql1 = "SELECT `id_region`, `region`".

		" FROM `region`".

		" ORDER BY `id_region`";
	
		$rech_regions = mysql_query($sql1);

		$code_region = array();

		$region = array();

		/* On active un compteur pour les régions */

		$nb_regions = 0;

		if($rech_regions != false)

			{

				while($ligne = mysql_fetch_assoc($rech_regions))

				{

					array_push($code_region, $ligne['id_region']);

					array_push($region, $ligne['region']);



					/* On incrémente de compteur */

					$nb_regions++;

				}

			}

?>

	<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chgdept">
		<select name="region" id="region" onchange="document.forms['chgdept'].submit();">


		<option value="-1">- - - Choisissez une région - - -</option>

<?php

    for($i = 0; $i < $nb_regions; $i++)

    {

?>

		<option value="<?php echo($code_region[$i]); ?>"<?php echo((isset($idr) && $idr == $code_region[$i])?" selected=\"selected\"":null); ?>><?php echo($region[$i]); ?></option>

<?php

    }

?>

		</select>

    
	</form>
<br />
	<form id="ok" method="post" action="php/validationannonce.php">

<?php

    mysql_free_result($rech_regions);

    /* On commence par vérifier si on a envoyé un numéro de région et le cas échéant s'il est différent de -1 */



    if(isset($idr) && $idr != -1)

    {

        /* Cération de la requête pour avoir les départements de cette région */

        $sql2 = "SELECT `id_departement`, `departement`".

        " FROM `departement`".

        " WHERE `id_region` = ". $idr ."".

        " ORDER BY `id_departement`;";

        if($connexion != false)

        {

            $rech_dept = mysql_query($sql2, $connexion);

            /* Un petit compteur pour les départements */

            $nd = 0;

            /* On crée deux tableaux pour les numéros et les noms des départements */

            $code_dept = array();

            $nom_dept = array();

            /* On va mettre les numéros et noms des départements dans les deux tableaux */

            while($ligne_dept = mysql_fetch_assoc($rech_dept))

            {

                array_push($code_dept, $ligne_dept['id_departement']);

                array_push($nom_dept, $ligne_dept['departement']);

                $nd++;

            }

            /* Maintenant on peut construire la liste déroulante */

            ?>


Votre région :<br />
<select name="departement" id="departement">

            <?php  

            for($d = 0; $d<$nd; $d++)

            {

                ?>

  <option value="<?php echo($code_dept[$d]); ?>"<?php echo((isset($dept_selectionne) && $dept_selectionne == $code_dept[$d])?" selected=\"selected\"":null); ?>><?php echo($nom_dept[$d]." (". $code_dept[$d] .")"); ?></option>

                <?php

            }

?>

</select>

<?php

        }

        /* Un petit coup de balai */

        mysql_free_result($rech_dept);

    }

?>
<br />

		<label for="NOMUTILISATEURS">Nom:</label><br />
			<input type="text" name="NOMUTILISATEURS" id="NOMUTILISATEURS" size="20" /><br />
		<label for="MAILUTILISATEURS">Email:</label><br />
			<input type="text" name="MAILUTILISATEURS" id="MAILUTILISATEURS" size="20" /><br />
		<label for="TELEPHONE">Téléphone:</label><br />
			<input type="text" name="TELEPHONE" id="TELEPHONE" size="20" /><br />
				<span>Vous n'étes pas obliger de le mentionner.</span><br /><br />
		
		<label for="typeannonce">Type d'annonce:</label><br />		
			<label>
					<input type="radio" name="typeannonce" value="vends" />Je vends
				</label>
				<label>
					<input type="radio" name="typeannonce" value="donne" />Je donne
				</label>
				<label>
					<input type="radio" name="typeannonce" value="troc" />Je troc
				</label>
				<br /><br />
				
			<label for="categorie">Sélectionner une catégorie:</label><br />
				<select name="categorie" id="categorie">
					<option value="0">Votre catégorie</option>
					<option value="divers">Divers</option>
					<option value="vehicules">Véhicules</option>
					<option value="immobilier">Immobilier</option>
					<option value="high-tech">High-Tech</option>
					<option value="animaux">Animaux</option>
			</select>	
			
			<br /><br />
			<label for="souscategorie">Sélectionner un sous catégorie:</label><br />
				<select name="souscategorie" id="souscategorie">
					<optgroup label="DIVERS">
						<option value="select">Votre sous-catégorie</option>
						<option value="antiquite-art">Antiquité-Art</option>
						<option value="bricolage-jardin-chauffage">Bricolage-Jardin-Chauffage</option>
						<option value="meuble-decoration">Meuble-Décoration</option>
						<option value="vetements">Vêtements</option>
						<option value="puericulture">Puériculture</option>
						<option value="livres">Livres</option>
						<option value="loisir">Loisir</option>
						<option value="collections">Collections</option>
						<option value="musique">Musique</option>
						<option value="jeux-jouets">Jeux-Jouets</option>
						<option value="sport">Sport</option>
					</optgroup>
					<optgroup label="VEHICULES">
						<option value="voiture">Voiture</option>
						<option value="moto-scooter">Moto-Scooter</option>
						<option value="camping-car">Camping car</option>
						<option value="caravane">Caravane</option>
						<option value="utilitaire">Utilitaire</option>
						<option value="bateau-nautisme">Bateau-Nautisme</option>
						<option value="pieces-accessoire auto">Piéces-Accessoire auto</option>
						<option value="pieces-accessoire moto">Piéces-Acessoire moto</option>
						<option value="pieces-accessoire nautisme">Piéces-Accessoire nautisme</option>
						<option value="pieces-accessoire camping car">Piéces-Accessoire camping car</option>				
					</optgroup>
					<optgroup label="IMMOBILIER">
						<option value="location">Location</option>
						<option value="location saisonniere">Location saisonnère</option>
						<option value="vente maison">Vente Maison</option>
						<option value="vente appartement">Vente appartement</option>
						<option value="vente propriete">Vente propriété</option>
						<option value="vente hotel particulier">Vente hotel particulier</option>
						<option value="vente garage">Vente garage</option>
						<option value="immeuble">Immeuble</option>
						<option value="vente constructeur">Vente constructeur</option>
						<option value="investisseur">Investisseur</option>
						<option value="renovation">Rénovation</option>
						<option value="etang">Etang</option>
						<option value="corps de ferme">Corps de ferme</option>				
					</optgroup>
					<optgroup label="HIGH-TECH">
						<option value="hifi-photo-video">Hifi-Photo-Video</option>
						<option value="informatique">Informatique</option>
						<option value="jeux video">Jeux video</option>
						<option value="musique-film">Musique-Film</option>
						<option value="telephonie">Téléphonie</option>
						<option value="autre">Autre</option>								
					</optgroup>
					<optgroup label="ANIMAUX">
						<option value="achat-vente">Achat-Vente</option>
						<option value="adoption-don">Adoption-Don</option>
						<option value="services">Services</option>
						<option value="accessoires">Accessoires</option>												
					</optgroup>
				</select>
		<br />
		<label for="titreannonce">Titre de l'annonce:</label><br />
			<input type="titreannonce" name="titreannonce" id="titreannonce" size="20" /><br />
				<span>Décriver précisement en quelques mots le titre de votre annonces</span><br /><br />
		<label for="descriptionannonce">Description de l'annonce :</label><br />
			<textarea name="descriptionannonce" id="descriptionannonce" rows="5" cols="30"></textarea><br />
		<label for="prix">Prix:</label><br />
			<input type="prix" name="prix" id="prix" size="10" /><br />

<?php
	echo '<input type="hidden" name="region" id="region" value="'.$idr.'"/>'; // Renverra le NUMERO de région
	
?>



<input type="submit" name="ok" id="ok" value="envoyer" />

</form>





<?php

    /* Terminé, on ferme la connexion */

    mysql_close($connexion);

}

else

{

    /* Si on arrive là, c'est pas bon signe, il faut vérifier les

    * paramètres de connexion, mot de passe, serveur pas démarré etc... */


}

?>
<br /><br /><br /><br /><br /><br />




</div>
<div id="fondlogin">

</div>
<div id="login">VOUS ÊTES INSCRIT ?

	<div id="formlogin">
		Espace résérvé au particulier<br />
	</div>
	<div id="form">
		<form method="post" action="../php/login.php">
 	
		<label for="MAILUTILISATEURS">Email:</label><br />
			<input type="text" name="MAILUTILISATEURS" id="MAILUTILISATEURS" size="20" /><br />
		<label for="MDP">Mot de passe:</label><br />
			<input type="password" name="MDP" id="MDP" size="20" /><br /><br />
				<input type="submit" value="Valider" />	
		</form>		
	</div>
	<div id="mpsoublie">
		<a href="renouvellementmps.html""style=color:white;">Mot de passe oublié ?</a>
	</div>

</div>
<div id="pied_de_page">
 <div id="boutonbas">
	<a href="information.html"><img src="contenu/information.png" alt="information" class="information" border="0"/></a>
	<a href="contact.html"><img src="contenu/contact.png" alt="contact" class="contact" border="0"/></a>
	<a href="newsletters.html"><img src="contenu/newsletters.png" alt="newsletters" class="newsletters" border="0"/></a>
	<a href="offre.html"><img src="contenu/offre.png" alt="offre" class="offre" border="0"/></a>
	<a href="aide.html"><img src="contenu/aide.png" alt="aide" class="aide" border="0"/></a>

</div>
</div>

</body>

</html>

Page PHP
<?php
// Fonction pour parser les variables vers FLASH 
function Parse($variable,$valeur) { 
echo "&" . $variable . "=" . utf8_encode($valeur);
}

$categorie=$_POST['categorie']; 
$typeannonce=$_POST['typeannonce'];
$souscategorie=$$_POST['souscategorie'];
$titreannonce=$_POST['titreannonce'];
$descriptionannonce=$_POST['descriptionannonce'];
$prix=$_POST['prix'];
$departement=$$_POST['departement'];
$region=$_POST['region'];

$NOMUTILISATEURS=$_POST['NOMUTILISATEURS'];
$MAILUTILISATEURS=$_POST['MAILUTILISATEURS'];
$TELEPHONE=$_POST['TELEPHONE'];




//Fontion "decoder" (facultative)
function decoder($texte){
	$texte = utf8_decode($texte);
      /*$texte = stripslashes($texte);
	$texte = trim($texte);
	$texte = htmlentities($texte, ENT_QUOTES);
	$texte = strip_tags($texte);
	$texte = nl2br($texte);
	$texte = str_replace(">", ">", $texte);
	$texte = str_replace("<", "<", $texte);*/
		
	$texte = str_replace("è","%E8",$texte);	
	$texte = str_replace("é","%E9",$texte);	 
        $texte = str_replace("è","%EA",$texte);
        $texte = str_replace("ç","%E7",$texte);
        $texte = str_replace("%","%25",$texte); 
        $texte = str_replace("!","%21",$texte); 
        $texte = str_replace("\"","%22",$texte); 
        $texte = str_replace("#","%23",$texte); 
        $texte = str_replace("\$","%24",$texte); 
        $texte = str_replace("&","%26",$texte); 
        $texte = str_replace("'","%27",$texte); 
        $texte = str_replace("(","%28",$texte); 
        $texte = str_replace(")","%29",$texte); 
        $texte = str_replace("*","%2A",$texte); 
        $texte = str_replace("+","%2B",$texte); 
        $texte = str_replace(",","%2C",$texte); 
         
        
        $texte = str_replace("/","%2F",$texte); 
        $texte = str_replace(":","%3A",$texte); 
        $texte = str_replace(";","%3B",$texte); 
        $texte = str_replace("<","%3C",$texte); 
        $texte = str_replace("=","%3D",$texte); 
        $texte = str_replace(">","%3E",$texte); 
        $texte = str_replace("?","%3F",$texte); 
         
        $texte = str_replace("[","%5B",$texte); 
        $texte = str_replace("]","%5D",$texte); 
        $texte = str_replace("^","%5E",$texte); 
         
        $texte = str_replace("`","%60",$texte); 
        $texte = str_replace("{","%7B",$texte); 
        $texte = str_replace("|","%7C",$texte); 
        $texte = str_replace("}","%7D",$texte); 
        $texte = str_replace("~","%7E",$texte); 
        $texte = str_replace("¢","%A2",$texte); 
        $texte = str_replace("£","%A3",$texte); 
        $texte = str_replace("¥","%A5",$texte); 
        $texte = str_replace("|","%A6",$texte); 
        $texte = str_replace("§","%A7",$texte); 
        $texte = str_replace("«","%AB",$texte); 
        $texte = str_replace("¬","%AC",$texte); 
        $texte = str_replace("¯","%AD",$texte); 
        $texte = str_replace("º","%B0",$texte); 
        $texte = str_replace("±","%B1",$texte); 
        $texte = str_replace("ª","%B2",$texte); 
        $texte = str_replace(",","%B4",$texte); 
        $texte = str_replace("µ","%B5",$texte); 
        $texte = str_replace("»","%BB",$texte); 
        $texte = str_replace("¼","%BC",$texte); 
        $texte = str_replace("½","%BD",$texte); 
        $texte = str_replace("¿","%BF",$texte); 
	return $texte;
}	

$categorie = decoder($categorie);
$typeannonce = decoder($typeannonce);
$souscategorie = decoder($souscategorie);
$titreannonce = decoder($titreannonce);
$descriptionannonce = decoder($descriptionannonce);
$prix = decoder($prix);
$departement = decoder($departement);
$region = decoder($region);

$NOMUTILISATEURS = decoder($NOMUTILISATEURS);
$MAILUTILISATEURS = decoder($MAILUTILISATEURS);
$TELEPHONE = decoder($TELEPHONE);


//ici on commence avec les requêtes MySQL pour vérifier dans la table

include ('connect.php');//ici on inclut le fichier avec l'accès MySQL.

$sql = "SELECT * FROM utilisateurs WHERE MAILUTILISATEURS = '$MAILUTILISATEURS'";//On sélectionne dans la table "UTILISATEUR" le login qui a pour valeur la variable "$login" 
    $req = mysql_query($sql)or die(mysql_error());   
    $result = mysql_numrows($req);// on compte le nombre de résultats 

    if($result!=0)  // le login existe déjà
        { 
        Parse("resultat","email '$MAILUTILISATEURS' existe deja, desole"); //alors on renvoi au Flash que le login '$MAILUTILISATEURS' existe déjà
        } 
    else  //sinon le login n'existe pas  
        {    
        $sql = "INSERT INTO utilisateurs (NOMUTILISATEURS,MAILUTILISATEURS,TELEPHONE) VALUES ('$NOMUTILISATEURS','$MAILUTILISATEURS','$TELEPHONE')"; //Alors on insert dans la table le nouvel utilisateur		
		mysql_query ($sql);
			$sql2 = "INSERT INTO annonces (categorie,typeannonce,souscategorie,titreannonce,descriptionannonce,prix,departement,region) VALUES ('$categorie','$typeannonce','$souscategorie','$titreannonce','$descriptionannonce','$prix','$departement','$region')";
			$req = mysql_query($sql2)or die(mysql_error()); 			
			
  	Parse("resultat","merci $MAILUTILISATEURS, vous etes a present enregistre et votre annonce est enregistré");
        }
		
		
		
		

?>
A savoir que je souhaite recuperer le nom de la region sélectionné ainssi que le nom du département en ajoutant cela ( voir ci dessous ) dans ma premiere page je recupere ID de la region mais moi je souhaite le nom.
<?php
	echo '<input type="hidden" name="region" id="region" value="'.$idr.'"/>'; // Renverra le NUMERO de région
	
?>

En esperant etre plus claire dans mes explications ainsi que dans mon code.

Mammouth du PHP | 19672 Messages

25 févr. 2010, 20:14

Bon, on progresse, c'est mieux :)

Maintenant, il faudrait que tu me dises par quelle méthode tu passes avec les listes liées : PHP, PHP+JS ou Ajax ? Sans ça, je ne peut pas être très utile.

Réfléchis bien au déroulement du code lorsqu'il est exécuté : d'abord, tu sélectionnes une région : comment est mise à jour la liste des départements ? Dois-tu cliquer sur un bouton ? Ou bien il y a un code JavaScript qui dispose déjà des informations et met automatiquement à jour la liste des départements (PHP + JS) ou bien il y a un appel Ajax vers le serveur ?

Dans le premier cas, il y a un rechargement de la page : et dans ce cas, tu peux déjà récupérer l'identifiant de la région qui te sert à remettre la région sélectionnée dans le premier formulaire pour alimenter le champ caché correspondant dans le second formulaire. Tu me suis toujours ? Si tu utilises la seconde méthode, alors c'est du JavaScript qui récupère la valeur de la région : donc tu peux ajouter une ligne de code JavaScript qui va initialiser le champ caché correspondant du second formulaire. Est-ce que tu comprends bien tout ceci ou bien c'est encore du chinois ?

Je me répète, mais la programmation, c'est, ça a toujours été, et ça restera de la logique jusqu'à la fin des temps. Si tu n'es pas fondamentalement logique, tu vas avoir énormément de difficultés pour aboutir... :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: