8798 sujets

Développement web côté serveur, CMS

Pages :
Modérateur
(reprise du message précédent)

$Eemail est un paragraphe... donc tu l'affiches sous ton input...
$Eemailfaux est un paragraphe... donc... Smiley murf
je l'affiche sous mon input Smiley lol

bon on va encore se ****** de moi, alors j'ai tenté le code :


<label for="email">Votre e-mail *</label>
<input class="textfield" type="text" name="email" id="email"<?php
if(isset($affich['email']))
echo ' value="', $affich['email'], '"';
?> title="Veuillez entrer votre e-mail" />
<?php
if(isset($Eemail))
echo $Eemail;
?>
<?php
if(isset($affich['email']))
echo ' value="', $affich['email'], '"';
?> title="Veuillez entrer un mail valide" />
<?php
if(isset($Eemailfaux))
echo $Eemailfaux;
?>


En chargant le formulaire, le message d'erreur s'affiche directement Smiley ohwell , voici le message: title="Veuillez entrer un mail valide" />

Bref les 2 tests empty et synthaxe correcte s'affichent en même temps.
... d'un autre côté je vois bien qu'avec un code pareil, ça peut pas être autrement ...
Modifié par pp51 (22 Mar 2007 - 16:32)
Modérateur
bah il te laisse chercher un peu... Smiley lol

Je ne pourrais tester que ce soir si vraiment tu n'y arrives pas... mais laisse tout le code dans ce cas. Smiley cligne
je pensais bien que tu me laissais mariner Smiley cligne

Bon rapidement, que penses-tu du code que j'ai mis ?
Modérateur
bah que si j'enlève la partie PHP, je me retrouve avec ça Smiley cligne :
<label for="email">Votre e-mail *</label>

<input class="textfield" type="text" name="email" id="email" title="Veuillez entrer votre e-mail" />
 title="Veuillez entrer un mail valide" />
Je vais te faire passer une soirée plus agréable, je viens de trouver... coup de bol sans doute, mais ça marche Smiley lol

C'était bête comme choux Smiley langue


<label for="email">Votre e-mail *</label>
<input class="textfield" type="text" name="email" id="email"<?php
if(isset($affich['email']))
echo ' value="', $affich['email'], '"';
?> title="Veuillez entrer votre e-mail" />
<?php
if(isset($Eemail))
	echo $Eemail;
	[b]echo $Eemailfaux;[/b]
?>


Bon si je continue dans ma quête de champs vérifiés, il me reste la date de naissance: je voudrai le format jj/mm/aaaa

Pour le code postal, étant donné que je reçois aussi des demandes de l'étranger, je ne souhaite pas avoir un contrôle sur 5 chiffres.

Tu vois autre chose à contrôler ?

PS: j'ai trouvé le code suivant pour le contrôle de la date

 //fonction de vérification date de naissance sous format 07/01/1977
function verifdate($date)
{
$date=trim($date);
$date=strtolower($date);
if(eregi("^([0-9]{2})/([0-9]{2})/([0-9]{4})$",$date))
{
return true;
}
else
{
return false;
}
}


Qu'en penses-tu ? Ca a pas l'air de filtrer si tu mets 32/13/1800
Modifié par pp51 (23 Mar 2007 - 15:48)
Salut Smiley lol

Bon j'essaye maintenant d'enregistrer les données dans ma BDD en localhost.

Quand je charge le formulaire, j'ai un enregistrement vide d'office de tous les champs...

Ensuite quand je rentre des données, ça n'enregistre que 2 champs sur 9: prénom et email...

Je remets l'ensemble du code du formulaire, avec en gras en bas le code ajouté pour enregistrer les résultats dans ma BDD



	<div id="formulaire">
	<form method="post" action="<?php htmlspecialchars($PHP_SELF); ?>">
	<fieldset>
	<legend>Vos coordonnées</legend>
		<div>
		<label for="nom">Votre nom *</label>
		<input class="textfield" type="text" name="nom" id="nom"<?php
		// Si un nom a été envoyé et qu'on réaffiche le formulaire
		// on ajoute la valeur en enlevant les caractères d'échappement
		if(isset($affich['nom']))
			echo ' value="', $affich['nom'], '"';
		?> title="Veuillez entrer votre nom" />
		<?php
		// Si une erreur existe
		// on l'affiche
		if(isset($Enom))
			echo $Enom;
		?>
		</div>
			<div>
			<label for="prenom">Votre prénom *</label>
			<input class="textfield" type="text" name="prenom" id="prenom"<?php
			if(isset($affich['prenom']))
			echo ' value="', $affich['prenom'], '"';
			?> title="Veuillez entrer votre prénom" />
			<?php
			if(isset($Eprenom))
				echo $Eprenom;
			?>
			</div>
				<div>
					<label for="email">Votre e-mail *</label>
						<input class="textfield" type="text" name="email" id="email"<?php
						if(isset($affich['email']))
							echo ' value="', $affich['email'], '"';
						?> title="Veuillez entrer votre e-mail" />
						<?php
						if(isset($Eemail))
							echo $Eemail;
							echo $Eemailfaux;
						?>
					</div>
						<div>
						<label for="ville">Votre ville *</label>
						<input class="textfield" type="text" name="ville" id="ville"<?php

if(isset($affich['ville']))
	echo ' value="' . $affich['ville'] . '"';
						?> title="Veuillez entrer votre ville" />
						<?php

if(isset($Eville))
	echo $Eville;
						?>
					</div>
					
					<div>
						<label for="cp">Votre code postal *</label>
						<input class="textfield" type="text" name="cp" id="cp"<?php

if(isset($affich['cp']))
	echo ' value="' . $affich['cp'] .'"';
						?> title="Veuillez entrer votre code postal" />
						<?php
if(isset($Ecp))
	echo $Ecp;

						?>
					</div>

					<div>

						<label for="date_mariage">Date de votre mariage</label>
						<input class="textfield" type="text" name="date_mariage" id="date_mariage"<?php
if(isset($affich['date_mariage']))
	echo ' value="' . $affich['date_mariage'] . '"';
						?> title="Veuillez entrer la date de votre mariage"  />
					</div>

				</fieldset>
				<fieldset>
				<legend>Votre message</legend>
					<div>
						<label for="contenu">A vous la parole</label>
						<textarea name="contenu" cols="41" rows="4" id="contenu" title="Veuillez entrez ici votre message"><?php
						echo $affich['contenu'];
							?></textarea>
					</div>
					<fieldset>
					<div id="news">
						<p id="newsletter">Je souhaite recevoir la newsletter Princesse d'un Jour pour être informé(e) en exclusivité des nouveaux modèles</p>
												<input type="radio" name="newsletter" value="oui"<?php
							if(isset($newsletter) && $newsletter === 'oui')
									echo ' checked="checked"';
							?> /> oui 

							<input type="radio" name="newsletter" value="non"<?php
							if(isset($newsletter) && $newsletter === 'non')
									echo ' checked="checked"';
							?> /> non
						<?php
						if(isset($Enewsletter))
									echo $Enewsletter;
						?>

					</div>

				</fieldset>

				<div id="envoyer">
					<input type="image" alt="Envoyer" src="images/submit.gif" />
					<input type="hidden" name="action" value="envoyer" />
					<input type="hidden" name="token" value="<?php

$token = md5(uniqid(rand(), true)); // On crée un identifiant aléatoire
$_SESSION['token'] = $token; // On l'affecte à la session
echo $token; // et on l'affiche dans le formulaire
				?>" />
[b]<?php
$liendb = mysql_connect("localhost", "root", "");
mysql_select_db ("test");
$sql = "INSERT INTO pdv (nom, prenom, email, ville, cp, mariage, contenu, newsletter) 
VALUES ('".$REQUEST['nom']."', '".$_REQUEST ['prenom']."', '".$_REQUEST ['email']."', '".$REQUEST ['ville']."', '".$REQUEST ['cp']."', '".$REQUEST ['mariage']."', '".$REQUEST ['contenu']."', '".$REQUEST ['newsletter']."')";
if (mysql_query($sql)!=false) {
$idpdv= mysql_insert_id();
   print("pdv [$idpdv] < ".$_REQUEST['nom']." > enregistré.");
    }
   else
      print("Echec lors de la création du pdv.");
	  mysql_close($liendb);
?>
[/b]


Quelqu'un comprend pourquoi je ne récupère que 2 données ???

Smiley cligne

Je remets par hasard aussi le php

<?php
header('Content-type: text/html; charset=iso-8859-1'); // on indique l'encodage de la page
session_start(); // On démarre la session
// S'il y a des données envoyées par le formulaire affiché
// dans la session courante et que son identifiant correspond
// à celui de la session

if(isset($_POST['token']) && $_POST['token'] === $_SESSION['token'])

{

	$affich = array(); // On crée un tableau pour recevoir les données à afficher

	isset($_POST['nom']) && trim($_POST['nom']) != '' ? // Si un nom existe et s'il n'est pas nulle
		$affich['nom'] = htmlspecialchars($_POST['nom']) : // On supprime les caractères html
		$Enom = '<p class="error">Veuillez indiquer votre nom</p>'; // sinon on crée une erreur

	isset($_POST['prenom']) && trim($_POST['prenom']) != '' ?
		$affich['prenom'] = htmlspecialchars($_POST['prenom']) :
		$Eprenom = '<p class="error">Veuillez indiquer votre prénom</p>';

	if(($_POST['email']) && trim($_POST['email']) != '')  //Si le champ est rempli
     {
      if(preg_match('`^[[:alnum:]]([-_.]?[[:alnum:]])*@[[:alnum:]]([-_.]?[[:alnum:]])*\.([a-z]{2,4})$`', $_POST['email']))
    {
      $affich['email'] = htmlspecialchars($_POST['email']); // on enregistre la donnée
   }
   else
   {
      $Eemailfaux = '<p class="error">Veuillez indiquer un email valide</p>'; //on prépare un message comme quoi l'email est incorrect
   }
}
else
{
  $Eemail = '<p class="error">Veuillez indiquer votre email</p>'; // on prépare un message comme quoi le champ est vide
}

	isset($_POST['ville']) && trim($_POST['ville']) != '' ?
		$affich['ville'] = htmlspecialchars($_POST['ville']) :
		$Eville = '<p class="error">Veuillez indiquer votre ville</p>';

	isset($_POST['cp']) && trim($_POST['cp']) != '' ?
		$affich['cp'] = htmlspecialchars($_POST['cp']) :
		$Ecp = '<p class="error">Veuillez indiquer votre code postal</p>';

	if(isset($_POST['date_mariage']) && trim($_POST['date_mariage']) != '')
		$affich['date_mariage'] = htmlspecialchars($_POST['date_mariage']);

	if(isset($_POST['contenu']) && trim($_POST['contenu']) != '')
		$affich['contenu'] = htmlspecialchars($_POST['contenu']);

	isset($_POST['newsletter']) && // Si la valeur 'newsletter' existe et
	($_POST['newsletter'] === 'oui' || $_POST['newsletter'] === 'non') ? // Si la valeur est 'oui' ou 'non'
		$affich['newsletter'] = htmlspecialchars($_POST['newsletter']) :
		$Enewsletter = '<p class="error1">Veuillez indiquer si vous souhaitez recevoir notre newsletter</p>';

	if(get_magic_quotes_gpc) // Si les magic_quotes sont activées
		foreach($affich as $key => $value) // Pour chaque élément du tableau $affich
			$affich[$key] = stripslashes($value); // On supprime les caractères d'échappement

	if(!empty($affich['nom']) && !empty($affich['prenom']) && !empty($affich['email']) &&
	!empty($affich['ville']) && !empty($affich['cp']) && !empty($affich['newsletter']))
	{
		$destinataire = 'aa@bb.fr';
		$titre = 'Demande de points de vente';
		$headers = 'From: ' . $affich['email'] . ' <' . $affich['email'] .'>'."\r\n";
		$message = '';
		$message .= 'nom: ' . $affich['nom'] . "\n";
		$message .= 'prenom: ' . $affich['prenom'] . "\n";
		$message .= 'email: ' . $affich['email'] . "\n";
		$message .= 'ville: ' . $affich['ville'] . "\n";
		$message .= 'cp: ' . $affich['cp'] . "\n";
		$message .= 'mariage: ' . $affich['date_mariage'] . "\n";
		$message .= 'contenu: ' . $affich['contenu'] . "\n";
		$message .= 'newsletter: ' . $affich['newsletter'] . "\n";
		
		if(mail($destinataire, $titre, $message, $headers))
			header('Location: confirmation.php');
	}
}

?>

Modifié par pp51 (23 Mar 2007 - 22:56)
Salut Smiley lol

Bon et ben c'est bon Smiley lol tout s'enregitre bien dans ma BDD !

Petite erreur de code tout simplement et positionnement du code enregistrement autre part Smiley cligne

Bon me reste une seule chose, passer la date d'envoi du formulaire dans un champ invisible dans un input type="hidden", ça le fait ?
Modérateur
Salut,

moi, je ne dis plus rien... Comme ça, t'apprends plus vite... Smiley lol

ah si ! quand même... Avant de poser la question, faut essayer... Smiley ravi

<edit>mais si, mais si, tu peux le faire... Smiley lol
Modifié par koala64 (24 Mar 2007 - 16:12)
Smiley lol salut Koala Smiley lol

J'ai essayé avec ça


<input type="hidden" name="date" value="<?php $date = date("d-m-Y");?>" />


en l'incluant aussi ici

$sql = "INSERT INTO pdv (date, nom, prenom, email, ville, cp, mariage, contenu, newsletter) 
VALUES ('".$_REQUEST ['date']."', '".$_REQUEST ['nom']."', '".$_REQUEST ['prenom']."', '".$_REQUEST ['email']."', '".$_REQUEST ['ville']."', '".$_REQUEST ['cp']."', '".$_REQUEST ['date_mariage']."', '".$_REQUEST ['contenu']."', '".$_REQUEST ['newsletter']."')";


Mais la date stockée dans la BDD reste 0000-00-00

Je croyais que le code

<?php $date = date("d-m-Y");?>


permettait justement de définir la date du jour non ?

Dis seulement une parole et je serai Smiley lol Smiley lol Smiley lol
Modérateur
erf... C'est que PHP, c'est pas vraiment ma spécialité, hein... Smiley lol

Pour :
$date = date("d-m-Y");
oui, c'est ok mais là tu me dis que ta date est figée sur 0000-00-00 alors que normalement, le format que tu définis est du type xx-xx-xxxx... donc c'est que tu ne reçois rien ou que ton champ ne doit pas être du bon type... enfin, je pense... je ne sais pas trop en fait... Smiley langue
oui ben quand j'aurai ton niveau en php, je serai content Smiley cligne

Alors j'explique:
j'ai crée un champ date dans ma BDD. Type date, NOT NULL , et je n'ai pas donné un format type.

Quand j'ai crée ce champ, mes enregistrements précédents se sont vus attribués 0000-00-00, normal puisqu'il n'y avait rien.

Dans mon nouvel enregistrement, ça reste 0000-00-00.

D'après moi, je ne récupère pas la date, et cela fait que le champ date est considéré comme nul, donc 0000-00-00

Enfin je dis ça, mais php n'est pas ma spécialité Smiley lol
Modérateur
ben t'as mis type date... donc le format est défini...

Essaye avec un char(10) par exemple...

PS : Pour ceux qui sont callés en PHP/MySQL, je veux bien qu'on me corrige si je dis une ânerie... Smiley smile

Nota : On est complètement hors sujet comparé à ton titre... Smiley cligne
Modifié par koala64 (24 Mar 2007 - 17:43)
nan Smiley lol

si je mets char(10), du coup mon champ date est "0"

Bon je cloture ce topic et j'en ouvre un autre peut être ?

[Sujet cloturé]
Modifié par pp51 (24 Mar 2007 - 18:11)
Pages :