begin process at 2012 05 31 17:20:54
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Général

 > 

Récupèrer les donnés d'un formulaire sans recharger la page


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Récupèrer les donnés d'un formulaire sans recharger la page

lundi 9 janvier 2012 à 11:41:33 | Récupèrer les donnés d'un formulaire sans recharger la page

blackshadows

Bonjour,
J'ai besoin d'aide j'ai un script d'upload d'images(VISIBLE ICI).Mon problème est que je voudrais que l'upload et la suppression se passe dans une iframe pour ne pas recharger la page et de faite perdre la saisi dans la textarea entre autre. J'ai essayé plusieurs pour ne pas dire toutes les solution proposé sur le web mais je n'arrive pas à les intégrer a mon script... aidez-moi SVP sa fait + d'un mois que je suis dessus je n'y arrive pas! D'avance un grand merci!


Code PHP :
<?php
$errors=null;
$destpath='uploads/';
if(!file_exists($destpath) || !is_dir($destpath)){
$destpath=mkdir($destpath);
}else{
chmod($destpath,0755);
}

/*effacemment de la prevu*/
if(isset($_GET['del']) && (string)$_GET['del']!=''){

$filesext=end(explode('.',$_GET['del']));
$extensions_autorisees = array('jpg','jpeg','pjpg','pjpeg','jpg','png','gif','tiff', 'tif');
if(in_array($filesext,$extensions_autorisees)){
}else{
$errors.='PAS BON !';
exit($errors);
}

$file=$_GET['del'];
$file1=end(explode('/',$file));
$file=$destpath.'/'.$file1;
  
  if(file_exists($file) && $file!='index.php' && $file!='.htaccess'){
  
     if(@unlink($file)){
     //echo $file1.' efface <br>';
     //sleep(2);
     header('Location: index.php');exit; 
     }else{
     //rien
     }
  
  }else{
  //rien
  }

}else{
//rien
}


/******************************************************************************/
if(isset($_FILES['uploadFile'])){
$filename = $_FILES['uploadFile']['name'];
$path = pathinfo($filename);
$filesext = $path['extension'];
$filesext = strtolower($filesext);
$destpath='uploads/';
$extensions_autorisees = array('jpg','jpeg','pjpg','pjpeg','jpg','png','gif','tiff', 'tif');


if ($_FILES['uploadFile']['error'] <= 0){
}else{
$errors.='Erreur lors de l\'upload image<br>';
//exit($errors);
}

if ($_FILES['uploadFile']['size'] <= 4194304){
}else{
$errors.='L\'image est trop lourde<br>';
//exit($errors);
}

if(in_array($filesext,$extensions_autorisees)){
}else{
$errors.='Le type MIME de l\'image n\'est pas bon<br>';
//exit($errors);
}

$img = @getimagesize($_FILES['uploadFile']['tmp_name']);

// print_r($img);
   
    if($filesext==='jpg' && ($img['mime']==='image/jpg' || $img['mime']==='image/jpeg' || $img['mime']==='image/pjpeg') && $img[0]>100){
    $jpgimg = imagecreatefromjpeg($_FILES['uploadFile']['tmp_name']);
    $tjpgimg = getimagesize($_FILES['uploadFile']['tmp_name']);
    $newlarg = 100; 
    $newhaut = ( ($tjpgimg[1] * (($newlarg)/$tjpgimg[0])) );
    $newjpgimg = imagecreatetruecolor($newlarg,$newhaut) or die ("Erreur");
    imagecopyresampled($newjpgimg,$jpgimg,0,0,0,0,$newlarg,$newhaut,$tjpgimg[0],$tjpgimg[1]);
    imagedestroy($jpgimg);
    $filerename = 'fichier_du_'.date('YmdHis').'.'.$filesext;
    imagejpeg($newjpgimg,$_SESSION['f']=$f=$destpath.'/'.$filerename,100);       
    $f='<script>uploadEnd(\'ok\',\''.urlencode($f).'\');</script>';
    }
    
    elseif($filesext==='png' && ($img[0]<100 && $img['mime']==='image/png' || $img['mime']==='image/x-png') && $img[0]>100){
    $pngimg = imagecreatefrompng($_FILES['uploadFile']['tmp_name']);
    $tpngimg = getimagesize($_FILES['uploadFile']['tmp_name']);
    $newlarg = 100;
    $newhaut = ( ($tpngimg[1] * (($newlarg)/$tpngimg[0])) );
    $newpngimg = imagecreatetruecolor($newlarg,$newhaut) or die ("Erreur");
	$trans_colour = imagecolorallocatealpha($newpngimg, 0, 0, 0, 127);
    imagefill($newpngimg, 0, 0, $trans_colour);
	imagesavealpha($newpngimg, true);
    imagecopyresampled($newpngimg,$pngimg,0,0,0,0,$newlarg,$newhaut,$tpngimg[0],$tpngimg[1]);
    imagedestroy($pngimg);
    $filerename = 'fichier_du_'.date('YmdHis').'.'.$filesext;
	imagepng($newpngimg, $_SESSION['f']=$f=$destpath.'/'.$filerename,0);             
    $f='<script>uploadEnd(\'ok\',\''.urlencode($f).'\');</script>';
     }
    
    elseif($filesext==='gif' && ($img['mime']==='image/gif') && $img[0]>=100){
    $gifimg = imagecreatefromgif($_FILES['uploadFile']['tmp_name']);
    $tgifimg = getimagesize($_FILES['uploadFile']['tmp_name']);
    $newlarg = 100;
    $newhaut = ( ($tgifimg[1] * (($newlarg)/$tgifimg[0])) );
    $newpngimg = imagecreatetruecolor($newlarg,$newhaut) or die ("Erreur");
    imagecopyresampled($newgifimg,$gifimg,0,0,0,0,$newlarg,$newhaut,$tgifimg[0],$tpngimg[1]);
    imagedestroy($gifimg);
    $filerename = 'fichier_du_'.date('YmdHis').'.'.$filesext;
    imagegif($newgifimg, $_SESSION['f']=$f= $destpath.'/'.$filerename,0);
	$f='<script>uploadEnd(\'ok\',\''.urlencode($f).'\');</script>';             
     }

	elseif($filesext==='jpg' || $filesext==='gif' || $filesext==='tiff' || $filesext==='tif' || ($img['mime']==='image/jpg' || $img['mime']==='image/jpeg' || $img['mime']==='image/pjpeg'|| $img['mime']==='image/gif' || $img['mime']==='image/tiff' || $img['mime']==='image/tif' ) && $img[0]<=100){
	$destpath = dirname(__FILE__)."/uploads/";
	$filerename = 'fichier_du_'.date('YmdHis').'.'.$filesext;
	move_uploaded_file($_FILES['uploadFile']['tmp_name'], $_SESSION['f']=$f=$destpath.'/'.$filerename);
	$f='<script>uploadEnd(\'ok\',\''.urlencode($f).'\');</script>';          
	}
	
	elseif($filesext==='tiff' || $filesext==='tif' && ($img['mime']==='image/tiff' || $img['mime']==='image/tif') && $img[0]>=100){
	$destpath = dirname(__FILE__)."/uploads/";
	$filerename = 'fichier_du_'.date('YmdHis').'.'.$filesext;
	move_uploaded_file($_FILES['uploadFile']['tmp_name'], $_SESSION['f']=$f=$destpath.'/'.$filerename);
	$f='<script>uploadEnd(\'ok\',\''.urlencode($f).'\');</script>';          
	}	
     
	elseif($filesext==='png' && ($img[0]<100 && $img['mime']==='image/png' || $img['mime']==='image/x-png') && $img[0]<=100){    
    $pngimg = imagecreatefrompng($_FILES['uploadFile']['tmp_name']);
    $tpngimg = getimagesize($_FILES['uploadFile']['tmp_name']);
    $newpngimg = imagecreatetruecolor($tpngimg[0],$tpngimg[1]) or die ("Erreur");
	$trans_colour = imagecolorallocatealpha($newpngimg, 0, 0, 0, 127);
    imagefill($newpngimg, 0, 0, $trans_colour);
	imagesavealpha($newpngimg, true);
    imagecopyresampled($newpngimg,$pngimg,0,0,0,0,$tpngimg[0], $tpngimg[1], $tpngimg[0], $tpngimg[1]);
    imagedestroy($pngimg);
    $filerename = 'fichier_du_'.date('YmdHis').'.'.$filesext;
    imagepng($newpngimg, $_SESSION['f']=$f=$destpath.'/'.$filerename,0);
	$f='<script>uploadEnd(\'ok\',\''.urlencode($f).'\');</script>';             
    }
	

    
    else{
    $f=$errors;
    }
        
           
}else{
}      	
?>




Code HTML :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

<title>Document sans titre</title>
<link href="/default/style.css" rel="stylesheet" type="text/css" />
<link href="style.css" rel="stylesheet" type="text/css" />
</head>





Code Javascript :
<script type="text/javascript">
<!-- 
function urldecode (str) {
//http://phpjs.org/functions/urldecode:572
return decodeURIComponent((str + '').replace(/\+/g, '%20'));
}

function uploadInit() {
// Je pré-charge l'image
var oLoading = new Image();
oLoading.src = "loading.gif";
}

function uploadRun() {
document.getElementById("uploadStatus").innerHTML="<img src=\"./loading.gif\" alt=\"OK...\" width=\"50\" height=\"50\" />";
document.getElementById("uploadForm").submit();
document.getElementById("uploadSubmit").disabled=true;
return true;
}                     

function uploadEnd(sError, sPath) {
if(sError=='ok'){
document.getElementById('uploadStatus').innerHTML='<img src=\"'+urldecode(sPath)+'\" /><br><a href="?del='+urldecode(sPath)+'">Delete</a>';


document.getElementById("uploadSubmit").disabled=false;
}else{
document.getElementById("uploadStatus").innerHTML='';
document.getElementById("uploadSubmit").disabled=true;
}
}

function goTextarea(variable){
//alert(variable);
document.getElementById("texte").innerHTML = "[img]"+variable+"[/img]"+document.getElementById("texte").value;
}

function viderTextarea(){
document.getElementById("texte").innerHTML='';
document.getElementById("Previsualisation").innerHTML='';
}

//-->
</script> 

<script language="javascript" type="text/javascript" src="files/checkbb.js"></script>




Code HTML :
</head>
<body onUnload="uploadInit();">




<form name="formul" id="formul">
    
    
    <p>Entrez un texte :</p>
    
    
    <!--<textarea name="message" id="message" rows="10" cols="98" id="message"></textarea>-->
    
     <textarea name="texte" rows="10" cols="98" id="texte"></textarea>

</form>

 <!--////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
 
<!--<form id="uploadForm" enctype="multipart/form-data" target="_self" method="post"> -->

<form id="uploadForm" enctype="multipart/form-data" target="_self" method="post" value="4194304">

<p>&nbsp;</p>

<!--<p><input id="uploadFile" name="uploadFile" accept="image/jpeg,image/pjpeg,image/gif,image/png,image/x-png, image/tiff" type="file" onChange="uploadRun();" /><input  id="uploadSubmit" type="submit" value="t&eacute;l&eacute;charger" /></p> -->
 
 
<p><input id="uploadFile" name="uploadFile" accept="image/jpeg,image/pjpeg,image/gif,image/png,image/x-png, image/tiff, image/tif" type="file"  /> <input  id="uploadSubmit" onChange="uploadRun();" type="submit" value="t&eacute;l&eacute;charger" /></p>


<p><div align="left" class="vert" id="uploadStatus"></div></p>




Code PHP :
<?php
$uppath='uploads/';
$result=scandir($uppath);
$host='http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
$host=str_replace('index.php','',$host);
$host=$host.$uppath;

$v=null;

foreach($result as $k => $v){
  
  if($v=='..' || $v=='.' || $v=='Thumbs.db'|| $v=='index.php'){
  $v.='';
  }else{
  echo '<table width="66%" >


<tr>
				<td width="14%"><img src="'.$host.$v.'" width="30" /></td>
  				<td width="30%"><input type="button" value="Ajouter" onclick="goTextarea(\''.$host.$v.'\');"  onmouseover="aff_expl(\'Ajoute votre image a votre message\', \'expl\');" onmouseout="mask_expl(\'expl\');" /></td>
		<td width="56%"><div align="left"><a href="?del='.$v.'"><img src="/test/bt_del.png"></a></div></td>
	</tr>
		</table> <hr>';


  }

}
?>





Code HTML :
</form>

<!--////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -->

<form name="Prévisualise" id="Prévisualiser">

<input type="button" value="Prévisualiser"
    onclick="visualisation()"> <input type="checkbox" name="auto"
    value="ON" onClick="automatique()"
    onmouseover="this.form.auto.value='checked'"> Auto </p>
<input type="reset" value="vider" onClick="viderTextarea();">

</form>

<!--////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -->

<span id="previsualisation"></span>

<p>&nbsp; </p>

</body>
</html>



checkbb.js:


Code Javascript :
// JavaScript Auteur: http://tofem.net/ressources
var timer=0;
var ptag=String.fromCharCode(5,6,7);
function  visualisation() {
	t=document.formu.texte.value  
	t=code_to_html(t)
	if (document.getElementById) document.getElementById("previsualisation").innerHTML=t
	if (document.formu.auto.checked) timer=setTimeout(visualisation,1000)
}
function automatique() {
	if (document.formu.auto.checked) visualisation()
}
function code_to_html(t) {
	t=nl2khol(t)
// balise Gras
	t=deblaie(/(\[\/b\])/g,t)
	t=remplace_tag(/\[b\](.+)\[\/b\]/g,'<b>$1</b>',t)  
	t=remblaie(t)
// balise Italique
	t=deblaie(/(\[\/i\])/g,t)
	t=remplace_tag(/\[i\](.+)\[\/i\]/g,'<i>$1</i>',t)  
	t=remblaie(t)
// balise Underline
	t=deblaie(/(\[\/u\])/g,t)
	t=remplace_tag(/\[u\](.+)\[\/u\]/g,'<u>$1</u>',t)  
	t=remblaie(t)
// balise quote
	t=deblaie(/(\[\/quote\])/g,t)
	t=remplace_tag(/\[quote\](.+)\[\/quote\]/g,'<p class="quote">$1</p>',t)  
	t=remblaie(t)
// balise code	
	t=remplace_tag(/\[code\](.+)\[\/code\]/g,'<code>$1</code>',t)  
// balise Img
	t=deblaie(/(\[\/img\])/g,t)
	t=remplace_tag(/\[img\](.+)\[\/img\]/g,'<img src="$1"/>',t)
	t=remblaie(t)
// balise URL	
	t=remplace_tag(/\[url=([^\s<>]+)\]/g,'<a href="$1" target="_blank" class="critique_lire">',t)
	t=remblaie(t)

	t=remplace_tag(/\[url\]([^\s<>]+)\[\/url\]/g,'<a href="$1" target="_blank" class="critique_lire">$1</a>',t)
	t=remblaie(t)

	t=remplace_tag(/\[\/url\]/g,'</a>',t)
	t=remblaie(t)
// balise Color	
	t=deblaie(/(\[\/color\])/g,t)
	t=remplace_tag(/\[color=(#[a-fA-F0-9]{6})\](.+)\[\/color\]/g,'<font color="$1">$2</font>',t)
	t=remblaie(t)
// balise size	
	t=deblaie(/(\[\/size\])/g,t)
	t=remplace_tag(/\[size=([+-]?[0-9])\](.+)\[\/size\]/g,'<font size="$1">$2</font>',t)
	t=remblaie(t)
	t=unkhol(t)
	t=nl2br(t)
	return t
}
function deblaie(reg,t) {
	texte=new String(t);
	return texte.replace(reg,'$1\n');
}
function remblaie(t) {
	texte=new String(t);
	return texte.replace(/\n/g,'');
}
function remplace_tag(reg,rep,t) {
	texte=new String(t);
	return texte.replace(reg,rep);
}
function nl2br(t) {
	texte=new String(t);
	return texte.replace(/\n/g,'<br/>');
}
function nl2khol(t) {
	texte=new String(t);
	return texte.replace(/\n/g,ptag);
}
function unkhol(t) {
	texte=new String(t);
	return texte.replace(new RegExp(ptag,'g'),'\n');
}




lundi 9 janvier 2012 à 16:26:27 | Re : Récupèrer les donnés d'un formulaire sans recharger la page

cod57

Réponse acceptée !
bonjour

1 mois tu es obstiné ...

tu dois séparer le form upload du form du textarea
oublie les scripts ajax ça marche pas bien

tu utilises onchange dans le form d'upload

ex 1 :

test.php

Code PHP :
<?php
session_start();
if(isset($_SESSION['p1']) && !empty($_SESSION['p1'])){
echo '<pre>';
print_r($_SESSION['p1']);
echo '</pre>';
}else{
}
?>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file"  name="p1" onchange="submit(this.value);">
</form>

<form action="test.php" method="post"">
<textarea cols="51" rows="5"></textarea>
<br>
<input type="submit" value="go">
</form>


upload.php

Code PHP :

<?php
session_start();
/*
echo '<pre>';
print_r($_FILES['p1']);
echo '</pre>';
*/

if(isset($_FILES['p1']) && !empty($_FILES['p1']) ){
$_SESSION['p1']=$_FILES['p1'];
/*tu uploades et stocke le name du file dans une autre session si tu renome */
header('Location: test.php');exit;
}else{
header('Location: test.php');exit;
}
?>




prevu

<img src="image.php"> dans test.php

image.php contient un script php qui affiche l'image que tu as mis sur ton serveur le nom est stocké dans une variable de session par le script d'upload

comme j'ai fait avec upload tu peux avoir un second fichier.php

qui contient les post du deuxieme form

et qui renvoit a test si erreur

++



Bonne programmation !
mardi 10 janvier 2012 à 10:40:21 | Re : Récupèrer les donnés d'un formulaire sans recharger la page

blackshadows


Bonjour cod57,
Je te remercie infiniment, Je vais essayé de mettre en pratique ta réponse, mais je t'avoue que je ne suis pas sûr d'y arriver. Dans mon scripte final il y a déjà une session ouverte, puis en dehors des soucis de mise en page(car il s'agit au final d'un forum)j'aurais bien aimé conserver une certaine cohérence par rapport à ce que j'ai mis en ligne en exemple. C'est pour tout cela que j'avais pensé a une iframe.

Je te remercie encore et te tiens au courant.
mardi 10 janvier 2012 à 14:10:16 | Re : Récupèrer les donnés d'un formulaire sans recharger la page

cod57

Réponse acceptée !

Bonjour

pas de probs

un exemple plus complet en reprenant une de tes fonctions

en supposant upload/ ce repertoire existe ...

test.php
Code PHP :
<?php
session_start();

$err=null;

if(isset($_SESSION['errors']) && !empty($_SESSION['errors'])){
print_r($_SESSION['errors']);
}

else if(isset($_SESSION['p1']) && !empty($_SESSION['p1'])){
echo '<pre>';
print_r($_SESSION['p1']);
echo '</pre>';

move_uploaded_file($_SESSION['p1']['tmp_name'],$chemin='uploads/'.$_SESSION['p1']['name']);
echo '<img src="uploads/'.$_SESSION['p1']['name'].'" width="150">';
}

else{
}
echo $err;
?>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file"  name="p1" onchange="submit(this.value);">
</form>

<form action="test.php" method="post"">
<input type="hidden" name="cheminlien" value="<?php echo $chemin;?>">

<textarea cols="51" rows="5"></textarea>
<br>
<input type="submit" value="go">
</form>



upload.php
Code PHP :
<?php
session_start();


function checkExtension($file){
$filesext=strtolower(end(explode('.',$file)));
$extensions_autorisees = array('jpg','jpeg','pjpg','pjpeg','jpg','png','gif','tiff','tif');
  
  if(in_array($filesext,$extensions_autorisees)){
  $_SESSION['errors']=null;
  move_uploaded_file($_FILES['p1']['tmp_name'],'uploads/'.$_FILES['p1']['name']);
  return true;
  }else{
  $errors='Extension '.$filesext.' invalide !';
  return $_SESSION['errors']=$errors;
  }

}


/*
echo '<pre>';
print_r($_FILES['p1']);
echo '</pre>';
*/

if(isset($_FILES['p1']) && !empty($_FILES['p1']) && checkExtension($_FILES['p1']['name'])===true){
$_SESSION['p1']=$_FILES['p1'];
header('Location: test.php');exit;
}else{
unset($_SESSION['p1']);
header('Location: test.php');exit;
}
?>





Bonne programmation !


Cette discussion est classée dans : code, texte, document, img, filesext


Répondre à ce message

Sujets en rapport avec ce message

Problème création d'une Iframe pour ne pas recharger la page... [ par blackshadows ] Bonsoir, J'ai besoin d'aide j'ai un script d'upload d'images([url=http://www.fidjiforum.info]visible ici[/url]) créer avec le concour de "CODE57"que j supprimer ligne fichier texte [ par sly784965 ] Bonjour, j'ai le code suivant qui me permet d'afficher le contenu du fichier "affichage.php" via une boucle while : [code=php]<?php Mettre tous les tags img d'un attribut xml dans une array [ par jimmyhendrix ] Salut ! J'ai un problème. J'ai un fichier xml qui contient les articles de mon blog. Donc, j'ai un peu de code html dans un attribut appellé texte qu Insertion d'un texte sur une image avec php [ par maha1987 ] Bonjour, je veux insérer un texte sue une image existante avec php mais le code m'affiche qu'il y a une erreur: [code=php]<?php $nom_image = " Insertion des données erronée dans un formulaire php controlé par une fonction javascript [ par truthhurt87 ] Bonjour a tous, j'ai un problème en ce qui concerne un contrôle de saisie d'un formulaire. function verif_formulaire(){ if ( document.form.code.val comment charger les fichier pdf dans un formulaire php [ par iliastafom ] Bjr je suis entrain de concevoir un application de gestion des archives ou je suis appelé à consulter les page chargé .le probleme c que je ne parvien IFrame et pdf viewer [ par cretthie ] Bonjour, J'ai un petit souci avec un iframe et le reste de la page. Voici mon code : [code=html] Du Text <base problème d'affichage une fichier texte de la base [ par imeneiag ] bonjour, j'ai un menu verticale ,qui affiche les données de la base de données. je veux quand je clic sur un sous menu ,j'affiche une page qui contie Problème de récupération de variable [ par blackshadows ] Bonsoir, Je n'arrive pas à récupérer la variable "$filerename" dans mon formulaire, d'ailleurs je n'arrive pas à récupérer aucune varriable dans mon s tester fichier texte [ par youvalcsharpp ] bonjour , Je voudrai savoir comment tester les 3 derniers caracteres d'un fichier texte jai ce code : [code=php]<?php $verif=@fopen("fichier.txt","r+


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,811 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales