8791 sujets

Développement web côté serveur, CMS

Bonjour,

J'ai un souci de taille
dans ce bout de code php (en tout début de page web en .php),

Voici mon mystère à éclaircir :
la variable $url1 change toute seule !!!
Pourquoi ? Comment résoudre ce changement brutal ?
Avez-vous une idée, une piste, la solution du mystère ?
D'avance un grand merci pour votre aide !!!


	ob_start();
	date_default_timezone_set('Europe/Brussels');

	if (isset($_GET['p']) && !empty($_GET['p'])) {
		$url1=$_GET['p'];
	} else {
		$url1="index";
	}
	
//	**************************************************
//  $url1 = creation01  --> c'est OK depuis l'appelant
	var_dump($url1);
	exit;
//	**************************************************

	$msg1_BDD = "";
	if (isset($_POST['envoi'])) {
		if ((strlen(trim($_POST['email1']))>0) AND (strlen(trim($_POST['password']))>0)) {
			$atom   = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]';
			$domain = '([a-z0-9]([-a-z0-9]*[a-z0-9]+)?)';		   
			$regex = '/^'.$atom.'+'.'(\.'.$atom.'+)*'.'@'.'('.$domain .'{1,63}\.)+'.$domain.'{2,63}$/i';  
			if (preg_match($regex, $email1)) {
				require_once("php/connexionMysql.inc.php");
				$reqCompte="SELECT visibilite FROM espace ".
					"WHERE email='".trim($_POST['email1'])."' AND motpasse='".trim($_POST['password'])."' ";
				$resCompte=mysql_query($reqCompte);
				$record=mysql_fetch_array($resCompte);
				if ($record) {
					
//					************************************************
//  				Comme par magie, $url1 = "index"... Pourquoi ???
					var_dump($url1);
					exit;
//					************************************************

					if ($record['visibilite'] == "O") {
						setcookie('CFVespace', 'ON', time() + mktime(23,59,59) - time(), "/", ".creaprint.be", false, true);
						header("Location: espace01.php?p=".$url1."&act=ON");
					} else {
						header("Location: espace01.php?p=".$url1."&act=NO");
					}
				} else {
					$msg1_BDD = "<span class='rouge bold'>Désolé, votre adresse email n'est pas connue !</span>";
				}
			} else {
				$msg1_BDD = "<span class='rouge bold'>Désolé, votre adresse email n'est pas valide !</span>";
				$_POST['email1']="";
			}
		} 
	}
	ob_end_flush();

Modifié par jytest (18 Jun 2011 - 11:15)
Regarde dans ton fichier connexionMysql.inc.php si tu la déclares pas à nouveau.
Modifié par jb_gfx (17 Jun 2011 - 09:57)
D'abord merci pour ton passage sur mon post.

A mon avis, non.
Mais pour en être sûr,
voici le contenu de ce fichier :


$connexion=mysql_connect("aaa.fr.mysql","aaa_fr","abcdefgh");
mysql_query("SET NAMES UTF8");
mysql_select_db("aaa_fr");


Bien sûr, j'ai remplacé les codes...
Bonjour,
a priori ta variable "ne change pas toute seule", mais elle prend le "else"... Que passes-tu par le 'p' de ton url ?
Comme indiqué en commentaires,
j'ai bien les valeurs suivantes pour $url1 (et donc $_GET['p'])

dans le 1er var_dump, j'ai :
creation00

dans le 2e var_dump, j'ai
index
Oui mais ton 2eme test se déclenche quand tu as posté ton formulaire, donc ta variable $_GET['p'] n'est plus disponible.
Merci jb_gfx.
Tu as mis le doigt dessus.
Effectivement ce script php en tête de page
était systématiquement appelé par une action de form...
et là, j'oubliai de renvoyer 'p'.

Merci de ton aide.