courriers type.

ViPHP
xTG
ViPHP | 7331 Messages

19 juin 2012, 16:00

Moi je dis que ce que l'on cherche est en jaune. :roll:

ViPHP
ViPHP | 2577 Messages

19 juin 2012, 16:05

str_replace(''',"'",$lettre) pour être brutal. Ensuite tu chercheras éventuellement pour '

Mammouth du PHP | 702 Messages

19 juin 2012, 16:09

j'ai fais comme ceci:
$lettre= $courrier['contenu'] ; $var=str_replace('"','\\"',$lettre); $var2=str_replace("'","\'",$var); $commande = 'echo "'.$var2.'";'; echo($commande); 
et la je récupère cela dans la source:
echo "<p style=\"text-align: right; \">

	$debiteur[\'nom\'] {$debiteur[\'prenom\']}<br />

	{$debiteur[\'adresse\']}<br />

	{$debiteur[\'adresse2\']}<br />

	{$debiteur[\'ville\']} - {$debiteur[\'code_postal\']}<br />

	{$debiteur[\'pays\']}</p>

<p style=\"text-align: right; \">

	 </p>

<p style=\"text-align: left; \">

	Affaire: {$client[\'raison_sociale\']}</p>

<p style=\"text-align: left; \">

	c/ {$debiteur[\'nom\']}</p>

<p style=\"text-align: left; \">

	Nos Refs: <strong>{$creance[\'n_doss\']}</strong></p>

<p style=\"text-align: left; \">

	Reference client: {$creance[\'ref_client\']}</p>

<p style=\"text-align: left; \">

	 </p>

<p style=\"text-align: right; \">

	Maisons-Laffitte, le {date(\'d-m-Y\')}</p>

<p style=\"text-align: right; \">

	 </p>

<p style=\"text-align: center; \">

	<strong>ATTESTATION DE NON RECOUVREMENT</strong></p>

";
et encore message d'erreur...

Mammouth du PHP | 702 Messages

19 juin 2012, 16:11

Moi je dis que ce que l'on cherche est en jaune. :roll:
a part le smiley qu'est-ce qui est en jaune ^^ ?

ViPHP
ViPHP | 2577 Messages

19 juin 2012, 16:17

Pas de \', il faut ' tout simplement.

Edit : $var2=str_replace("'","'",$var);

Pour le décodage, il manque 1 paramètre : http://php.net/manual/fr/function.html- ... decode.php
Par defaut : ENT_COMPAT | ENT_HTML401
Essayes ENT_QUOTES | ENT_HTML401 comme 3ème paramètre.
Modifié en dernier par Mazarini le 19 juin 2012, 16:19, modifié 1 fois.

ViPHP
ViPHP | 2577 Messages

19 juin 2012, 16:17

Oops

Mammouth du PHP | 702 Messages

19 juin 2012, 16:22

bon ça fonctionne presque, je n'ai plus les problèmes avec les /' et autres, mais j'ai ceci::

Code : Tout sélectionner

( ! ) Notice: Undefined variable: debiteur in C:\wamp\www\NEOGETCASH\GESTIONNAIRE\DOSSIERS\editer-courrier4.php(92) : eval()'d code on line 2 Call Stack # Time Memory Function Location 1 0.0007 717184 {main}( ) ..\editer-courrier4.php:0 2 0.0082 745632 eval( 'echo " {$debiteur['nom']} {$debiteur['prenom']} {$debiteur['adresse']} {$debiteur['adresse2']} {$debiteur['ville']} - {$debiteur['code_postal']} {$debiteur['pays']} Affaire: {$client['raison_sociale']} c/ {$debiteur['nom']} Nos Refs: {$creance['n_doss']} Reference client: {$creance['ref_client']} Maisons-Laffitte, le {date('d-m-Y')} ATTESTATION - Affaire: c/ Nos Refs: Reference client: Maisons-Laffitte, le {date('d-m-Y')} ATTESTATION
alors que juste avant j'ai tous mes codes:
<?php 	$sql= "SELECT * FROM `courrier` WHERE id ='".mysql_real_escape_string($_POST['courrier'])."'";
		$sql1= "SELECT * FROM `creance` WHERE `n_doss`='".mysql_real_escape_string($_GET['n_doss'])."'" ;
		$sql2= "SELECT * FROM `debiteur` WHERE `n_doss`='".mysql_real_escape_string($_GET['n_doss'])."' AND `qualite`=`n_doss`='".mysql_real_escape_string($_GET['qualite'])."'";
		$sql3="SELECT * FROM `decompte` WHERE `n_doss`='".mysql_real_escape_string($_GET['n_doss'])."'";
		$sql4="SELECT * FROM `factures` WHERE`n_doss`='".mysql_real_escape_string($_GET['n_doss'])."'";
		$sql5="SELECT * FROM `interets` WHERE `n_doss`='".mysql_real_escape_string($_GET['n_doss'])."'";
		$sql6="SELECT * FROM `client` WHERE `code_client`='".mysql_real_escape_string($_GET['code_client'])."'";


		$result = mysql_query($sql)  or die (__LINE__.mysql_error().$sql); 
		$result1= mysql_query($sql1) or die (__LINE__.mysql_error().$sql1); 
		$result2= mysql_query($sql2) or die (__LINE__.mysql_error().$sql2);
		$result3= mysql_query($sql3) or die (__LINE__.mysql_error().$sql3);
		$result4= mysql_query($sql4) or die (__LINE__.mysql_error().$sql4);
		$result5= mysql_query($sql5) or die (__LINE__.mysql_error().$sql5);
		$result6= mysql_query($sql6) or die (__LINE__.mysql_error().$sql6);

while($courrier = mysql_fetch_assoc($result))  { $lettre= $courrier['contenu'] ; $var=str_replace('"','\\"',$lettre); $var2=str_replace("'","'",$var); $commande = 'echo "'.$var2.'";'; eval($commande); 


while($creance  = mysql_fetch_assoc($result1)) { 
while($debiteur = mysql_fetch_assoc($result2)) { 
while($decompte = mysql_fetch_assoc($result3)) { 
while($factures = mysql_fetch_assoc($result4)) { 
while($interets = mysql_fetch_assoc($result5)) { 
while($client   = mysql_fetch_assoc($result6)) { 

?>		
<table width="790"><tr><td>
<p align="left"><?php ?></p></td></tr>
 </table>
<?php 
}
}
}
}
}
}
}
?>
je sens que je commence a devenir fou ... toutes ces erreurs avec tout ce mal a les supprimer.

Edit: je n'ai pas la possibilité de faire de jointure.

ViPHP
xTG
ViPHP | 7331 Messages

19 juin 2012, 16:45

Non tes variables sont créées après la fonction eval().
Il faut qu'elles le soient avant, sinon on est bien d'accord qu'à cet endroit elles n'existent pas hein ?

Mammouth du PHP | 702 Messages

19 juin 2012, 16:48

oui mais lorsque je mets l'eval après toutes mes variables rien ne s'affiche si ce n'est un écran blanc.

Mammouth du PHP | 702 Messages

19 juin 2012, 16:49

quand je fais cela
<?php 	$sql= "SELECT * FROM `courrier` WHERE id ='".mysql_real_escape_string($_POST['courrier'])."'";
		$sql1= "SELECT * FROM `creance` WHERE `n_doss`='".mysql_real_escape_string($_GET['n_doss'])."'" ;
		$sql2= "SELECT * FROM `debiteur` WHERE `n_doss`='".mysql_real_escape_string($_GET['n_doss'])."' AND `qualite`=`n_doss`='".mysql_real_escape_string($_GET['qualite'])."'";
		$sql3="SELECT * FROM `decompte` WHERE `n_doss`='".mysql_real_escape_string($_GET['n_doss'])."'";
		$sql4="SELECT * FROM `factures` WHERE`n_doss`='".mysql_real_escape_string($_GET['n_doss'])."'";
		$sql5="SELECT * FROM `interets` WHERE `n_doss`='".mysql_real_escape_string($_GET['n_doss'])."'";
		$sql6="SELECT * FROM `client` WHERE `code_client`='".mysql_real_escape_string($_GET['code_client'])."'";


		$result = mysql_query($sql)  or die (__LINE__.mysql_error().$sql); 
		$result1= mysql_query($sql1) or die (__LINE__.mysql_error().$sql1); 
		$result2= mysql_query($sql2) or die (__LINE__.mysql_error().$sql2);
		$result3= mysql_query($sql3) or die (__LINE__.mysql_error().$sql3);
		$result4= mysql_query($sql4) or die (__LINE__.mysql_error().$sql4);
		$result5= mysql_query($sql5) or die (__LINE__.mysql_error().$sql5);
		$result6= mysql_query($sql6) or die (__LINE__.mysql_error().$sql6);

while($courrier = mysql_fetch_assoc($result))  { $lettre= $courrier['contenu'] ; $var=str_replace('"','\\"',$lettre); $var2=str_replace("'","'",$var); $commande = 'echo "'.$var2.'";'; 


while($creance  = mysql_fetch_assoc($result1)) { 
while($debiteur = mysql_fetch_assoc($result2)) { 
while($decompte = mysql_fetch_assoc($result3)) { 
while($factures = mysql_fetch_assoc($result4)) { 
while($interets = mysql_fetch_assoc($result5)) { 
while($client   = mysql_fetch_assoc($result6)) { 

?>		
<table width="790"><tr><td>
<p align="left"><?php  eval($commande) ?></p></td></tr>
 </table>
<?php 
}
}
}
}
}
}
}
?>
et afficher le code source j'ai un écran blanc et dans la source bah rien entre body et /body...

ViPHP
ViPHP | 2577 Messages

19 juin 2012, 18:15

J'ai fini par faire un test :
<?php
$lettre = 'nom débiteur = \"{$debiteur[\'nom\']}\"';
$debiteur['nom'] = 'John Doe';
$commande = 'echo "'.$lettre.'";';
echo $commande;
echo '<hr>';
eval($commande);
?>
Le code source html :
echo "nom débiteur = \"{$debiteur['nom']}\"";<hr>nom débiteur = "John Doe"
Le résultat affiché :
echo "nom débiteur = \"{$debiteur['nom']}\"";
-----------------------------------------------------------------------------
nom débiteur = "John Doe"
Si rien ne s'affiche, c'est qu'un des while a une condition fausse (pas d'enregistrement)

Mammouth du PHP | 702 Messages

20 juin 2012, 08:37

une question qui va vous paraitre stupide, si je ne met pas le while ($result = musql_fetch_assoc_result), alors lors de la recherche il va s'arrêter sur le premier résultat trouvé, c'est bien cela?

Mammouth du PHP | 702 Messages

20 juin 2012, 08:47

un ultime soucis avant de clore ce chapitre qui je dois dire m'aurait été impossible sans votre aide,

j'ai présentement un soucis avec la date date('d-m-Y')

rin ne s'affiche alors que normalement lors de l'eval elle devrait être interprétée non?

Mammouth du PHP | 2278 Messages

20 juin 2012, 09:11

Bonjour à tous, j'ai fais un module de gestion pour les courriers type,

je stocke donc mes données dans ma bdd, le soucis c'est que tout est stocké de la sorte:
en fait tout passe par ckeditor, lors de la génération de courrier
<p style="text-align: right; ">
	$debiteur['raison_sociale']<br />
	$debiteur['civilite']&nbsp;$debiteur['nom']&nbsp;$debiteur['prenom']<br />
	$debiteur['adresse']<br />
	$debiteur['code_postal'] -&nbsp;$debiteur['ville']<br />
	$debiteur['pays']</p>
<p style="text-align: right; ">
	&nbsp;</p>
<p style="text-align: left; ">
	Nos REF.:&nbsp;<strong>$creance['n_doss']</strong></p>
<p style="text-align: left; ">
	AFF.:&nbsp;$client['forme_juridique']&nbsp;$client['raison_sociale']<br />
	c/&nbsp;$debiteur['raison_sociale']&nbsp;$debiteur['nom']</p>
<p style="text-align: left; ">
	Vos REF.:&nbsp;$creance['ref_client']</p>
<p style="text-align: left; ">
	&nbsp;</p>
<p style="text-align: right; ">
	MAISONS-LAFFITTE, le&nbsp;date('d-m-Y')</p>
<p style="text-align: right; ">
	&nbsp;</p>
<p style="text-align: center; ">
	<u><strong>ATTESTATION DE PERTE</strong></u></p>
D'avance merci pour votre aide.
devrait donner un résultat imprimable?
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

ViPHP
ViPHP | 2577 Messages

20 juin 2012, 10:32

A priori, je pensais que {date('...')} devait marcher. Au pire utilise une variable $date_jour.

J'ai l'impression que tu devrais traiter de facon générique certaines lettres simple à partir d'information comme dossier, débiteur, client, intervention sur le dossier et faire des traitements spécifiques pour la facturation et les relevés.

Tu dois avoir une table qui contient l'historique de ce qui se passe sur un dossier. A partir d'un élément, tu connais le dossier et donc le client, le débiteur. L'envoi d'une lettre peut se faire en 2 temps : ajout dans l'historique avec un statut "à envoyer" puis constitution de la lettre (et envoi).

Cela te permettrait de générer ce genre de lettre à partir d'une intervention :
1) lecture de l'intervention (modèle de lettre + quelques variables standards + dossier)
2) lecture du dossier (client, débiteur)
3) lecture du client
4) lecture du débiteur