[RESOLU] nouvelle page et pré remplissage formulaire

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 : [RESOLU] nouvelle page et pré remplissage formulaire

Re: nouvelle page et pré remplissage formulaire

par palladium2014 » 31 mai 2013, 14:28

je pense que ton code fonctionne alors (je n'en ai pas douté) et que le problème viens de chez le second site que je tente de joindre. Je dois avouer qu'il est codé un peu à l'arrache :)

Merci beaucoup pour ton aide, je marque le topic en résolu.
A++

Re: nouvelle page et pré remplissage formulaire

par ghost5922 » 31 mai 2013, 14:24

Oui c'est possible car si la personne fait une redirection après la validation des informations cela et normal car si il mets juste <a href="toto.php" >ICI </a> quand tu va etre redirige toi tu sera sur ton domaine.ext/toto.php :) mais normalement le formulaire et bien envoyé apres faut faire un vrai test pour etre sur :)

Re: nouvelle page et pré remplissage formulaire

par palladium2014 » 31 mai 2013, 14:18

ok, J'ai compris. Il passe bien la page de login et après m'affiche ma page de formulaire une demis seconde et repasse sur un 404 no found. :s

Re: nouvelle page et pré remplissage formulaire

par ghost5922 » 31 mai 2013, 14:11

Exemple
<form action="/validation.php" method="post">
Login : <input type="text" name="login" value="" /><br>
Password : <input type="password" name="password" value="" /><br>
<input type="submit" value="Connecter" />
</form>

l'url sera domaine.ext/validation.php et array sera $postfields = array('login'=>'monlogin','password'=>'monpass');

cela va du coup envoyer directe les informations a la page de connexion et récupéré le cookie et session pour pouvoir ouvrir la seconde page


si maintenant tu fais un echo ou print_r() du résultat tu vas voir la page d'accueil de la zone membre

Re: nouvelle page et pré remplissage formulaire

par ghost5922 » 31 mai 2013, 14:05

Re,

normalement tu ne dois pas valider le formulaire

la premier url tu dois l'envoyer sur la validation de sont formulaire pas sur la page formulaire pareil pour la seconde

Re: nouvelle page et pré remplissage formulaire

par palladium2014 » 31 mai 2013, 14:02

Le premier formulaire ( le login), je dois le valider par contre le deuxième je n'ai pas besoins, j'ai juste besoins d'un affichage, je pense que c'est pour ça qu'il ne l'affiche pas et qu'il renvoie un 404 car d'après le code on soumet aussi le 2eme formulaire, non?

Re: nouvelle page et pré remplissage formulaire

par ghost5922 » 31 mai 2013, 13:58

Re,

tu peux me send les url que tu veux par pm ?

car si tu es bien connecte sur la premier page la second sauf si tu as une erreur dans ton lien

Re: nouvelle page et pré remplissage formulaire

par palladium2014 » 31 mai 2013, 13:31

En dur, ça fonctionne, je suis bien redirigé vers la page de login mais impossible de se loger donc quand il tente de joindre la deuxième url il met une erreur 404.
Sinon, impossible de transmettre un lien car c'est de l'intranet.
Merci.

PS: le formulaire ne marche sur sur internet explorer sinon j'ai une alert sur firefox ou autre.

Edit : Je pense que le login fonctionne car quand je rentre la seconde url à la main il me log automatiquement et m'affiche la page. Cependant j'ai un 404 not found après la page de login (sur IE).

Re: nouvelle page et pré remplissage formulaire

par ghost5922 » 31 mai 2013, 11:47

<?php
function connexion($link,$utilisateurUPRNE,$motDePasseUPRNE) { 

$postfields = array(
	'username' => $utilisateurUPRNE,
	'password' => $motDePasseUPRNE
);

	$chemin=$_SERVER["DOCUMENT_ROOT"];
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, $link);
	curl_setopt ($ch, CURLOPT_POST, 1);
	curl_setopt ($ch, CURLOPT_POSTFIELDS, $postfields);
	curl_setopt($ch, CURLOPT_COOKIEJAR, $chemin."cookies.txt");
	curl_setopt($ch, CURLOPT_COOKIEFILE, $chemin."cookies.txt");
	curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
	$result = curl_exec ($ch);
	curl_close ($ch);
	return $result;
}


function curl($url,$postfields) {
	$useragent = "Mozilla/5.0";
	$referer = $url;
	$chemin=$_SERVER["DOCUMENT_ROOT"];

	//Initialise une session CURL
	$ch = curl_init($url);
	//CURL options
	curl_setopt($ch, CURLOPT_POST, 1);
	//On poste les données du tableau $postfields 
	$cookies=@file_get_contents($chemin.'/cookies.txt');
	preg_match("!phpsessid\s*([0-9A-Za-z]+)!i",$cookies,$out);
	if(isset($out[1])){
					$phpsession=$out[1];
					$postfields["PHPSESSID"] = "".$phpsession."";
	}
	curl_setopt($ch, CURLOPT_COOKIEFILE, realpath($chemin.'cookies.txt'));
	curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
	curl_setopt($ch, CURLOPT_COOKIEJAR, $chemin."cookies.txt");
	curl_setopt($ch, CURLOPT_COOKIEFILE, $chemin."cookies.txt");
	curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
	curl_setopt($ch, CURLOPT_REFERER, $referer);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	$result = curl_exec($ch);
	curl_close($ch);
	return $result;
		   
}
		$lienLogin = 'http://login.fr/index.php';
		$lienForm = 'http://formulaire.fr/preetude/ajout_itc.php';
		
		$connexion=connexion($lienLogin,"tonlogin","tonpass");
		/* if(!preg_match('#Username and password do not match#i', $connexion)){ */
		print_r($connexion);	   
		$reponseMail = 'Connexion UPRNE ok.';
		$url = $lienForm;
		$postfields2 = array(
		'client' => "ClientTest",
		'adresse' => "adresseTest",
		'adressecp' => "CodePostaltest",
		'adresseville' => "villeTest",
		'tel' => "telTest",
		'latitude' => "latitudeTest",
		'longitude' => "longitudeTest",
		'nomcorrespcli' => "corespondantClientTest",
		'typoffre' => "typoffreTest",
		'motoffre' => "motoffreTest",
		'typsup' => "typsupTest",
		'debsup' => "debsupTest",
		'urs' => "Test",
		'adurs' => "[email protected]",
		'commentaire' => "Ceci est un test.");
		$page=curl($url,$postfields);
		print_r($page);

?>
apres si tu as des liens vers ta page que je puise teste de mon cote par pm

Re: nouvelle page et pré remplissage formulaire

par palladium2014 » 31 mai 2013, 11:41

Ok, juste qu'est ce que tu attends par en dur? :)

Re: nouvelle page et pré remplissage formulaire

par ghost5922 » 31 mai 2013, 11:38

Essaie de mettre mon code et le remplir en dur test juste la connexion si tu es connecte test la seconde parti mais toujours en dur voir déjà si mon code marche ou pas :)

Re: nouvelle page et pré remplissage formulaire

par palladium2014 » 31 mai 2013, 11:21

rien ne s'affiche en enlevant la condition mais peut être que cela viens de mon code :
<?php 
header('Content-Type: text/html; charset=UTF-8');
  // Recup data from jguery/ajax

$json_str = $_POST['data'];
$json_data = json_decode(stripslashes($json_str), true);



  	$nomClient = strtolower(trim($json_data["message"]["nom"]));
	$adresse = strtolower(trim($json_data["message"]["adresse"]));
	$ville = strtolower(trim($json_data["message"]["ville"]));
	$codePostal = strtolower(trim($json_data["message"]["codePostal"]));
	$nd = strtolower(trim($json_data["message"]["nd"]));
	$contactClient = strtolower(trim($json_data["message"]["contactClient"]));
	$commentaire = strtolower(trim($json_data["message"]["commentaire"]));
	$zone = trim($json_data["message"]["zone"]);
	$typeOffre = trim($json_data["message"]["typeOffre"]);
	$typeSupport = trim($json_data["message"]["typeSupport"]);
	$debitSupport = trim($json_data["message"]["debitSupport"]);
	$lancementEtude = strtolower(trim($json_data["message"]["lancementEtude"]));
	$latitude = strtolower(trim($json_data["message"]["latitude"]));
	$longitude = strtolower(trim($json_data["message"]["longitude"]));
	$idCodePostal = strtolower(trim($json_data["message"]["idCodePostal"]));
	$dateDemande = date('Y-m-d');
	$dateRetourSouhaite = date("Y-m-d", mktime(0, 0, 0, date("m"), date("d")+14, date("Y")));
	$nomDemandeur = strtolower(trim('test for test'));
	$motifOffre= "ETUDE AV";
	
	
	// Connection au serveur
	require_once('connectionMySQL.php');
 
	// Prepartion de la requete
	$selection_qry = "SELECT mail_upr, mail_ui, region FROM mail_upr WHERE numero_departement = '".$idCodePostal."'";
	//print "Requete SQL : " . $selection_qry . "<br/>";
	$selection_qry_res = $connection->query($selection_qry);

	
	

	//if ( is_a($selection_qry_res, '\PDOStatement')){
			if ($selection_qry_res->rowCount() > 0){

			$selection_data = $selection_qry_res->fetch(\PDO::FETCH_ASSOC);
			$mailUPR = $selection_data["mail_upr"];
			$mailUI = $selection_data["mail_ui"];
			$region = $selection_data["region"];
			
			//$selection_qry_res->close();
			
		}else{
			//print "Aucun resultat pour la recherche des donnees dans la base"."<br/>";
			exit();
		}
	//}else{
	//	print "Une erreur est survenue lors de la recuperation des donnees dans la base<br/>";
	//	exit();
	//}  
	


	

	if ($nd == NULL) {
	$nd = "0000000000";
	}
	if ($contactClient == NULL) {
	$contactClient ==  "NULL";
	}
	if ($commentaire ==NULL) {
	$commentaire == "NULL";
	}
	if ($lancementEtude == NULL) {
	$lancementEtude = "non";
	}
	
	$insert_qry = "INSERT INTO `demande_upr` (identifiant_demandeur,date_demande,client,adresse,code_postal,ville,region,nd,latitude,longitude,contact_client,type_offre,motif_offre,type_support,debit_support,revue_lancement,commentaire,date_retour_souhaite) VALUES ('".$nomDemandeur."', '".$dateDemande."', '".$nomClient."', '".$adresse."', '".$codePostal."', '".$ville."', '".$region."', '".$nd."', '".$latitude."', '".$longitude."', '".$contactClient."', '".$typeOffre."','".$motifOffre."' , '".$typeSupport."', '".$debitSupport."', '".$lancementEtude."', '".$commentaire."', '".$dateRetourSouhaite."')";
	//print "Requete SQL : " . $insert_qry;
	$insert_qry_res = $connection->query($insert_qry);
	
	if ($insert_qry_res){
		 //print "Enregistrement reussi de la demande UPR <br/>";
	}else{
		//print "Erreur lors de l'enregistrement de la demande UPR <br/>";
		exit();
	}
	
		//Fermeture de l'acces mysql
		mysql_close();
	 
	 //Redirection UPRNE
     if ($idCodePostal == 21) {   
		require_once('connectionUPRNE.php');

						function connexion($link,$utilisateurUPRNE,$motDePasseUPRNE) { 

						$postfields = array(
								'username' => $utilisateurUPRNE,
								'password' => $motDePasseUPRNE
						);

					   
						$chemin=$_SERVER["DOCUMENT_ROOT"];
						$ch = curl_init();
						curl_setopt($ch, CURLOPT_URL, $link);
						curl_setopt ($ch, CURLOPT_POST, 1);
						curl_setopt ($ch, CURLOPT_POSTFIELDS, $postfields);
						curl_setopt($ch, CURLOPT_COOKIEJAR, $chemin."cookies.txt");
						curl_setopt($ch, CURLOPT_COOKIEFILE, $chemin."cookies.txt");
						curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
						$result = curl_exec ($ch);
						curl_close ($ch);
						return $result;
				}


						function curl($url,$postfields) {
								$useragent = "Mozilla/5.0";
								$referer = $url;
								$chemin=$_SERVER["DOCUMENT_ROOT"];

								//Initialise une session CURL
								$ch = curl_init($url);
								//CURL options
								curl_setopt($ch, CURLOPT_POST, 1);
								//On poste les données du tableau $postfields 
								$cookies=@file_get_contents($chemin.'/cookies.txt');
								preg_match("!phpsessid\s*([0-9A-Za-z]+)!i",$cookies,$out);
								if(isset($out[1])){
										$phpsession=$out[1];
										$postfields["PHPSESSID"] = "".$phpsession."";
								}
								curl_setopt($ch, CURLOPT_COOKIEFILE, realpath($chemin.'cookies.txt'));
								curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
								curl_setopt($ch, CURLOPT_COOKIEJAR, $chemin."cookies.txt");
								curl_setopt($ch, CURLOPT_COOKIEFILE, $chemin."cookies.txt");
								curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
								curl_setopt($ch, CURLOPT_REFERER, $referer);
								curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
								$result = curl_exec($ch);
								curl_close($ch);
								return $result;
							   
						}
							$lienLogin = 'http://login.fr/index.php';
							$lienForm = 'http://formulaire.fr/preetude/ajout_itc.php';
							
							$connexion=connexion($lienLogin,$utilisateurUPRNE,$motDePasseUPRNE);
							/* if(!preg_match('#Username and password do not match#i', $connexion)){ */
								   
									$reponseMail = 'Connexion UPRNE ok.';
									$url = $lienForm;
									$postfields2 = array(
									'client' => "ClientTest",
									'adresse' => "adresseTest",
									'adressecp' => "CodePostaltest",
									'adresseville' => "villeTest",
									'tel' => "telTest",
									'latitude' => "latitudeTest",
									'longitude' => "longitudeTest",
									'nomcorrespcli' => "corespondantClientTest",
									'typoffre' => "typoffreTest",
									'motoffre' => "motoffreTest",
									'typsup' => "typsupTest",
									'debsup' => "debsupTest",
									'urs' => "Test",
									'adurs' => "[email protected]",
									'commentaire' => "Ceci est un test.");
									$page=curl($url,$postfields);
									print_r($page);
										   
							/* }
							else{
									$reponseMail = 'Connexion UPRNE échoué.';
									exit;  
							} */
		
							}
	 else {
	 
		//Pas de redirection
		//Corp du mail  et objet
		$objetMail = "Etude fibre pour un $typeOffre en $zone";
		$lienGoogleMaps = "http://maps.google.com/maps?q=$latitude,$longitude";

            $corpMail = "Bonjour,";

			//Envoie mail
	Try{
				$mailFunction ='From: "test"<test@test>'."\n";
				$mailFunction .='Reply-To: <[email protected]'."\n";
				$mailFunction .='Content-Type: text/html; charset="utf-8"'."\n";
				$mailFunction .='Content-Transfer-Encoding: 8bit';
	
				mail($mailUPR, $objetMail, $corpMail, $mailFunction);
				$reponseMail = 'ok';
			} catch(Exception $e) {
				//print "Impossible d'envoyer le mail car : " . $mailer->ErrorInfo;
				$reponseMail = "Impossible d'envoyer le mail car : " . $mailer->ErrorInfo;
			}
	}
			$array['reponse'] = $reponseMail;
			
			
			echo json_encode($array);
			
			
?>

Re: nouvelle page et pré remplissage formulaire

par ghost5922 » 31 mai 2013, 11:14

Re,

logiquement tu devrai avoir un aperçu de la seconde page si la connexion c'est bien faite

retire la condition pour voir
<?php
function connexion($link,$utilisateurUPRNE,$motDePasseUPRNE) {	

	$postfields = array(
		'username' => $utilisateurUPRNE,
		'password' => $motDePasseUPRNE
	);

	
	$chemin=$_SERVER["DOCUMENT_ROOT"];
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, $link);
	curl_setopt ($ch, CURLOPT_POST, 1);
	curl_setopt ($ch, CURLOPT_POSTFIELDS, $postfields);
	curl_setopt($ch, CURLOPT_COOKIEJAR, $chemin."cookies.txt");
	curl_setopt($ch, CURLOPT_COOKIEFILE, $chemin."cookies.txt");
	curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
	$result = curl_exec ($ch);
	curl_close ($ch); 
	return $result;
}


function curl($url,$postfields) {
	$useragent = "Mozilla/5.0";
	$referer = $url;
	$chemin=$_SERVER["DOCUMENT_ROOT"];

	//Initialise une session CURL
	$ch = curl_init($url);
	//CURL options
	curl_setopt($ch, CURLOPT_POST, 1);
	//On poste les données du tableau $postfields	
	$cookies=@file_get_contents($chemin.'/cookies.txt');
	preg_match("!phpsessid\s*([0-9A-Za-z]+)!i",$cookies,$out);
	if(isset($out[1])){
		$phpsession=$out[1];
		$postfields["PHPSESSID"] = "".$phpsession."";
	}
	curl_setopt($ch, CURLOPT_COOKIEFILE, realpath($chemin.'cookies.txt'));
	curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
	curl_setopt($ch, CURLOPT_COOKIEJAR, $chemin."cookies.txt");
	curl_setopt($ch, CURLOPT_COOKIEFILE, $chemin."cookies.txt");
	curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
	curl_setopt($ch, CURLOPT_REFERER, $referer);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	$result = curl_exec($ch);
	curl_close($ch);
	return $result;
	
}

$connexion=connexion("http://login.fr/index.php",$utilisateurUPRNE,$motDePasseUPRNE);
//if(!preg_match('#Username and password do not match#i', $connexion)){
	
	$reponseMail = 'Connexion UPRNE ok.';
	$url = 'http://formulaire.fr/preetude/ajout_itc.php';
	$postfields2 = array(
	'client' => "ClientTest",
	'adresse' => "adresseTest",
	'adressecp' => "CodePostaltest",
	'adresseville' => "villeTest",
	'tel' => "telTest",
	'latitude' => "latitudeTest",
	'longitude' => "longitudeTest",
	'nomcorrespcli' => "corespondantClientTest",
	'typoffre' => "typoffreTest",
	'motoffre' => "motoffreTest",
	'typsup' => "typsupTest",
	'debsup' => "debsupTest",
	'urs' => "Test",
	'adurs' => "[email protected]",
	'commentaire' => "Ceci est un test.");
	$page=curl($url,$postfields);
	print_r($page);
		
/*}
else{
	$reponseMail = 'Connexion UPRNE échoué.';
	exit;	
}*/

?>

Re: nouvelle page et pré remplissage formulaire

par palladium2014 » 31 mai 2013, 11:11

Merci, j'ai testé et dans firebug je ne vois pas les champs complété. Est-il possible d'ouvrir une nouvelle fenêtre et d'afficher la page du deuxième formulaire?
Merci.

Re: nouvelle page et pré remplissage formulaire

par ghost5922 » 31 mai 2013, 11:00

Re,

test cela
<?php
function connexion($link,$utilisateurUPRNE,$motDePasseUPRNE) {	

	$postfields = array(
		'username' => $utilisateurUPRNE,
		'password' => $motDePasseUPRNE
	);

	
	$chemin=$_SERVER["DOCUMENT_ROOT"];
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, $link);
	curl_setopt ($ch, CURLOPT_POST, 1);
	curl_setopt ($ch, CURLOPT_POSTFIELDS, $postfields);
	curl_setopt($ch, CURLOPT_COOKIEJAR, $chemin."cookies.txt");
	curl_setopt($ch, CURLOPT_COOKIEFILE, $chemin."cookies.txt");
	curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
	$result = curl_exec ($ch);
	curl_close ($ch); 
	return $result;
}


function curl($url,$postfields) {
	$useragent = "Mozilla/5.0";
	$referer = $url;
	$chemin=$_SERVER["DOCUMENT_ROOT"];

	//Initialise une session CURL
	$ch = curl_init($url);
	//CURL options
	curl_setopt($ch, CURLOPT_POST, 1);
	//On poste les données du tableau $postfields	
	$cookies=@file_get_contents($chemin.'/cookies.txt');
	preg_match("!phpsessid\s*([0-9A-Za-z]+)!i",$cookies,$out);
	if(isset($out[1])){
		$phpsession=$out[1];
		$postfields["PHPSESSID"] = "".$phpsession."";
	}
	curl_setopt($ch, CURLOPT_COOKIEFILE, realpath($chemin.'cookies.txt'));
	curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
	curl_setopt($ch, CURLOPT_COOKIEJAR, $chemin."cookies.txt");
	curl_setopt($ch, CURLOPT_COOKIEFILE, $chemin."cookies.txt");
	curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
	curl_setopt($ch, CURLOPT_REFERER, $referer);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	$result = curl_exec($ch);
	curl_close($ch);
	return $result;
	
}

$connexion=connexion("http://login.fr/index.php",$utilisateurUPRNE,$motDePasseUPRNE);
if(!preg_match('#Username and password do not match#i', $connexion)){
	
	$reponseMail = 'Connexion UPRNE ok.';
	$url = 'http://formulaire.fr/preetude/ajout_itc.php';
	$postfields2 = array(
	'client' => "ClientTest",
	'adresse' => "adresseTest",
	'adressecp' => "CodePostaltest",
	'adresseville' => "villeTest",
	'tel' => "telTest",
	'latitude' => "latitudeTest",
	'longitude' => "longitudeTest",
	'nomcorrespcli' => "corespondantClientTest",
	'typoffre' => "typoffreTest",
	'motoffre' => "motoffreTest",
	'typsup' => "typsupTest",
	'debsup' => "debsupTest",
	'urs' => "Test",
	'adurs' => "[email protected]",
	'commentaire' => "Ceci est un test.");
	$page=curl($url,$postfields);
	print_r($page);
		
}
else{
	$reponseMail = 'Connexion UPRNE échoué.';
	exit;	
}

?>