11521 sujets

JavaScript, DOM et API Web HTML5

Bonjour et Bonne Année à toutes et tous.

Jusqu'au début de l'année, avec un script php utilsant curlop (configuré pour l'utilisation des cookies), j'arrivais à me connecter la page d'accueil du site on va sortir et ensuite à consulter "mon journal".
Maintenant ce n'est plus possible.
Depuis j'ai fait de nombreuses tentatives, parcouru pas mal de tuto, en vain.

En utilisation normale, avec n'importe quel navigateur et en donnant l'url dans la barre d'adresse, tout est ok ou presque.
Si je m'identifie en bloquant les scripts javascript du site, avec NoScript 2.6.9.11, j'obtiens soit une page vide, soit une info "site en maintenance".
Si j'autorise l'utilisation des scrpits javascript du site, tout fonctionne correctement.

A mon avis, il doit y avoir quelque chose de charger par le navigateur qui renvoie une information autorisant ou pas l'envoi de la suite du site. Mais je ne suis pas experte, c'est juste une intuition.
J'ai essayé de comprendre les scripts javascript, et je n'ai pas tout compris du tout.

Si vous vous testez de votre côté et que vous trouviez une solution, je vous serai reconnaissante de m'apporter des explications détaillées sur vos recherches que je puisse m'instruire en suivant votre procédure.

Sinon, existe t il un programme sous windows qui permettrait d'enregistrer l'intégralité des échanges entre le navigateur et le site distant ? Si oui, comment fonctionne t il et que devrais-je chercher ?

Par avance Merci de votre attention.

Ci dessous quelques extraits de code.

pour s'identifier sur le site paris on va sortir com
Si vous n'êtes pas parisien, le site existe aussi pour de nombreuses villes.


<form id='connect' action='page_action_connect_new.php' method='post'>
	<tr>
		<td align=right><b>Pseudo</b>&nbsp;&nbsp;</td>
		<td>
			<input type='hidden' name='tok' value='5244de6d8e1f32b4de2f969858ebc7fbecd50a2b'>
			<input type='hidden' name='token2' id='token2' value=''>
			<input size=13 class=NaviBloc_input id='Pseudo' name='Pseudo' value='' type='text'><br>
		</td>
	</tr>
	<tr>
		<td align=right>
			<b>Passe</b>&nbsp;&nbsp;
		</td>
		<td>
			<input size=13 class=NaviBloc_input id='Password' maxlength='20' name='Password' type='password'><br>
		</td>
	</tr>
	<tr>
		<td>&nbsp;
		</td>
		<td>
			<input value='Connexion' type='submit' onclick="if ((document.getElementById('Pseudo').value=='') || (document.getElementById('Password').value=='')) {alert('Merci d\'entrer ton login et ton mot de passe avant de cliquer sur Envoyer.'); return(false);} else {AntiParse();document.getElementById('connect').submit();}"><br>
		</td>
	</tr>
	<tr>
		<td>&nbsp;
		</td>
		<td valign=middle>
			<input type='checkbox' name='Retenir' value='ok'>Se souvenir<br>
		</td>
	</tr>
</form>


La nouvauté est :
<input type='hidden' name='tok' value='5244de4de2f969858e6d8e1f32bbc7fbecd50a2b'>
<input type='hidden' name='token2' id='token2' value=''>

qu'il n'y avait pas avant et je les ai ajouté à curlop.
la valeur de tok change à chaque nouvelle connexion au site, je pense que c'est un peu comme une cession.

en espérant que vous ne le trouverez pas trop pourri, voici mon curlop :

<?php
/**************************************************
Mise en route :
**************************************************/
$url = 'http://paris.onvasortir.com';
$user ='unpseudo';
$word = 'unmotpass';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
if (preg_match('`^https://`i', $url))
{
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
	curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
}
//curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Forcer cURL à utiliser un nouveau cookie de session
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
// Fichier dans lequel cURL va lire les cookies
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookies_file);
$pagehtml = curl_exec($ch);  // fonctionne aussi avec file_get_contents($url);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$debu = $fini = 0;
$cher = "<input type='hidden' name='tok' value='";
$size = strlen($cher);
$debu = strpos($pagehtml,$cher,$debu) + $size;
$cher = "'><input type='hidden' name='token2'";
$fini = strpos($pagehtml,$cher,$debu);
$toke = substr($pagehtml,$debu,$fini - $debu);

/**************************************************
Première requête : Connexion
**************************************************/
$url = 'http://paris.onvasortir.com/page_action_connect_new.php';

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);

if (preg_match('`^https://`i', $url))
{
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
	curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
}

//curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_NOBODY, true);

// Forcer cURL à utiliser un nouveau cookie de session, uniquement à la connexion
//curl_setopt($ch, CURLOPT_COOKIESESSION, true);

curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, array(
	'Pseudo' => $user,
	'Password' => $word,
	'tok' => $toke,
	'token2' => $user,
)); //  'login-submit' => 'Connexion'

// Fichier dans lequel cURL va écrire les cookies
// (pour y stocker les cookies de session)
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookies_file);
$pagehtml = curl_exec($ch);
curl_close($ch);
if(!strpos($pagehtml,"<a href='journal.php'>Mon Journal</a>"))
{	echo '<style>.alert{ color: #f00; }</style><span class="alert">'.$debug.'ERREUR CONNEXION !</span><hr>';
	exit;
}
/**************************************************
	Seconde requête : Récupération du journal
**************************************************/
?>

Pour la récupération du journal, on verra plus tard si elle fonctionne toujours.
Modifié par rose brooks (01 Feb 2015 - 23:24)
Personne pour me donner un avis, pour m'indiquer une piste où chercher, pour corriger/optimiser mon code ? Smiley decu
bonjour
Le mot blocage est flou . si vous empecher javascript coté client et que rien n apparait cela signifie que le rendu intégral de votre page dépend du script .

Si vous voulez tester le protocole de communication ( http / ajax / flash /REST) entre client et serveur il a :
1-les navigateurs ( F12) .
3-fiddle ( gratuit)
doc MS https://msdn.microsoft.com/en-us/library/bb250446%28v=vs.85%29.aspx
download http://www.telerik.com/fiddler
wikipedia :http://en.wikipedia.org/wiki/Fiddler_%28software%29
4-live http header pour firefox
download https://addons.mozilla.org/en-US/firefox/addon/live-http-headers/?src=search
5-live http header pour chrome
download https://chrome.google.com/webstore/detail/live-http-headers/iaiioopjkcekapmldfgbebdclcnpgnlo

pour sauvegarder il ya charles proxy ( payant)

pour comprendre il faut passer du temps mais si le problème doit provenir de javascript .Il faut alors utilisé un outil comme spy-js http://spy-js.com/

Pour hidden ...testez https://addons.mozilla.org/en-US/firefox/addon/view-cookies/?src=search

si vous bloquer javascript , alors les cookies ne peuvent plus être utilisées/crées coté client par javascript. Ces cookies ne sont pas non plus retournés au serveur qui ne les voyant pas affiche le message que vous voyez ( a confirmer ) . Le message n'est pas toujours en relation à la vrai cause .....

cordialement
Modifié par 75lionel (01 Feb 2015 - 19:46)
Merci 75lionel pour les pistes.

Je viens de préciser dans mon premier post le mode de blocage des scripts javascript du site, c'est avec NoScript 2.6.9.11.

Comme c'est juste pour mon confort perso, je n'ai aucune intention d'utiliser un service ou un programme payant.

Je ne pense pas que ça vienne des cookies, car je les gère avec curlop et un dossier spécifique pour ne pas les mélanger. Mais il se pourrais fort que mon curlop soit mal paramétré ou mon script mal conçu.

Je n'utilise pas Chrome (produit google) ni IE. Il me reste sous windows, Firefox et Opéra. Je viens d'installer un petit nouveau : Vivaldi https://vivaldi.com/#Download que n'ai pas encore utilisé.

Je vais donc suivre ces pistes pour trouver comment me connecter à mon compte sur le site "on va sortir" depuis un script php.
Bonjour,

J'ai essayé un tas de choses, mais peut-être que pour vous ce n'est pas grand chose...
Qui pourrait m'expliquer comment il est arrivé à se connecter à son compte OVS à l'aide d'un script en php ?
Je ne demande pas que l'on me donne le code, mais que l'on me dise où regarder et comment pour comprendre quoi et par quels moyens...