Erreur PHP Mkdir

Petit nouveau ! | 7 Messages

28 avr. 2010, 10:55

Bonjour à tous !

J'ai installé récemment un nouveau CMS pour mon site : http://www.flopod.fr

Ce CMS possède une zone admin pour ajouter du contenu à deux rubriques du site.

Malheureusement, dès que j'essaye de créer un article, rien n'est créé ou alors je reçois ce message d'erreur :
Warning: mkdir() [function.mkdir]: File exists in /home/website/f/l/o/flo/blog/CMS/blog_add_process.php on line 28
 
Fatal error: Call to undefined function alert() in /home/website/f/l/o/flo/blog/CMS/blog_add_process.php on line 41

Que se passe-t-il ?

Petit nouveau ! | 7 Messages

28 avr. 2010, 13:27

le script complet est ici :
<?
include('verify.php');


$title = $_POST['title'];
$bigline = $_POST['bigline'];
$text = $_POST['text'];
$categorie = $_POST['categorie'];
$categorie_name = $_POST['categorie_name'];
$author = $_POST['author'];

// Call for the name of categorie
$queryd = "SELECT * FROM $table_d WHERE id_cat=$categorie"; 
$resultd = mysql_query($queryd);
$mycat = @mysql_fetch_object($resultd);
$categorie_name = $mycat->categorie_name;

// LAST INCREMENTATION
$queryz = "SELECT last FROM $table_g"; 
$resultz = mysql_query($queryz);
$incr = @mysql_fetch_object($resultz);
$nrowss = $incr->last;

// NEW ID
$id= $nrowss+1;

umask(0000);
mkdir('../blog/'.$id.'', 0777);
	// Folder blog + id of the new article
	$uploadDir = '../blog/'.$id.'/';
	
	// Image file data
	$fileName = $_FILES['preview']['name'];
	$tmpName  = $_FILES['preview']['tmp_name'];

    // File extension extraction
	$ext = substr(strrchr($fileName, "."), 1);
	
	// File extension verification
	if ($ext != "jpg" ) { 
		echo alert("Only jpg file are accepted (extension .jpg) Thanks !");
		exit;
		}
	// Generate random name
	$randName = md5(rand() * time());
	
	// Creation of path
    $filePath = $uploadDir . $fileName;
    $newfilename = $fileName;

    // UPLOAD IMAGE
	// If something wrong.... we stop ! or we upload.
    $result    = move_uploaded_file($tmpName, $filePath);
	if (!$result) {
		echo "Error during upload... Please read the help doc.";
		exit;
	}

$date_post	=	date("Y-m-d H:i:s");

$insert = mysql_query("INSERT INTO $table_b 
                       (
					   title,
					   bigline,
					   text,
					   preview,
					   categorie,
					   categorie_name,
					   author,
					   date_post
					   )
					   VALUES
					   (
					   '$title',
					   '$bigline',
					   '$text',
					   '$newfilename',
					   '$categorie',
					   '$categorie_name',
					   '$author',
					   '$date_post'
					   )") or die(mysql_error()); 
if(!$insert) echo alert("Error during insert...");

$update = mysql_query("UPDATE $table_g SET last='$id'");

if(!$update) echo alert("Error during update...");

header("location:update_rss.php");
?>

ViPHP
ViPHP | 5462 Messages

28 avr. 2010, 13:39

hello, tu comprends pas : File exists ?

Petit nouveau ! | 7 Messages

28 avr. 2010, 14:09

oui le fichier existe déjà. Un dossier vide est créé. Techniquement, il devrait y avoir les données de l'article créé dedans, mais il n'y a rien puisque l'erreur bloque tout.

ViPHP
ViPHP | 5462 Messages

28 avr. 2010, 14:14

oui le fichier existe déjà. Un dossier vide est créé. Techniquement, il devrait y avoir les données de l'article créé dedans, mais il n'y a rien puisque l'erreur bloque tout.
faut que tu testes avant si le dossier existe, si il existe pas a ce moment la tu le crées :wink:

Petit nouveau ! | 7 Messages

28 avr. 2010, 14:39

j'ai essayé les deux, que le dossier existe ou pas, il y a une erreur.

Quand le dossier est créé, j'ai l'erreur précédente et quand il n'y a pas de dossier j'ai ça :
Fatal error: Call to undefined function alert() in /home/website/f/l/o/flo/blog/CMS/blog_add_process.php on line 41
Dans les deux cas, au final, il y a un dossier vide.

ViPHP
ViPHP | 5462 Messages

28 avr. 2010, 14:40

elle sort d'où ta fonction alert, elle est définie nul part

Petit nouveau ! | 7 Messages

28 avr. 2010, 15:04

Je ne suis pas l'auteur du code et qui plus est je ne connais pas le php :D J'essaye de comprendre.

Cette fonction serait en cause ? je la vois trois fois dans le fichier.

ViPHP
ViPHP | 5462 Messages

28 avr. 2010, 15:09

Je ne suis pas l'auteur du code et qui plus est je ne connais pas le php :D J'essaye de comprendre.

Cette fonction serait en cause ? je la vois trois fois dans le fichier.
ouais si elle existe pas ca va pas marcher, donc supprime la au lieu de faire
echo alert("Only jpg file are accepted (extension .jpg) Thanks !");
//tu fais
echo "Only jpg file are accepted (extension .jpg) Thanks !";

Eléphant du PHP | 422 Messages

28 avr. 2010, 15:22

hello

tu peux mettre un @ devant le mkdir pour éviter le warning si le répertoire existe déjà.

++
toujours faire une recherche sur http://www.php.net et/ou sur http://www.google.fr :)
utiliser http://ideone.com/ pour vos codes :)

ViPHP
ViPHP | 5462 Messages

28 avr. 2010, 15:25

hello

tu peux mettre un @ devant le mkdir pour éviter le warning si le répertoire existe déjà.

++
lui conseil pas ca

Petit nouveau ! | 7 Messages

28 avr. 2010, 15:52

Eh ben maintenant, logique, il me dit d'abord ça :
Only jpg file are accepted (extension .jpg) Thanks !
puis un dossier vide est créé puis, deuxième essai :
Warning: mkdir() [function.mkdir]: File exists in /home/website/f/l/o/flo/blog/CMS/blog_add_process.php on line 28
Only jpg file are accepted (extension .jpg) Thanks !
Ce qui est bizarre, c'est que je n'envoie que du texte, pas d'image...fin y a deux problèmes en même temps il me semble là.

ViPHP
ViPHP | 5462 Messages

28 avr. 2010, 16:58

déjà pour ton problème de dossier utilise file_exists

Petit nouveau ! | 7 Messages

28 avr. 2010, 17:54

Peux-tu me dire ce que je dois ajouter au code et où dans le code (j'y connais rien ^^)