Bonsoir, j'ai commencé à héberger mes fichiers sur mon ftp free.
Aussi,tout fonctionne en local sauf que une fois sur mon serveur, pas moyen d'écrire dans la base de donnée ou de lire ma table classe (alors que j'arrive à lire ma table pour me connecter).
Voici mon code :
Modifié par Joshork12 (05 May 2013 - 22:02)
Aussi,tout fonctionne en local sauf que une fois sur mon serveur, pas moyen d'écrire dans la base de donnée ou de lire ma table classe (alors que j'arrive à lire ma table pour me connecter).
Voici mon code :
<?php
ob_start();
session_start ();
if(empty($_SESSION['Login']))
{
header('Location:authentification.php');
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<link rel="stylesheet" href="style.css" type="text/css" />
<link rel="stylesheet" href="js/apprise.css" type="text/css" />
<meta charset="ISO-8859-1" http-equiv="Content-Type" content="text/html" />
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="js/apprise-1.5.full.js"></script>
<title>Cahier d'école</title>
</head>
<body>
<?php include('entete.php'); ?>
<div id="contenu">
<br /><br />
Bienvenue sur votre interface de création d'exercices de type images cliquables, <?php echo $_SESSION['Login'] ?>.
<br />
Vous n'êtes pas <?php echo $_SESSION['Login'] ?> ? <a href ="deconnexion.php">Déconnectez-vous</a>.
<br />
<hr>
<br /><br />
<div id="formulaire">
<form enctype="multipart/form-data" name="form1" action="formulaire_exercice_images_cliquables.php" method="POST">
<span id="ajout">
<input type="hidden" id="compteur" name="compteur" value="0"> <!-- permet de récupérer le nombre de champs files présents -->
Indiquez si vous souhaitez réaliser un exercice basé sur :
<br /><br />
<div id="bloc1">
<img src="images_site/texte.png" onclick="choix_texte();"></img>
<br />
<label>du texte <input onclick="choix_texte();" name="mode" type="radio" value="texte"/></label>
</div>
<div id="bloc2">
<div>
<img src="images_site/audio.png" onclick="choix_audio();"></img>
</div>
<label>
de l'audio (<a class="info" href="#">?<span>Possibilité d'importer vos propres fichiers audio ou de synthétiser vos saisies.</span></a>)
<input onclick="choix_audio();" name="mode" type="radio" value="audio"/>
</label>
</div>
<div id="bloc3">
<span id="choix_texte">
<br />
Saisissez ci-dessous la question sur laquelle portera votre exercice :
<br /><br />
<input name="question" onKeyup="afficher_bouton_upload();" type="text" size="50" maxlength="50"/>
<br /><br />
</span>
<span id="choix_audio">
<br />
Saisissez ci-dessous la question sur laquelle portera votre exercice :
<br /><br />
<input name="question_audio" onKeyup="afficher_bouton_upload();" type="text" size="50" maxlength="50"/>
<br /><br />
Sélectionnez dans quelle langue devra l'interpréter le synthétiseur :
<br /><br />
<label>français <input id="langue" name="langue" type="radio" value="fr" onclick="afficher_bouton_upload();"/></label>
<label>anglais <input id="langue" name="langue" type="radio" value="en" onclick="afficher_bouton_upload();"/></label>
<br /><br />
<span id="rendu">
<input type="button" value="Rendu" onClick="rendu();"/>
</span>
<br /><br />
<a href="telechargements/audacity-win-2.0.3.exe">télécharger Audacity</a>
<br /><br />
</span>
<span id="champs_fichiers">
Sélectionnez la matière affiliée à votre exercice :
<br /><br />
<select name="matiere" onChange="afficher_bouton_upload();">
<option value="francais" selected>français</option>
<option value="anglais">anglais</option>
<option value="mathematiques">mathématiques</option>
<option value="histoire">histoire</option>
<option value="geographie">géographie</option>
<option value="histoire">histoire</option>
</select>
<br /><br />
Sélectionnez votre classe :
<br /><br />
<select name="classe" onChange="afficher_bouton_upload();">
<?php
$server="sql.free.fr";
$user="cahierecole";
$bdd="cahierecole";
$passw="**********";
$login=mysql_real_escape_string($_SESSION['Login']);
mysql_connect ($server,$user,$passw) or die ("Connexion impossible");
mysql_select_db($bdd);
$onch = mysql_query("SELECT Nom FROM tb_classes WHERE Enseignant ='".$login."'");
while ($row=mysql_fetch_array($onch))
{
echo '<option value="';
echo $row['Nom'];
echo '">';
echo $row['Nom'];
echo '</option>';
}
mysql_close($bdd);
?>
</select>
<br /><br />
Sélectionnez ci-dessous les images qui illustreront votre exercice.<br />Celles-ci ne doivent pas dépasser une résolution de 100x100 pixels et un poids de 1 Mo.<br /> Cochez ensuite sur le côté gauche la case correspondant à l'image valide :<br /><br />
</span>
</div>
</span>
<span id="espacement">
<br />
</span>
<span id="creation">
<input name="add" type=button value="Ajouter un fichier" onclick="create_champ();"/>
</span>
<span id="suppression">
<input name="sup" type=button value="Supprimer un fichier" onclick="supprimer_champ();"/>
</span>
<span id="validation">
<input name="upload" type="submit" value="Valider l'exercice" />
</span>
</form>
</div>
<?php
if (isset($_POST['upload']))
{
$destination = 'temp/';
$destination2 = 'images/';
$poids_max_img = 250000;
$largeur_min_img = 100;
$longueur_min_img = 100;
$taille_maxi = 100000;
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
$erreur = '';
$server="sql.free.fr";
$user="root";
$mdp="";
$bdd="cahierecole";
$question=$_POST['question'];
$question_audio=$_POST['question_audio'];
$check = 0;
$champ_valide = '';
$check_lang = 0;
$langue = '';
$audio = '';
$chemin_acces = '';
$req = '';
$creation_audio = 0;
$fichier_audio = '';
$login = '**********';
$classe = '';
mysql_connect ($server,$user,$login) or die ("Connexion impossible");
mysql_select_db($bdd);
$ti = mysql_query("SELECT num_exercice FROM images_cliquables WHERE num_exercice = (SELECT MAX(num_exercice) FROM images_cliquables)");
$res = mysql_result($ti, 0);
$numero_exercice = $res+1;
if(isset($_POST['classe']))
{
$classe = $_POST['classe'];
}
if(isset($_POST['langue']))
{
$check_lang++;
}
for ($i = 1 ; $i <= $_POST['compteur'] ; $i++) {
${'fichier'.$i} = basename($_FILES['fichier'.$i]['name']);
${'taille'.$i} = filesize($_FILES['fichier'.$i]['tmp_name']);
${'extension'.$i} = strrchr($_FILES['fichier'.$i]['name'], '.');
if(isset($_POST['checkbox'.$i]))
{
$check++;
$champ_valide = $i;
}
if(!$_FILES['fichier'.$i]['error'] == UPLOAD_ERR_NO_FILE)
{
if(!in_array(${'extension'.$i}, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur .= $erreur."Champ ".$i.": l'extension que porte le fichier est incorrecte (.png/.gif/.jpg/.jpeg uniquement).<br />";
}
if(${'taille'.$i}>$taille_maxi) //vérification de la taille du fichier
{
$erreur .= $erreur."Champ ".$i.": le poids du fichier est trop important.<br />";
}
}
else
{
$erreur .= $erreur."Champ ".$i.": il n'y a pas de fichier.<br />";
}
if(empty($erreur) && $i==$_POST['compteur'] && ((!empty($question) && $check_lang==0) XOR (!empty($question_audio) && $check_lang==1)) && $check==1 && $classe!='') //S'il n'y a pas d'erreur, on upload
{
for($u = 1 ; $u <= $_POST['compteur'] ; $u++)
{
if(move_uploaded_file($_FILES['fichier'.$u]['tmp_name'], $destination . ${'fichier'.$u})) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
${'ext'.$u} = strrchr($_FILES['fichier'.$i]['name'], '.');
$query="SELECT * FROM images_cliquables";
$resultat=mysql_query($query);
$tryy = 1;
while (mysql_fetch_array($resultat))
{
$tryy++;
}
//sleep(5);
rename($destination.${'fichier'.$u}, $destination2.$tryy.${'ext'.$u});
$nom = ${'fichier'.$u};
if($u==$champ_valide)
{
$valide="1";
}
else
{
$valide="0";
}
if($check_lang == 1)
{
if($_POST['langue']=="fr")
{
$langue = "fr";
}
if($_POST['langue']=="en")
{
$langue = "en";
}
}
if(!empty($question_audio) && $creation_audio==0)
{
$compt = 1;
$req = mysql_query("SELECT * FROM images_cliquables WHERE q_audio!=''");
while (mysql_fetch_array($req))
{
$compt++;
}
$chemin_acces = "audio/" . $compt . ".mp3";
$audio = urlencode($question_audio);
$mp3 = file_get_contents('http://translate.google.com/translate_tts?tl=' . $langue . '&q=' . $audio);
file_put_contents($chemin_acces, $mp3);
$fichier_audio = $compt . ".mp3";
$creation_audio++;
}
$login=mysql_real_escape_string($_SESSION['Login']);
$matiere = $_POST['matiere'];
mysql_query("INSERT INTO images_cliquables(login, classe, matiere, num_exercice, nom_fichier, question, valide, q_audio, langue, nom_fichier_audio)VALUES('$login', '$classe', '$matiere', '$numero_exercice', '$tryy${'ext'.$u}','$question','$valide','$question_audio','$langue', '$fichier_audio')");
mysql_close($bdd);
if($u==$_POST['compteur'])
{
$erreur .= 'Upload effectué avec succès !<br/>';
}
}
else //Sinon (la fonction renvoie FALSE).
{
$erreur .= 'Echec de l\'upload !<br/>';
}
}
}
else if((isset($erreur) || (empty($question) & (empty($question_audio))) || (!empty($question) & (!empty($question_audio))) || 1<$check || $check==0) && $i==$_POST['compteur'])
{
if(empty($question) && empty($question_audio))
{
$erreur .= "Veuillez saisir votre question.</br />";
}
if(!empty($question) && !empty($question_audio))
{
$erreur .= "Vous ne pouvez saisir une question que dans un seul champ.</br />";
}
if($check==0)
{
$erreur .= "Veuillez indiquer une réponse.<br />";
}
if(1<$check)
{
$erreur .= "Veuillez indiquer une et une seule réponse uniquement.<br />";
}
if(!(isset($_POST['checkbox_fr']) XOR (isset($_POST['checkbox_en']))) && !empty($question_audio))
{
$erreur .= "Veuillez indiquer une (et une seule) langue.";
}
if (!empty($question) && $check_lang==1)
{
$erreur .= "Vous n'avez pas à indiquer la langue pour du texte.";
}
}
}
header("Location: exercice_upload.php?upload=".urlencode($erreur));
ob_end_flush();
}
?>
<br /><br />
<hr>
<br /><br />
</div>
<?php include('pied_de_page.php'); ?>
<script src="javascript.js"></script>
</body>
</html>
tab = ["0","0","0","0","0","0"];
function test(id)
{
if (id == 1) {
alert("Bien joué !");
}
else {
alert("Mauvaise réponse.");
}
}
function create_champ()
{
if(document.getElementById("compteur").value < 6)
{
document.getElementById("compteur").value = eval(Number(document.getElementById("compteur").value) + 1);
var ajout = document.getElementById("ajout");
var checkbox = document.createElement("input");
checkbox.setAttribute('id','checkbox' + document.getElementById("compteur").value);
checkbox.setAttribute('name','checkbox' + document.getElementById("compteur").value);
checkbox.setAttribute('onClick','afficher_bouton_upload();');
checkbox.type = "checkbox";
ajout.appendChild(checkbox);
var input = document.createElement("input");
input.setAttribute('id','fichier' + document.getElementById("compteur").value);
input.setAttribute('name','fichier' + document.getElementById("compteur").value);
input.setAttribute('type','file');
input.setAttribute('onchange','verifier_fichier(this); afficher_bouton_upload();');
ajout.appendChild(input);
var br = document.createElement("br");
ajout.appendChild(br);
if(document.getElementById("compteur").value >= 3 && document.getElementById("compteur").value < 6)
{
document.form1.add.disabled=false;
}
else
{
document.form1.add.disabled=true;
}
if(document.getElementById("compteur").value > 3)
{
document.form1.sup.disabled=false;
}
else
{
document.form1.sup.disabled=true;
}
afficher_bouton_upload();
}
}
function supprimer_champ()
{
if(document.getElementById("compteur").value > 3)
{
document.getElementById("compteur").value = eval(Number(document.getElementById("compteur").value) - 1);
var ajout = document.getElementById("ajout");
ajout.removeChild(ajout.lastChild);
ajout.removeChild(ajout.lastChild);
ajout.removeChild(ajout.lastChild);
if(document.getElementById("compteur").value < 6)
{
if(document.getElementById("compteur").value == 3)
{
document.form1.sup.disabled=true;
}
document.form1.add.disabled=false;
}
afficher_bouton_upload();
}
}
function choix_texte() {
tab = ["0","0","0","0","0","0"];
document.form1.reset();
document.form1.mode[0].checked = true;
document.getElementById("choix_texte").style.display = "block";
document.getElementById("choix_audio").style.display = "none";
document.getElementById("champs_fichiers").style.display = "block";
document.getElementById("creation").style.display = "inline-block";
document.getElementById("suppression").style.display = "inline-block";
document.getElementById("espacement").style.display = "block";
document.getElementById("validation").style.display = "block";
var test = document.getElementById("compteur").value;
for(i=test; i<3; i++) {
create_champ();
}
for(i=test; i>3; i--) {
supprimer_champ();
}
afficher_bouton_upload();
}
function choix_audio() {
tab = ["0","0","0","0","0","0"];
document.form1.reset();
document.form1.mode[1].checked = true;
document.getElementById("choix_texte").style.display = "none";
document.getElementById("choix_audio").style.display = "block";
document.getElementById("champs_fichiers").style.display = "block";
document.getElementById("creation").style.display = "inline-block";
document.getElementById("suppression").style.display = "inline-block";
document.getElementById("espacement").style.display = "block";
document.getElementById("validation").style.display = "block";
var test = document.getElementById("compteur").value;
for(i=test; i<3; i++) {
create_champ();
}
for(i=test; i>3; i--) {
supprimer_champ();
}
afficher_bouton_upload();
}
function recuperer_extension(input)
{
if (input!='')
{
var nom_fichier = input;// on récupere le chemin complet du fichier
var extension = nom_fichier.substring(nom_fichier.lastIndexOf(".")+1);
extension = extension.toLowerCase(); //on uniforme les caractères en minuscule au cas ou cela aurait été écris en majuscule
return extension; // on renvoi l'extension vers la fonction appelante
}
}
function verifier_fichier(input){
//on appelle la fonction permettant de récuperer l'extension du fichier envoyé et on stocke le résultat dans une variable
var i = input.id;
i = i.substr(7, 8);
i=i-1;
var extension = recuperer_extension(input.value);//
var erreur = "";
//on vérifie si l'extension récupérée est valide ou non
if(input.value=='')
{
tab[i]="0";
}
else if(extension!="jpg" && extension!="jpeg" && extension!="gif" && extension!="png" && extension!=undefined){
erreur += "L'extension "+extension+" n'est pas valide.\n Veuillez utiliser des images au format JPEG/GIF/PNG uniquement.";
tab[i]="0";
apprise(erreur);
afficher_bouton_upload();
}
else{
var poids = input.files[0].size;
if(poids > 51200){// si le poids de l'image dépasse 1 Mo
erreur += "Le poids de votre image est trop élevé.\n";
tab[i]="0";
}
var fichier = input.files[0];
window.URL = window.URL || window.webkitURL;
img = new Image();
img.onload = function(){
var bool = bool;
if(img.width >= 100 && img.height >= 100){
erreur += "La résolution de votre image est incorrecte.";
tab[i]="0";
}
if(erreur!=0) {
apprise(erreur);
}
else if(erreur=='')
{
tab[i]="1";
}
afficher_bouton_upload();
}
img.src = window.URL.createObjectURL(fichier);
}
}
function afficher_bouton_upload() {
if(document.form1.mode[0].checked)//si l'utilisateur a sélectionné la checkbox texte
{
var test = 0;
if(form1.question.value!='') {
test++;
}
var champs = document.getElementById("compteur").value;
var checkbox = 1;
while(checkbox<=champs)
{
if(document.getElementById('checkbox'+checkbox).value!=0)
{
if(document.getElementById('checkbox'+checkbox).checked==true)
{
test++;
}
}
checkbox++;
}
var champ_valide = 0;
for(var i=0; i < tab.length; i++) {
champ_valide += Number(tab[i]);
}
if(test==2 && champ_valide==champs) {
document.form1.upload.disabled=false;
}
else
{
document.form1.upload.disabled=true;
}
}
else if(document.form1.mode[1].checked)//si l'utilisateur a sélectionné la checkbox audio
{
var test = 0;
if(form1.question_audio.value!='') {
test++;
}
var champs = document.getElementById("compteur").value;
var checkbox = 1;
while(checkbox<=champs)
{
if(document.getElementById('checkbox'+checkbox).value!=0)
{
if(document.getElementById('checkbox'+checkbox).checked==true)
{
test++;
}
}
checkbox++;
}
var champ_valide = 0;
for(var i=0; i < tab.length; i++) {
champ_valide += Number(tab[i]);
}
if(document.form1.langue[0].checked==true ^ document.form1.langue[1].checked==true)
{
test++;
}
if(test==3 && champ_valide==champs) {
document.form1.upload.disabled=false;
}
else
{
document.form1.upload.disabled=true;
}
}
}
function rendu() {
var texte = document.form1.question_audio.value;
//texte = encodeURIComponent(texte);
texte = encodeURIComponent(texte).replace(/%20/g, "+");
if(document.form1.langue[0].checked)
{
var langue = "fr";
}
else if(document.form1.langue[1].checked)
{
var langue = "en";
}
if(texte!= '' && langue!='')
{
var url = 'http://translate.google.com/translate_tts?tl=' + langue +'&q=' + texte;
window.open(url, 'rendu', config='height=100, width=400, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, directories=no, status=no');
}
else
{
apprise("Question et/ou langue manquantes.");
}
}
[/i][/i][/i][/i][/i][/i][/i] Modifié par Joshork12 (05 May 2013 - 22:02)