8791 sujets

Développement web côté serveur, CMS

Bonjour à tous et toutes.

J'ai un souci en php.
Pourriez-vous essayer de m'aider ?

J'ai 2 codes php qui font chacun leur popote...
Tout fonctionne bien sauf quand ils envoient un mail
(tout se passe en fin de chacun des codes)

Dans loginON.php, tous les accents s'affichent bien...
par contre dans uploads.php les accents sont illisibles "été" devient carré't'carré...

Désolé, le message est long...
Mais je crois cela utile pour que vous puissiez m'aider.

Pouvez-vous m'aider ???

Pourtant les 2 pages html contiennent toutes les 2 un début de code html qui est :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
...


Voici loginON.php

<?php
	date_default_timezone_set('Europe/Brussels');
	
	$user = trim($_POST['user']);
	$password = trim($_POST['password']);
	if (($user == "") || ($password == "") ) {
		header("Location: ../loginON.html");
		exit;
	}
	if (($user == "admin") && ($password == "admin")) {
		header("Location: ../loginON.html");
		exit;
	}
	
	$password_len = strlen($password);
	$password_key = sha1($password.$password_len);
	$out = $user.":".$password_key;
	$utilisateur = array();
	$blancs = str_repeat(" ", 256);
	$finrecord = chr(13).chr(10);
	$switch = "0";
	$existence = "1";

	$nomfichier = fopen('login.txt','r');
	flock ($nomfichier, 2);
	$record = fgets($nomfichier);
	$utilisateur [1] = substr($record,0,254);
	$dernier = substr($utilisateur [1],0,6);	
	$nbON = substr($utilisateur [1],6,5);	
	$nbOFF = substr($utilisateur [1],11,5);	
	$nbADMIN = substr($utilisateur [1],16,5);	
	$nbFTP = substr($utilisateur [1],21,5);	
	$nbAUTRE = substr($utilisateur [1],26,5);	
	for ($ligne = 2 ; $ligne < $dernier ; $ligne++) {
		$record = fgets($nomfichier);
		$utilisateur [$ligne] = substr($record,0,254);
	}
	flock ($nomfichier, 3);
	fclose($nomfichier);
	
	for ($ligne = 2 ; $ligne < $dernier ; $ligne++) {
		$loginexistence = trim(substr($utilisateur [$ligne],0,1));
		$logincompte = trim(substr($utilisateur [$ligne],1,6));
		$loginuser = trim(substr($utilisateur [$ligne],7,40));
		$loginpassword = trim(substr($utilisateur [$ligne],47,40));
		$loginemail = trim(substr($utilisateur [$ligne],87,150));
		$in = $loginuser.":".$loginpassword;
		if ($out == $in) {
			$switch = $ligne;
			$ligne = $dernier;
		}
	}
	
	if ($switch == "0") {
		$_POST['user']="";
		$_POST['password']="";
		header("Location: ../loginON.html");
	} else {
		$compte = $logincompte;
		$email = $loginemail;
		
		$chemin = "../transferts";
		if (is_dir($chemin) == false) {
		  mkdir($chemin,0777);    
		}
		$chemin .= "/";
		if (is_dir($chemin.$user) == false) {
		  mkdir($chemin.$user,0777);    
		}
		
		if ($loginexistence != "1") {
			$nbON++;
			$nbOFF--;
			switch ($compte) {
				case "admin":
					$nbADMIN++;
					break;
				case "ftp":
					$nbFTP++;
					break;
				default:
					$nbAUTRE++;
					break;
			}
		}
		$utilisateur[1] = substr("000000".$dernier,-6);
		$utilisateur[1] .= substr("000000".$nbON,-5);
		$utilisateur[1] .= substr("000000".$nbOFF,-5);
		$utilisateur[1] .= substr("000000".$nbADMIN,-5);
		$utilisateur[1] .= substr("000000".$nbFTP,-5);
		$utilisateur[1] .= substr("000000".$nbAUTRE,-5);
		$utilisateur[$switch] = substr($existence.$blancs,0,1).substr($compte.$blancs,0,6).substr($user.$blancs,0,40).substr($password_key.$blancs,0,40).substr($email.$blancs,0,150);
		$newfichier = fopen('loginTMP.txt','w');
		flock ($newfichier, 2);
		for ($ligne = 1 ; $ligne < $dernier ; $ligne++) {
			$utilisateur[$ligne] = substr($utilisateur[$ligne].$blancs,0,254);
			$utilisateur[$ligne] .= $finrecord;
			fwrite ($newfichier, $utilisateur[$ligne]);
		}
		flock ($newfichier, 3);
		fclose($newfichier);
		
		chmod("loginTMP.txt", 0777);
		chmod("login.txt", 0777);
		unlink("login.txt");
		copy("loginTMP.txt","login.txt");
		unlink("loginTMP.txt");

		$destinataire1 = "truc@bidule.fr";
		$destinataire2 = $email;
		$objet1 = "bidule - Réactivation d'un compte";
		$objet2 = $objet1;
		
		$msg = "\n";
		$msg .= "============================================================================\n";
		$msg .= "\n";
		$msg .= "\n";
		$msg .= "Votre compte sur le site  www.bidule.fr  a été réactivé \n";
		$msg .= "Vous pouvez donc uploader ou downloader directement sur le site \n";
		$msg .= "\n";
		$msg .= "Type de compte : $compte "."\n";
		$msg .= "Utilisateur : $user \n";
		$msg .= "Mot de Passe : $password \n";
		$msg .= "Adresse email : $email \n";
		$msg .= "\n";
		$msg .= "\n";
		$msg .= "============================================================================\n";
		$msg .= "\n";
		
		$entete = "From: $destinataire1 <>\n";
		$entete .= "Reply-To: $destinataire2\n";
		$entete .= "Content-Type: text/plain; charset=UTF-8\n";
		$entete .= "Content-Disposition: inline\n";
		$entete .= "Content-Transfer-Encoding: 8bit\n";
		$entete .= "MIME-Version: 1.0\n";
		$entete .= "Date: $datefr $heurefr\n";
		
		$resultat1 = mail($destinataire1,$objet1,$msg,$entete);
		$resultat2 = mail($destinataire2,$objet2,$msg,$entete);

		$_POST['user']="";
		$_POST['password']="";
		
		if (($resultat1 == false) || ($resultat2 == false)) {
			Header("Location: ../index.html");
		} else {
			Header("Location: ../index.html");
		}
	}
?>


Voici maintenant, uploads.php

	date_default_timezone_set('Europe/Brussels');

	if ((!isset($_COOKIE["CFVcompte"])) || (!isset($_COOKIE["CFVuser"])) || (!isset($_COOKIE["CFVemail"]))) {
		Header("Location: ../autorisation01.html");
		exit;
	}
	if (($_COOKIE["CFVcompte"] != "admin") && ($_COOKIE["CFVcompte"] != "ftp")) {
		Header("Location: ../autorisation01.html");
		exit;
	}
	
	$blancs = str_repeat(" ", 256);
	$extensionsAutorisees = array("ai", "ind", "png", "psd", "eps", "bmp", "gif", "jpg", "jpeg", "tif", "tiff", "txt", "tmp", "swf", "pdf", "doc", "docx", "xls", "xlsx", "ppt", "pptx", "xml", "rar", "zip");
	
	$user = $_COOKIE['CFVuser'];
	$compte = $_COOKIE['CFVcompte'];
	$email = $_COOKIE['CFVemail'];
	$email = str_replace('%40','@',$email); 
	
	$chemin = "../transferts";
	if (is_dir($chemin) == false) {
	  mkdir($chemin,0777);    
	}
	$chemin .= "/";
	if (is_dir($chemin.$user) == false) {
	  mkdir($chemin.$user,0777);    
	}
	$repertoireDestination = $chemin.$user."/";
	$srcfichier[0] = $_FILES['file01'];
	$srcfichier[1] = $_FILES['file02'];
	$srcfichier[2] = $_FILES['file03'];
	$srcfichier[3] = $_FILES['file04'];
	$srcfichier[4] = $_FILES['file05'];
	$srcfichier[5] = $_FILES['file06'];
	$srcfichier[6] = $_FILES['file07'];
	$srcfichier[7] = $_FILES['file08'];
	$srcfichier[8] = $_FILES['file09'];
	$srcfichier[9] = $_FILES['file10'];
	$nbfichier = 0;
	for ($i=0; $i < 10; $i++) {
		if ($srcfichier[$i]['name'] != "") {
			$name = $srcfichier[$i]['name'];
			$extensionFichier = substr($name, strrpos($name, ".") + 1);
			$nom_fichier = basename($name,".".$extensionFichier);  
			if (strlen($nom_fichier) > 30) {
				$fichierreduit[$i] = substr($nom_fichier,0,30)."...".$extensionFichier;
			} else {
				$fichierreduit[$i] = $name;
			}
			if (in_array($extensionFichier, $extensionsAutorisees)) {
				$etat[$i+1] = "En cours";
				$nomDestination = $nom_fichier.date("YmdHis").".".$extensionFichier;
				move_uploaded_file($srcfichier[$i]['tmp_name'],$repertoireDestination.$nomDestination);
				chmod("$repertoireDestination.$nomDestination",0777);
				switch($srcfichier[$i]['error']) {
					case UPLOAD_ERR_OK:
						$etat[$i+1] = "Terminé avec succès !"; 
						$nbfichier++;
						break;
					// dépassement de upload_max_filesize dans php.ini
					case UPLOAD_ERR_INI_SIZE:
						$etat[$i+1] = "Trop volumineux ! (PHP)";
						break;
					// dépassement de MAX_FILE_SIZE dans le formulaire
					case UPLOAD_ERR_FORM_SIZE:
						$etat[$i+1] = "Trop volumineux ! (FORM)";
						break;
					// autres erreurs
					default:
						$etat[$i+1] = "Erreur générale !";
				}
			} else {
				$etat[$i+1] = "Fichier en .".$extensionFichier." refusé !";
			}
		}
	}

	$destinataire1 = "truc@bidule.fr";
	$destinataire2 = $email;
	$objet1 = "Envoi de fichiers sur  www.truc@bidule.fr";
 
	$objet2 = $objet1;
	
	$msg = "\n";
	$msg .= "============================================================================\n";
	$msg .= "\n";
	$msg .= "\n";
	$msg .= "Sur le site truc@bidule.fr\n";
	switch ($nbfichier) {
		case 0:
			$msg .= "Aucun fichier n'a été envoyé par ".$user."\n";
			break;
		case 1:
			$msg .= "1 fichier a été envoyé par ".$user."\n";
			break;
		default:
			$msg .= "$nbfichier fichiers ont été envoyés par ".$user."\n";
	}
	$msg .= "dans le dossier : $repertoireDestination\n";
	for ($i=0; $i<10; $i++) {
		if ($srcfichier[$i]['name'] != "") {
			$msg .= "#".substr("00".($i+1),-2)."  ".$fichierreduit[$i]." --- ".$etat[$i+1]."\n";
		}
	}
	$msg .= "\n";
	$msg .= "\n";
	$msg .= "============================================================================\n";
	$msg .= "\n";
	
	$entete = "From: $destinataire1 <>\n";
	$entete .= "Reply-To: $destinataire2\n";
	$entete .= "Content-Type: text/plain; charset=UTF-8\n";
	$entete .= "Content-Disposition: inline\n";
	$entete .= "Content-Transfer-Encoding: 8bit\n";
	$entete .= "MIME-Version: 1.0\n";
	$entete .= "Date: $datefr $heurefr\n";
	
	$resultat1 = mail($destinataire1,$objet1,$msg,$entete);
	$resultat2 = mail($destinataire2,$objet2,$msg,$entete);

	if (($resultat1 == false) || ($resultat2 == false)) {
		Header("Location: ../index.html");
	} else {
		Header("Location: ../index.html");
	}

Modifié par jytest (16 Nov 2010 - 13:56)