Problème avec Ajax

Fermé
Chester0101 - 5 mai 2011 à 10:01
boly38 Messages postés 267 Date d'inscription mercredi 23 février 2011 Statut Membre Dernière intervention 29 septembre 2016 - 5 mai 2011 à 11:04
Bonjour,
Je demande encore une fois votre aide pour une chose qui m'est encore dur à maitriser : Ajax.
Dans mon cas le xml n'est pas traiter, mais je souhaite en faite exécuter un script php de façon à voir un message d'attente pendant que le script s'exécute et qu'après son exécution, un autre soit lancer ( manuellement ou automatiquement ). Je n'en suis pas encore là, je ne prend en compte pour le moment que un script php, or lorsque j'exécute ma page ( avec ma fonction Ajax ) j'ai bien un bouton pour exécuté le script, mais il ne m'éxécute pas le script. est-ce un problème de droit ou autre, je ne sais pas, en attendant voici mon code :

--------------------------------------------------------------------------------------------------------------------------------------------

<?php session_start() ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">

<head>

<script type="text/javascript">
function ajax(site){
var xhr=null;

if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}

xhr.open("GET", site, false);
xhr.send(null);

// ou un alert
alert(xhr.responseText);
}
</script>

<title>Installation d'une application en mode SAAS</title>

<link rel="stylesheet" media="screen" type="text/css" title="Design" href="design.css" />
</head>


<body bgcolor=#4777cc>
<!-- En Tete -->

<div id="en_tete">
<p> <a href="http://www.scoqi.fr"><img src="scoqi.gif" class="logo" alt="logo Scoqi" title="scoqi.fr" /></a></p>
<div class="texte"><center><h2>Installation d'une application <br /> en mode SAAS</h2></center></div>
</div>

<!-- Progression -->

<div id="progress">
<div class= "element_prog">
<h3><center>Progression de l'installation</center></h3>
<ul>
<li>Identification</li>
<li>Installation Database et Répertoire</li>
<li>Paramétrage</li>
<li><strong>Installation du logiciel</strong></li>
</ul>
</div>
<br />
<?php include("memento.php"); ?>
</div>

<!-- Le corps -->
<div id="corps">

<?php
if($_POST['database'] == $_SESSION['nomDB'] && $_POST['login'] == $_SESSION['user'] && $_POST['mdp'] == $_SESSION['mdp'])
{

$page = file_get_contents("http://www.scoqi.fr/portail_client/lien/ctrl_liveupdate.php?s=" .$_SESSION['numSerie']. "&v=0"); // num de version mit à 0, à changer si changement futur

$tab=explode("<||>", $page);
$tabfinal=array();
foreach ($tab as $ligne)
{
$tabfinal[]=explode('|=|',$ligne);
}

$tailletab = sizeof($tab);

for($i = 0; $i <= $tailletab; $i++ ){

if( $tabfinal[$i][0] == "URL"){

$url = $tabfinal[$i][1];
}

if( $tabfinal[$i][0] == "MD5" ){

$md5 = $tabfinal[$i][1];
}
}

copy("$url", '../' .$_SESSION['nomDB']. '/' .$_SESSION['appli']. '.zip'); //ne pas oublier de faire un test

if(md5_file('../'.$_SESSION['nomDB']. '/' .$_SESSION['appli']. '.zip') != "$md5")
{
echo "<br />";
echo "Attention, code MD5 différent du fichier source. Le fichier risque d'être corrompu...";
}
$dir=$_SESSION['nomDB'];
$sql=$_POST['typeSQL'];
$serveur=$_POST['serveur'];
$database=$_POST['database'];
$login=$_POST['login'];
$mdp=$_POST['mdp'];

echo "création du fichier config.php";
touch("../$dir/config/config.php");
$fp = fopen("../$dir/config/config.php", "w"); // création ( sauf s'il existe ) et ouverture du fichier en write
@chmod( "../$dir/config/config.php", 0777);
fputs($fp, "<?php \n");
fputs($fp, "//Fait le " .date(dmY). "\n");
fputs($fp, "// Type de serveur SQL, les choix possibles sont : mysql \n");
fputs($fp, '$cfg_typeSQL="mysql";');
fputs($fp, "\n");
fputs($fp, "// Nom du serveur SQL \n");
fputs($fp, '$cfg_serveurSQL="' .$serveur. '";');
fputs($fp, "\n");
fputs($fp, "// Nom de la database SQL \n");
fputs($fp, '$cfg_databaseSQL="' .$database. '";');
fputs($fp, "\n");
fputs($fp, "// Login de connexion SQL \n");
fputs($fp, '$cfg_loginSQL="' .$login. '";');
fputs($fp,"\n");
fputs($fp, "// mot de passe de connexion SQL \n");
fputs($fp, '$cfg_passeSQL="' .$mdp. '";');
fputs($fp, "\n");
fputs($fp, "?>");
fclose($fp);

echo "<br />";

$zip = new ZipArchive;
$res = $zip->open("../$dir/" .$_SESSION['appli']. ".zip"); // A modifier, certainement prendre le nom de l'appli dans la DB-ici, $_SESSION['appli'] est en minuscule
if ($res === TRUE) {
$zip->extractTo("../$dir"); //décompression de l'archive zipdans le répertoire de l'appli
$zip->close();
echo "Archive décompressée"; // à retirer lors de la mise en place final
} else {
echo "Archive non décompressée"; // idem
}

$copy=copy("./Utiles/insmaj.php", "../$dir/install/insmaj.php");
if($copy=="TRUE")
{







}

}else{
echo "Mauvais identifiant";
}
echo '<form action="" method="post" name="post" onsubmit="">
<input onclick="ajax(http://localhost/scoqi/projet/' .$_SESSION['nomDB']. '/install/insmaj.php)" name="name" value="" type="submit">
</form>';

?>

</div>

<!-- Pied de page -->

<div id="pied_page">
SCOQI© Copyright <?php echo date(Y); ?>
</div>



</body>

</html>
--------------------------------------------------------------------------------------------------------------------------------------------

je vous remercie d'avance de votre aide futur.
Cordialement,

2 réponses

boly38 Messages postés 267 Date d'inscription mercredi 23 février 2011 Statut Membre Dernière intervention 29 septembre 2016 80
5 mai 2011 à 10:31
bonjour,
est-ce que la console d'erreur dit quelque chose ?
est-ce que la console Firebug dit quelque chose ?

sinon je vois que l'url utilisée est absolue :
http://localhost/scoqi/projet...

il faudrait tenter une url relative
/scoqi/projet/...

je dit çà car les appel ajax http vers un autre domaine que la page affichée sont interdits par le navigateur (bon là çà ne s'applique peut être pas vu que tout est sur localhost je suppose?) .. à voir...
0
Tout est en local oui, mais même en mettant le chemin relatif cela ne fonctionne pas. Apparemment le problème viendrait de mon if else ( qui termine par un echo "Mauvaise identifiant" ) qui affiche justement mauvaise identifiant à chaque fois que j'appui. Il n'y aurait t'il pas un moyen d'exécuter le script sans le bouton? car le submit me gène en faite :).
0
boly38 Messages postés 267 Date d'inscription mercredi 23 février 2011 Statut Membre Dernière intervention 29 septembre 2016 80
5 mai 2011 à 11:04
oui en remplaçant "submit" par "button", il ne validera pas le form
0