Correction code php & javascript

Fermé
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 - 25 févr. 2012 à 21:06
 smart - 4 juin 2015 à 01:09
Bonjour,
Avant toute chose, il faudrait regarder ces deux sites. Site 1: http://editionsgracianne.free.fr/Agenda/Formulaire.php (Login=test, Pass=toto). Si on écrit quelque chose dans le textarea puis Visualiser on voit la mise en forme. OK.
http://editionsgracianne.free.fr/Agenda/Liste_Agenda.php Ici les boutons Suivant et Précédent fonctionnent très bien. L'utilisation du calendrier fonctionne parfaitement.
Site 2: http://saucede.free.fr/index.php?page=Ajout_Sortie&lang=Fr (Login=test, Pass=toto64). Ici pas de preview possible. De plus si on Valide sans preview tout s'ajoute bien dans la table SAUF le contenu du textarea (???).
http://saucede.free.fr/index.php?page=Liste_Sorties&lang=Fr (menu Les activités - Les sorties à venir). Ici le bouton Suivant ne mène nulle part. Et l'utilisation du calendrier ne fonctionne pas du tout. N'hésitez pas à faire vous même des tests dans ces formulaires, les tables seront vidées dans les deux sites (le premier étant d'ailleurs abandonné par son propriétaire).
Cela fait 2 semaines que je cherche mais maintenant je fatigue et suis complètement coincé. Je suis désolé d'etre aussi long mais je vous met le code du formulaire:
<?
session_start();  // Démarrage de la session. A placer obligatoirement avant tout code html. Requière le dossier sessions chez Free.

$_SESSION['connect'] = 0; //initialise la variable 'connect'

if (isset($_POST['mot_de_passe']) AND isset($_POST['login'])) // Si les variables existent
{
        $mot_de_passe = $_POST['mot_de_passe'];
        $login = $_POST['login'];  //On récupère les données envoyées par la méthode POST du formulaire d'identification
}

else // Les variables n'existent pas encore
{
        $mot_de_passe = "";
        $login = ""; // On crée des variables $mot_de_passe  et $login vides
}

if (($mot_de_passe == "toto64" AND $login == "test"))
// Si le mot de passe et le login sont bons (on peut mettre plusieurs utilisateurs. Dans ce cas, ajouter les dans le if). 

{
		$_SESSION['connect'] = 1;  // Change la valeur de la variable connect. 
		$_SESSION['login'] = $login;  // Permet de récupérer le login afin de personnaliser la navigation

// On affiche la page cachée.
?>

<style type="text/css">
<!-- Tailles des polices -->
	.tpetit  { font-size: x-small; }
	.petit   { font-size: small; }
	.gros    { font-size: large; }
	.tgros   { font-size: x-large; }
</style>

<!-- page des activités proposées cachée que l'on va afficher si le couple login/pass est OK -->

  <table align="center" border="0" cellspacing="0" cellpadding="4">
    <tr>
      <td>
        <!-- Pour que les champs obligatoires soient controlés, ils doivent être vierges (pas de value) -->
        <form class="formajout" name="Sortie" id="Sortie" action="/Activites/Traitement_Fiche%20Fr.php"  onsubmit="return verif(this)" method="post">
	<fieldset>
	<legend>&nbsp;&nbsp;<strong> Ajouter </strong> une activité à venir &nbsp;&nbsp;</legend>
			<p><small> Les champs marqués <span class="red">*</span> sont obligatoires</small><br />
			  <label for="Titre"> Activité </label>
			  :<span class="red">*</span>&nbsp;
		<input name="Activite" id="Activite" autofocus tabindex="10" type="text" value="" size="80" maxlength="80" /> &nbsp;&nbsp;
        <input type="hidden" name="Publication" id="Publication" value="<?php $Publication = (date("%d %B %Y à %H:%i:", filemtime($SCRIPT_FILENAME)));?>" ></p>
			<label for="Lieu"> Lieu </label>
			:<span class="red">*</span>&nbsp;&nbsp;&nbsp;<input name="Lieu" id="Lieu" tabindex="20" type="text" value="" size="40" maxlength="80" />
  			        <label for="Date"></label>
		<label for="Date">&nbsp;&nbsp; Date : 
		<small>(utiliser le calendrier ci-contre)</small> :</label> &nbsp;<a href="javascript:cal.popup();"><img src="/Activites/img_calendar/cal.gif" width="16" height="16" border="0" alt="Cliquez ici pour choisir la date" title="Cliquez ici pour choisir la date." /></a>&nbsp;
		<input name="Date" id="Date" tabindex="30" type="text" size="14" maxlength="25" />
        <script language="JavaScript" type="text/javascript">
// créer un objet de calendrier juste après la fermeture d'un "tag de formulaire". 
// Spécifier l'élément du formulaire comme le seul paramètre (document.forms['nom_du_formulaire'].elements['nom_d'entrée']); 
// Note : vous pouvez avoir autant d'objets de calendrier dont vous avez besoin pour votre application
// elements.['date'] ou "Date" est le name/id du champ du formulaire juste au dessus
				var cal = new calendar1(document.forms['Sortie'].elements['Date']);
				cal.year_scroll = true;
				cal.time_comp = false;
			</script></p>
			  <label for="Depart"> </label>
	<p><label for="Depart"> Rendez-Vous </label>
	:&nbsp;&nbsp;&nbsp;<input name="Depart" id="Depart" tabindex="40" type="text" value="" size="50" maxlength="80" />
			<label for="Participants">
			&nbsp;&nbsp;&nbsp;Nombre maxi de participants	:&nbsp;&nbsp;&nbsp;</label>
			<input name="Participants" id="Participants" tabindex="50" type="text" value="" size="7" maxlength="10" /></p>
		<!-- on insère les balises html pour la mise en forme du texte -->
		<!-- l'array du zcode doit être égal au script Inject_BBCode.js (ligne 63 et suivantes) -->
		<!-- les insert tag du formulaire. La $html dans view.php réencodera ces balises protégées. -->
<p align="center">&nbsp;<img src="/Modules/Images/Gras.gif" width="25" height="25" class="image_cliquable" alt="Gras" title="Gras" onclick="insertTag('<strong>', '</strong>', 'Comment'); return false;" />
&nbsp;<img src="/Modules/Images/Italique.gif" width="25" height="25" class="image_cliquable" alt="Italique" title="Italique" onclick="insertTag('<em>', '</em>', 'Comment'); return false;" />
&nbsp;<img src="/Modules/Images/Souligne.gif" width="25" height="25" class="image_cliquable" alt="Souligné" title="Souligné" onclick="insertTag('<u>', '</u>', 'Comment'); return false;" />
&nbsp;<img src="/Modules/Images/Barre.gif" width="25" height="25" class="image_cliquable" alt="Barré" title="Barré" onclick="insertTag('<s>', '</s>', 'Comment'); return false;" />
&nbsp;<img src="/Modules/Images/Saut_Ligne.gif" width="25" height="25" class="image_cliquable" alt="Retour chariot" title="Retour chariot" onclick="insertTag('<br />', 'Comment'); return false;" />
&nbsp;<img src="/Modules/Images/Lien.gif" width="23" height="25" class="image_cliquable" alt="Lien" title="Lien" onclick="insertTag('', '', 'Comment', 'lien'); return false;" />
&nbsp;<img src="/Modules/Images/Citation.gif" width="25" height="25" class="image_cliquable" alt="Citation" title="Citation" onclick="insertTag('', '', 'Comment', 'citation'); return false;" />
				
&nbsp;
					<select onchange="insertTag ('<taille valeur=&quot;' + this.options[this.selectedIndex].value + '&quot;>', '</taille>', 'Comment');">
					<option value="none" class="selected" selected="selected">Taille</option>
					<option value="tpetit">Très petit</option>
					<option value="petit">Petit</option>
					<option value="gros">Gros</option>
					<option value="tgros">Très gros</option>
				</select>&nbsp;&nbsp;
					<select onchange="insertTag('<couleur valeur=&quot;' + this.options[this.selectedIndex].value + '&quot;>', '</couleur>', 'Comment');">
					<option value="none" class="selected" selected="selected"> Couleur </option>
					<option value="noir" style="color:#000000;"> Noir </option>
					<option value="gris" style="color:#999999;"> Gris </option>
					<option value="rouge" style="color:#FF0000;"> Rouge </option>
					<option value="bleu" style="color: #0000FF;"> Bleu </option>
					<option value="vert" style="color: #006600;"> Vert </option>
                    <option value="violet" style="color: #D49FFF;" >Violet</option>
                    <option value="jaune" style="color:#FCEF3C;" >Jaune</option> 
				</select>
					<!-- Les 2 lignes ci-dessous servent a afficher la chekbox Prévisualisation automatique (décochée par défaut) à coté des boutons de mise en forme -->
		    &nbsp;&nbsp;<input name="previsualisation" type="checkbox" id="previsualisation" value="previsualisation" /> 
				<label for="previsualisation"> Prévisualisation auto </label> 
	    </p>
<!--				<p align="left">Commentaires:<br /> -->
		<textarea onkeyup="preview(this, 'previewDiv');" onselect="preview(this, 'previewDiv');" id="Comment" cols="100" rows="3">Commentaires :</textarea>
<!--		  </p> -->
	</fieldset>
		
		<div id="previewDiv"></div>
		<div id="viewDiv"></div>
	<p align="center"><input type="button" id="Visualiser" tabindex="60" value="Visualiser" onclick="view('Comment','viewDiv');" />&nbsp;&nbsp;&nbsp;&nbsp;
					  <input type="submit" tabindex="70" value="Valider" /> 
					  </p>
        </pre>
        </div>
        </form>        
	  </td>
    </tr>
  </table>
<?php
}
else // le mot de passe n'est pas bon
{
// On affiche la page d'authentification.
?>
<!-- ====  Début de la page d'authentification ====  -->
	
  <table width="100%" align="center" border="0" cellspacing="0" cellpadding="6">
    <tr><td colspan="3"><h2 align="center" class="red"> Accès protégé</h2>
						<h3 align="center" class="red"> veuillez vous authentifier </h3></td></tr>
	<tr><td>
	<form method="post" name="authentification" id="authentification">
	<fieldset class="vert">
	<legend class="admin">&nbsp;&nbsp;<strong> Ajouter </strong> une activité dans la liste ?&nbsp;&nbsp;</legend>
	<p align="center">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<label for="login">Login</label> : <input type="text" name="login" id="login" tabindex="10" /></p>
<script type="text/javascript" language="JavaScript">document.authentification.login.focus();</script>
	<p align="center"><label for="mot_de_passe">Password</label> : <input type="password" name="mot_de_passe" id="mot_de_passe" tabindex="20" /></p>
	<p align="center"><input type="submit" value="Ajouter" tabindex="21" /></p>
	</fieldset>
	</form>
	  </td>
      <td>
	<form method="post" action="" name="authentification" id="authentification">
	<fieldset class="orange"><legend><strong>Modifier</strong> une activité ?</legend>
	<p align="center">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<label for="login">Login</label> : <input type="text" name="login" id="login" tabindex="30" /></p>
<script type="text/javascript" language="JavaScript">document.authentification.login.focus();</script>
	<p align="center"><label for="mot_de_passe">Password</label> : <input type="password" name="mot_de_passe" id="mot_de_passe" tabindex="40" /></p>
	<p align="center"><input type="submit" value="Modifier" tabindex="41" /></p>
	</fieldset>
	</form>
	  </td>
      <td>
	<form method="post" action="" name="authentification" id="authentification">
	<fieldset class="red"><legend><strong>Supprimer</strong> une activité ?</legend>
	<p align="center">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<label for="login">Login</label> : <input type="text" name="login" id="login" tabindex="50" /></p>
<script type="text/javascript" language="JavaScript">document.authentification.login.focus();</script>
	<p align="center"><label for="mot_de_passe">Password</label> : <input type="password" name="mot_de_passe" id="mot_de_passe" tabindex="60" /></p>
	<p align="center"><input type="submit" value="Supprimer" tabindex="61" /></p>
	</fieldset>
	</form>
	  </td>
</tr>
  </table>
<?php
} // Fin du else (si le mot de passe n'était pas bon).
// Fin du code :)
?>

Le code de la page View.php:
<?php 
// l'array du zcode doit être égal au script Inject_BBCode.js (ligne 63 et suivantes) et
// les insert tag du formulaire. La $html réencodera ces balises protégées. 
function parseZCode($content) {
	// Parsage des balises
	$zcode = array(  
//		''<p>(.+)</p>'isU',            // paragraphe 
		''<strong>(.+)</strong>'isU',  // texte gras
		''<em>(.+)</em>'isU',          // texte italique 
		''<u>(.+)</u>'isU',            // texte souligné
		''<s>(.+)</s>'isU',            // texte barré
		''<br>(.+)</br>'isU',          // retour à la ligne
		''<lien>(.+)</lien>'isU',      // intitulé du lien 
		''<lien url=&quot;(.+)&quot;>(.+)</lien>'isU', // url du lien 
//		''<image>(.+)</image>'isU',    // On n'utilise pas d'image ici
		''<citation>(.+)</citation>'isU',  // Citation
		''<citation nom=&quot;(.+)&quot;>(.+)</citation>'isU',  // Auteur de la citation
		''<citation lien=&quot;(.+)&quot;>(.+)</citation>'isU',  // lien de la citation
		''<taille valeur=&quot;(.+)&quot;>(.+)</taille>'isU'    // taille du/es mot/s selectionné/s 
		''<couleur valeur=&quot;(.+)&quot;>(.+)</couleur>'isU'    // taille du/es mot/s selectionné/s 
	);  
	
	$html = array(  
//		'<p>$1</p>',             // paragraphe
		'<strong>$1</strong>',   // texte gras
		'<em>$1</em>',           // texte italique
		'<u>$1</u>',             // texte souligné
		'<s>$1</s>',             // texte barré
		'<br>$1</br>',           // retour à la ligne
		'<a href="$1">$1</a>',   // intitulé du lien
		'<a href="$1">$2</a>',   // url du lien
//		'<img src="$1" alt="Image utilisateur" />', // On n'utilise pas d'image ici
		'<br /><span>Citation</span><div>$1</div>', // citation
		'<br /><span>Citation : $1</span><div>$2</div>',  // Auteur de la citation
		'<br /><span><a href="$1">Citation</a></span><div>$2</div>',  // lien de la citation
		'<span class="$1">$2</span>'
	); 
	
	$content = htmlspecialchars($content);
	$content = preg_replace($zcode, $html, $content);
	
	// parsage des smilies
	$smiliesName = array(':magicien:', ':colere:', ':diable:', ':ange:', ':ninja:', '>_<', ':pirate:', ':zorro:', ':honte:', ':soleil:', ':\'\\(', ':waw:', ':\\)', ':D', ';\\)', ':p', ':lol:', ':euh:', ':\\(', ':o', ':colere2:', 'o_O', '\\^\\^', ':\\-°');
	$smiliesUrl  = array('magicien.png', 'angry.gif', 'diable.png', 'ange.png', 'ninja.png', 'pinch.png', 'pirate.png', 'zorro.png', 'rouge.png', 'soleil.png', 'pleure.png', 'waw.png', 'smile.png', 'heureux.png', 'clin.png', 'langue.png', 'rire.gif', 'unsure.gif', 'triste.png', 'huh.png', 'mechant.png', 'blink.gif', 'hihi.png', 'siffle.png');
	$smiliesPath = "http://www.siteduzero.com/Templates/images/smilies/";
	
	for ($i = 0, $c = count($smiliesName); $i < $c; $i++) {
		$content = preg_replace(''' . $smiliesName[$i] . ''isU', '<img src="' . $smiliesPath . $smiliesUrl[$i] . '" alt="smiley" />', $content);
	}
	
	// Retours à la ligne
	$content = preg_replace(''\n'isU', '<br />', $content); 
	
	return $content;

}

if (isset($_POST["string"])) {
	$content = $_POST["string"];
	
	if (get_magic_quotes_gpc()) {
		$content = stripslashes($content);
	}

	echo parseZCode($content); // Ecriture du contenu parsé. 
}
?>
A noter que je ne veux pas de smilies bien que présent dans ce code. S'il n'y a pas de preview je pense que cela vient dette page View.php mais là j'ai de gros doutes. J'ai tellement testé de choses que.....
Peut-être vous faudra-t-il d'autres portions de code et dans ce cas n'hésitez pas à me demander.
Je me suis épuisé, fait de gros breaks pour me calmer mais hélas sans résultats. Une grosse aide me serait d'un ENOOOOOORME secours ! Merci infiniment d'avance.



Le bonheur est la seule chose que l'on peut donner sans l'avoir.
A voir également:

2 réponses

txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 521
25 févr. 2012 à 22:48
Au fait ! Un maximum de commentaires seraient grandement apprécié pour la compréhension de mes erreurs dans le code. Merci d'avance.

Le bonheur est la seule chose que l'on peut donner sans l'avoir.
1
<html>
<head>
<meta content="fr-ma" http-equiv="Content-Language" />
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Modifiez La liste Des Materiaux</title></head>
<body>
<form method="Post" name="Mataricule" action="Modifier.php">
Mataricule:<select name='Matricule' > <br/>
<?php
$cnx=mysqli_connect("localHost","root","me","gestion");
$requete="select * from materiel";
$resultat=mysqli_query($cnx,$requete);
while ($ligne=mysqli_fetch_row($resultat)){
echo"<option value='$ligne[0]'>$ligne[0]</option>";
}
?>
<input type="submit" value="Modifier" name="Modifier">
</form>
<?php
if(isset($_POST["Modifier"])){

$requete="SELECT*FROM materiel WHERE Mataricule='".$_POST['Mataricule']."'";

$resultat=mysqli_query($cnx,$requete);
if($resultat) {
$coord=mysqli_fetch_array($resultat);
echo"

Matricule Materiel:<input name='matricule' type='text' style='width: 170px' value='$coord[0]' disabled />


Marque Materiel: <input type='text' value='$coord[1]' name='Marque' >


Model Materiel: <input type='text' value='$coord[2]' name='Model' >

Prestataire: <input type='text' value='$coord[3]' name='prestataire' >



Type Materiel: <input type='text' value='$coord[4]' name='type' >
Qte Entrée: <input type='text' value='$coord[5]' name='Entree' disabled>

Qte Sortie: <input type='text' value='$coord[6]' name='Sortie' disabled>


Qte En Stock:<input type='text' value='$coord[7]' name='Stock' disabled>
</span>

<input type='reset' value='Annuler' name='effacer'> <input type='submit' value='Ajouter' name='envoyer'>


";
}



$marque=$_POST["marque"];
$model=$_POST["model"];
$prestataire=$_POST["prestataire"];
$type=$_POST["type"];


$cnx=mysqli_connect("LocalHost","root","me","gestion");
$requete2="UPDATE materiel SET Fournisseur=$prestataire AND Type=$type AND Marque=$marque AND model=$model WHERE Matricule='".$_POST['Mataricule']."'";
$resultat2=mysqli_query($cnx,$requete2);
}
?>
</body>
</html>
0
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 521
5 mars 2012 à 09:54
Bonjour à tous,

J'ai réglé l'affichage du calendrier dans le formulaire de saisie mais le contenu de ce champ (Varchar dans la table) à cause de l'utilisation d'un calendrier en popup ne sécrit pas dans la table. Pourquoi ?

Autre chose: il y a un champ de type datetime dans cette même table mais il n'affiche que des 0000-00-00 00:00:00. J'ai testé plusieurs codes dans un champ caché du formulaire (value="<?php ------- ; ?>"> (je n'ai pas accès au fichier car suis au bureau).

Si j'arrive à régler ces deux choses ce sera déjà un immense espoir pour la suite.
N'hésitez pas à faire vos propres tests (la table sera vidée) sur le site: http://saucede.free.fr/index.php?page=Ajout_Sortie&lang=Fr (Login=test, Pass=toto64). N'essayez pas la preview, ne fonctionne pas et je ne comprends pas du tout pourquoi.
La validation, elle, fonctionne. Vous verrez le résultat dans le menu Les activités/Les activités à venir (mais sans la date du calendrier).

Merci infiniment d'avance.

Le bonheur est la seule chose que l'on peut donner sans l'avoir.
1