par
lucieemtl » 08 janv. 2016, 17:17
Ben en fait j'y suis presque... C'est juste que mon script maintenant ne passe pas par le cas success.
Voici mon code :
La première page : essaiplugin.php (la principale)
Code : Tout sélectionner
<?php
/*
Plugin Name: Essai plugin
Plugin URI: http://zero-plugin.com
Description: Un plugin d'introduction pour le développement sous WordPress
Version: 0.1
Author: Lucie MUTEREL
Author URI: http://votre-site.com
License: GPL2
*/
?>
<!DOCTYPE>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<meta charset="utf-8"/>
<style>
#plugin{
width: 45%;
display: block;
clear: both;
float: left;
margin-top: auto;
margin-left: 25%;
margin-bottom: 5%;
text-align: center;
}
</style>
</head>
<body>
<?php
add_filter('wp_title', 'zero_modify_page_title', 20) ; //Le filtre wp_title...
function zero_modify_page_title($title) { //...est appelé avec la fonction zero_modify_page_title...
return $title . ' | Avec le plugin de Lucie !' ;
} //...et modifie l'attribut <title> sur chaque page comme indiquer ci-avant.
function test($x){
if($x==3){echo '<img src="' . get_bloginfo('template_directory') . '/img/comedia_logo.png" />';}else{echo "MANQUE DU LOGO DE COMEDIA STUDIO : ERREUR !";}
}
$adresseSiteLocale = "/wordpress2";
if(($_GET["post_type"] == "page" and $_SERVER["SCRIPT_NAME"] == $adresseSiteLocale ."/wp-admin/post-new.php") OR ($_SERVER["SCRIPT_NAME"] == $adresseSiteLocale ."/wp-admin/post.php" AND $_GET["post"] AND $_GET["action"]=="edit")){
add_action('admin_footer', 'form_image');
}
?>
<?php
function form_image(){
echo '<div id="plugin">';
include("multiForm.php");
echo '</div>';
}
?>
</body>
</html>
La deuxième : multiForm.php
Code : Tout sélectionner
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div id="multi-msg"></div>
<div class="pluginLucie">
<form name="multiform" id="multiform" action="multi-form-submit.php" method="POST" enctype="multipart/form-data">
<h1 style="font-size: 18px;">Associer une image à cette page ?</h1><hr/><input type="file" name="imageLucie" /><br/>
</form>
<input type="button" id="multi-post" class="myButton" value="Ajouter"></input>
</div>
<script>
$(document).ready(function()
{
$("#multiform").submit(function(e)
{
$("#multi-msg").html("<img src='loading.gif'/>");
var formObj = $(this);
var formURL = formObj.attr("action");
if(window.FormData !== undefined) // for HTML5 browsers
// if(false)
{
var formData = new FormData(this);
$.ajax({
url: formURL,
type: 'POST',
data: formData,
mimeType:"multipart/form-data",
contentType: false,
cache: false,
processData:false,
success: function(data, textStatus, jqXHR)
{
$("#multi-msg").html('<pre><code>'+data+'</code></pre>');
$('#multi-msg').fadeIn(2000);
},
error: function(jqXHR, textStatus, errorThrown)
{
$("#multi-msg").html('<pre><code class="prettyprint">AJAX Request Failed<br/> textStatus='+textStatus+', errorThrown='+errorThrown+'</code></pre>');
}
});
e.preventDefault();
e.unbind();
}
});
$("#multi-post").click(function()
{
$("#multiform").submit();
});
});
</script>
</body>
</html>
Et la dernière : multi-form-submit.php (celle qui envoi les données dans la base de données)
Code : Tout sélectionner
<?php
$bdd = "wordpress2";
$host= "localhost";
$user= "root";
$pass= "";
@mysql_connect($host,$user,$pass) or die("Impossible de se connecter à la base de données");
@mysql_select_db($bdd);
if(!empty($_FILES))
{
$img_name = $_FILES['imageLucie']['name'];
$img_extension = strrchr($img_name, ".");
$extensions_autorisees = array('.png', '.PNG');
$img_tmp_name = $_FILES['imageLucie']['tmp_name'];
$destination="../wp-content/uploads/lucie/";
if(file_exists($destination))
{
if(file_exists($destination . $img_name))
{
echo "Le fichier existe déjà !";
}
}
else{
mkdir($destination, 0777, true);
}
if(in_array($img_extension, $extensions_autorisees))
{
if(move_uploaded_file($img_tmp_name, $destination.$img_name)){
$sql = "INSERT INTO filesLucie(id, nameFile, urlFile) VALUES('','$img_name','$destination$img_name')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
echo '<img src="' . $destination . $img_name .'"/>';
}
else{
echo '<div class=\'pluginLucie\'>Une erreur est survenue lors de l\'envoi du fichier.</div>';
}
}
else{
echo '<div class=\'pluginLucie\'>Veuillez vérifier les extensions acceptées s\'il vous plaît.</div>';
}
}
?>
Vous voyez le deuxième fichier, multiForm.php ? La boucle success ? Et bien mon algorithme pas directement au cas error ...
Voyez-vous même une erreur toute bête ?
Ben en fait j'y suis presque... C'est juste que mon script maintenant ne passe pas par le cas success.
Voici mon code :
La première page : essaiplugin.php (la principale)
[code]<?php
/*
Plugin Name: Essai plugin
Plugin URI: http://zero-plugin.com
Description: Un plugin d'introduction pour le développement sous WordPress
Version: 0.1
Author: Lucie MUTEREL
Author URI: http://votre-site.com
License: GPL2
*/
?>
<!DOCTYPE>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<meta charset="utf-8"/>
<style>
#plugin{
width: 45%;
display: block;
clear: both;
float: left;
margin-top: auto;
margin-left: 25%;
margin-bottom: 5%;
text-align: center;
}
</style>
</head>
<body>
<?php
add_filter('wp_title', 'zero_modify_page_title', 20) ; //Le filtre wp_title...
function zero_modify_page_title($title) { //...est appelé avec la fonction zero_modify_page_title...
return $title . ' | Avec le plugin de Lucie !' ;
} //...et modifie l'attribut <title> sur chaque page comme indiquer ci-avant.
function test($x){
if($x==3){echo '<img src="' . get_bloginfo('template_directory') . '/img/comedia_logo.png" />';}else{echo "MANQUE DU LOGO DE COMEDIA STUDIO : ERREUR !";}
}
$adresseSiteLocale = "/wordpress2";
if(($_GET["post_type"] == "page" and $_SERVER["SCRIPT_NAME"] == $adresseSiteLocale ."/wp-admin/post-new.php") OR ($_SERVER["SCRIPT_NAME"] == $adresseSiteLocale ."/wp-admin/post.php" AND $_GET["post"] AND $_GET["action"]=="edit")){
add_action('admin_footer', 'form_image');
}
?>
<?php
function form_image(){
echo '<div id="plugin">';
include("multiForm.php");
echo '</div>';
}
?>
</body>
</html>[/code]
La deuxième : multiForm.php
[code]<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div id="multi-msg"></div>
<div class="pluginLucie">
<form name="multiform" id="multiform" action="multi-form-submit.php" method="POST" enctype="multipart/form-data">
<h1 style="font-size: 18px;">Associer une image à cette page ?</h1><hr/><input type="file" name="imageLucie" /><br/>
</form>
<input type="button" id="multi-post" class="myButton" value="Ajouter"></input>
</div>
<script>
$(document).ready(function()
{
$("#multiform").submit(function(e)
{
$("#multi-msg").html("<img src='loading.gif'/>");
var formObj = $(this);
var formURL = formObj.attr("action");
if(window.FormData !== undefined) // for HTML5 browsers
// if(false)
{
var formData = new FormData(this);
$.ajax({
url: formURL,
type: 'POST',
data: formData,
mimeType:"multipart/form-data",
contentType: false,
cache: false,
processData:false,
success: function(data, textStatus, jqXHR)
{
$("#multi-msg").html('<pre><code>'+data+'</code></pre>');
$('#multi-msg').fadeIn(2000);
},
error: function(jqXHR, textStatus, errorThrown)
{
$("#multi-msg").html('<pre><code class="prettyprint">AJAX Request Failed<br/> textStatus='+textStatus+', errorThrown='+errorThrown+'</code></pre>');
}
});
e.preventDefault();
e.unbind();
}
});
$("#multi-post").click(function()
{
$("#multiform").submit();
});
});
</script>
</body>
</html>[/code]
Et la dernière : multi-form-submit.php (celle qui envoi les données dans la base de données)
[code]<?php
$bdd = "wordpress2";
$host= "localhost";
$user= "root";
$pass= "";
@mysql_connect($host,$user,$pass) or die("Impossible de se connecter à la base de données");
@mysql_select_db($bdd);
if(!empty($_FILES))
{
$img_name = $_FILES['imageLucie']['name'];
$img_extension = strrchr($img_name, ".");
$extensions_autorisees = array('.png', '.PNG');
$img_tmp_name = $_FILES['imageLucie']['tmp_name'];
$destination="../wp-content/uploads/lucie/";
if(file_exists($destination))
{
if(file_exists($destination . $img_name))
{
echo "Le fichier existe déjà !";
}
}
else{
mkdir($destination, 0777, true);
}
if(in_array($img_extension, $extensions_autorisees))
{
if(move_uploaded_file($img_tmp_name, $destination.$img_name)){
$sql = "INSERT INTO filesLucie(id, nameFile, urlFile) VALUES('','$img_name','$destination$img_name')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
echo '<img src="' . $destination . $img_name .'"/>';
}
else{
echo '<div class=\'pluginLucie\'>Une erreur est survenue lors de l\'envoi du fichier.</div>';
}
}
else{
echo '<div class=\'pluginLucie\'>Veuillez vérifier les extensions acceptées s\'il vous plaît.</div>';
}
}
?>[/code]
Vous voyez le deuxième fichier, multiForm.php ? La boucle success ? Et bien mon algorithme pas directement au cas error ...
Voyez-vous même une erreur toute bête ?