2 actions dans un formulaire (php)
Fermé
wallacebarth22
Messages postés
91
Date d'inscription
mercredi 5 septembre 2007
Statut
Membre
Dernière intervention
9 mai 2019
-
12 déc. 2009 à 14:23
wallacebarth22 Messages postés 91 Date d'inscription mercredi 5 septembre 2007 Statut Membre Dernière intervention 9 mai 2019 - 12 déc. 2009 à 21:31
wallacebarth22 Messages postés 91 Date d'inscription mercredi 5 septembre 2007 Statut Membre Dernière intervention 9 mai 2019 - 12 déc. 2009 à 21:31
A voir également:
- 2 actions dans un formulaire (php)
- Formulaire de réclamation facebook - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans system - Guide
- 2 ecran pc - Guide
- Formulaire de reclamation instagram - Guide
- Le formulaire rempli - Guide
8 réponses
Cephei
Messages postés
118
Date d'inscription
mercredi 9 décembre 2009
Statut
Membre
Dernière intervention
10 décembre 2018
19
12 déc. 2009 à 14:30
12 déc. 2009 à 14:30
Je crois que tu te mélanges les pinceaux !
L'action d'un formulaire d'un point de vue HTML est l'url de la page vers laquelle seront postés les données de ton formulaire...
Les actions que tu fais avec c'est la notion habituelle d'effectuer quelque chose ! Donc, dans le code de la page qui correspond à l'attribut html "action" du formulaire, tu fait autant d'action que tu le souhaite !
Ai-je été assez clair ?
L'action d'un formulaire d'un point de vue HTML est l'url de la page vers laquelle seront postés les données de ton formulaire...
Les actions que tu fais avec c'est la notion habituelle d'effectuer quelque chose ! Donc, dans le code de la page qui correspond à l'attribut html "action" du formulaire, tu fait autant d'action que tu le souhaite !
Ai-je été assez clair ?
wallacebarth22
Messages postés
91
Date d'inscription
mercredi 5 septembre 2007
Statut
Membre
Dernière intervention
9 mai 2019
7
12 déc. 2009 à 14:49
12 déc. 2009 à 14:49
euh oui je crois,
donc je dois trouver un moyen d'envoyer une action en php... je vais creuser la question, merci de ton aide
je peux te demander si tu vois des erreur monstrueuse dans ma page ?
<?php
/*************************************************
* Micro Postcard
// CHANGE PARAMETERS HERE BEGIN
$columns = 5;
$senderName = 'xxxx'; // Eg.: John's Postcards
$senderEmail = 'xxxxx@xxx.fr'; // Eg.: john@postcard.com
// Change only if you have problems with urls
$postcardURL = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME'];
// CHANGE PARAMETERS HERE END
// This function displays the available images
function displayPhotos(){
global $columns;
$act = 0;
// Open the actual directory
if ($handle = opendir("thumbs")) {
// Read all file from the actual directory
while ($file = readdir($handle)) {
if (!is_dir($file)) {
if ($act == 0) echo "<tr>";
echo "<td align='center'><img src='thumbs/$file' alt='votre carte' /><br/><input type='radio' name='selimg' value='$file' /></td>";
$act++;
if ($act == $columns){
$act = 0;
echo "</tr>";
}
}
}
echo "</tr>";
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>E-cards</title>
<link href="style/style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="main">
<div id="caption">E-cards</div>
<?php if ( (!isset($_POST['submit'])) && (!isset($_GET['show'])) ) { ?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<table align="center">
<?php displayPhotos(); ?>
</table>
<h3>Choisissez une carte et remplissez le formulaire suivant</h3>
<table width="100%">
<tr>
<td>Envoyez à (adresse email du destinataire) :</td><td><input type="text" name="email" size="30"/></td></tr>
<br />
<tr>
<td>De la part de :</td><td> </td></tr>
<tr>
<td><blockquote>
<p>indiquez votre prénom :</p>
</blockquote></td>
<td><input type="text" name="prenom" size="30"/></td></tr>
<tr>
<td><blockquote>
<p>indiquez votre email :</p>
</blockquote></td>
<td><input type="text" name="email2" size="30"/></td></tr>
<tr>
<td>Message :</td><td><textarea name="message" rows="10" cols="40"></textarea></td></tr>
<tr><td colspan="2" align="center"><input type="submit" value="Envoyez !" name="submit"/></td></tr>
</form>
<FORM Method="POST" Action="sympa.php">
<tr align="center"><td colspan="2"> <span class="Style1">Désirez-vous recevoir notre <strong>newsletter</strong> ?</span> <br>
</td>
</tr>
<tr align="center"><td colspan="2">
<input name="quoi" type="radio" id="subscribe" value="subscribe" checked="checked" />
<label for="inscription"><span class="Style1">Oui</span></label>
<span class="Style1">
<input name="quoi" type="radio" id="0" value="0" />
Non
</span>
<br /><br/>
</table>
</form>
<?php } else if ( (isset($_POST['submit'])) && (!isset($_GET['show'])) ) {
$pic = isset ($_POST['selimg']) ? $_POST['selimg'] : '';
$filename = date('YmdGis');
$f = fopen('messages/'.$filename.".txt","w+");
fwrite($f,$pic."\n");
fwrite($f,$_POST['email']."\n");
fwrite($f,htmlspecialchars($_POST['message'])."\n");
fclose($f);
// Compose the mail
$from = "From: $senderName <$senderEmail>\r\n";
$replay = "Reply-To: $senderEmail\r\n";
$params = "MIME-Version: 1.0\r\n";
$params .= "Content-type: text/plain; charset=iso-8859-1\r\n";
$mailtext = "Vous venez de recevoir une E-cards\r\n\r\n"
. "Pour voir votre carte, cliquez sur le lien suivant:\r\n"
. "$postcardURL"."?show=$filename\r\n\r\n"
. "Nous esperons que cette E-card vous plaira, et n'hésitez pas à en envoyer à votre tour !\r\n\r\n"
. "Cordialement,\r\n"
. "E-card\r\n"
. $postcardURL;
// Send email
@mail($_POST['email'],"Vous avez reçu une E-card !",$mailtext,$from.$replay.$params);
?>
<center>
Votre E-card a été envoyé avec succès !<br/><br/>
<img src='images/<?php echo $pic; ?>' alt="postcard" /><br/><br/><br/><?php echo nl2br(htmlspecialchars($_POST['message'])); ?></center>
<?php } else if ( (!isset($_POST['submit'])) && (isset($_GET['show'])) ) {
$file = isset($_GET['show']) ? $_GET['show'] : '' ;
$content = file('messages/'.$file.".txt");
$pic = $content['0'];
unset ($content['0']);
unset ($content['1']);
$main = "";
foreach ($content as $value) {
$main .= $value;
}
?>
<center>
Votre E-card !<br/><br/>
<img src='images/<?php echo $pic; ?>' alt="postcard" /><br/><br/><br/><?php echo nl2br(htmlspecialchars($main)); ?></center>
<?php } ?>
<div id="source">xxxxxxxxxxxxxxxxx</div>
</div>
</body>
donc je dois trouver un moyen d'envoyer une action en php... je vais creuser la question, merci de ton aide
je peux te demander si tu vois des erreur monstrueuse dans ma page ?
<?php
/*************************************************
* Micro Postcard
// CHANGE PARAMETERS HERE BEGIN
$columns = 5;
$senderName = 'xxxx'; // Eg.: John's Postcards
$senderEmail = 'xxxxx@xxx.fr'; // Eg.: john@postcard.com
// Change only if you have problems with urls
$postcardURL = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME'];
// CHANGE PARAMETERS HERE END
// This function displays the available images
function displayPhotos(){
global $columns;
$act = 0;
// Open the actual directory
if ($handle = opendir("thumbs")) {
// Read all file from the actual directory
while ($file = readdir($handle)) {
if (!is_dir($file)) {
if ($act == 0) echo "<tr>";
echo "<td align='center'><img src='thumbs/$file' alt='votre carte' /><br/><input type='radio' name='selimg' value='$file' /></td>";
$act++;
if ($act == $columns){
$act = 0;
echo "</tr>";
}
}
}
echo "</tr>";
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>E-cards</title>
<link href="style/style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="main">
<div id="caption">E-cards</div>
<?php if ( (!isset($_POST['submit'])) && (!isset($_GET['show'])) ) { ?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<table align="center">
<?php displayPhotos(); ?>
</table>
<h3>Choisissez une carte et remplissez le formulaire suivant</h3>
<table width="100%">
<tr>
<td>Envoyez à (adresse email du destinataire) :</td><td><input type="text" name="email" size="30"/></td></tr>
<br />
<tr>
<td>De la part de :</td><td> </td></tr>
<tr>
<td><blockquote>
<p>indiquez votre prénom :</p>
</blockquote></td>
<td><input type="text" name="prenom" size="30"/></td></tr>
<tr>
<td><blockquote>
<p>indiquez votre email :</p>
</blockquote></td>
<td><input type="text" name="email2" size="30"/></td></tr>
<tr>
<td>Message :</td><td><textarea name="message" rows="10" cols="40"></textarea></td></tr>
<tr><td colspan="2" align="center"><input type="submit" value="Envoyez !" name="submit"/></td></tr>
</form>
<FORM Method="POST" Action="sympa.php">
<tr align="center"><td colspan="2"> <span class="Style1">Désirez-vous recevoir notre <strong>newsletter</strong> ?</span> <br>
</td>
</tr>
<tr align="center"><td colspan="2">
<input name="quoi" type="radio" id="subscribe" value="subscribe" checked="checked" />
<label for="inscription"><span class="Style1">Oui</span></label>
<span class="Style1">
<input name="quoi" type="radio" id="0" value="0" />
Non
</span>
<br /><br/>
</table>
</form>
<?php } else if ( (isset($_POST['submit'])) && (!isset($_GET['show'])) ) {
$pic = isset ($_POST['selimg']) ? $_POST['selimg'] : '';
$filename = date('YmdGis');
$f = fopen('messages/'.$filename.".txt","w+");
fwrite($f,$pic."\n");
fwrite($f,$_POST['email']."\n");
fwrite($f,htmlspecialchars($_POST['message'])."\n");
fclose($f);
// Compose the mail
$from = "From: $senderName <$senderEmail>\r\n";
$replay = "Reply-To: $senderEmail\r\n";
$params = "MIME-Version: 1.0\r\n";
$params .= "Content-type: text/plain; charset=iso-8859-1\r\n";
$mailtext = "Vous venez de recevoir une E-cards\r\n\r\n"
. "Pour voir votre carte, cliquez sur le lien suivant:\r\n"
. "$postcardURL"."?show=$filename\r\n\r\n"
. "Nous esperons que cette E-card vous plaira, et n'hésitez pas à en envoyer à votre tour !\r\n\r\n"
. "Cordialement,\r\n"
. "E-card\r\n"
. $postcardURL;
// Send email
@mail($_POST['email'],"Vous avez reçu une E-card !",$mailtext,$from.$replay.$params);
?>
<center>
Votre E-card a été envoyé avec succès !<br/><br/>
<img src='images/<?php echo $pic; ?>' alt="postcard" /><br/><br/><br/><?php echo nl2br(htmlspecialchars($_POST['message'])); ?></center>
<?php } else if ( (!isset($_POST['submit'])) && (isset($_GET['show'])) ) {
$file = isset($_GET['show']) ? $_GET['show'] : '' ;
$content = file('messages/'.$file.".txt");
$pic = $content['0'];
unset ($content['0']);
unset ($content['1']);
$main = "";
foreach ($content as $value) {
$main .= $value;
}
?>
<center>
Votre E-card !<br/><br/>
<img src='images/<?php echo $pic; ?>' alt="postcard" /><br/><br/><br/><?php echo nl2br(htmlspecialchars($main)); ?></center>
<?php } ?>
<div id="source">xxxxxxxxxxxxxxxxx</div>
</div>
</body>
Cephei
Messages postés
118
Date d'inscription
mercredi 9 décembre 2009
Statut
Membre
Dernière intervention
10 décembre 2018
19
12 déc. 2009 à 14:51
12 déc. 2009 à 14:51
Je t'avoue que j'ai pas le courage ... ^^
Bon ok ! Deux minutes alors !
Bon ok ! Deux minutes alors !
wallacebarth22
Messages postés
91
Date d'inscription
mercredi 5 septembre 2007
Statut
Membre
Dernière intervention
9 mai 2019
7
12 déc. 2009 à 15:03
12 déc. 2009 à 15:03
po grave, je veux pas t'embeter, c'est deja sympa d'avoir repondu a mes question
Cephei
Messages postés
118
Date d'inscription
mercredi 9 décembre 2009
Statut
Membre
Dernière intervention
10 décembre 2018
19
12 déc. 2009 à 15:12
12 déc. 2009 à 15:12
Trop tard ^^
Ca ne m'a pas ennuyé ... et on est tous passé par là !
Ca ne m'a pas ennuyé ... et on est tous passé par là !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Cephei
Messages postés
118
Date d'inscription
mercredi 9 décembre 2009
Statut
Membre
Dernière intervention
10 décembre 2018
19
12 déc. 2009 à 15:11
12 déc. 2009 à 15:11
Déjà ta fonction displayPhotos() elle doit pas cracher du code html valide ...
Ceci pour deux raisons :
- Je vois pas de balise <table> avant d'écrire les lignes (<tr></tr>) ni </table> à la fin de la fonction...
- Ensuite, à la fin du fait un </tr> pour fermer la ligne en cours : Sur le principe c'est bien d'y avoir pensé mais tu vérifie même pas si tu viens pas d'en fermer une, et d'autre part tu ne rajoutes pas les cellules manquantes éventuelles ... Du coup ton tableau va être tout bizarre et différent selon les naviguateurs !
Ok, je viens de voir que tu mets les balises <table> et </table> autour de l'appel à ta fonction.
Ca marche mais une remarque : autant les mettre dans la fonction, puisqu'il te sera jamais possible d'utiliser ta fonction sans mettre ces balises... Question d'unité de code ! En plus après c'est bien plus lisible...
Faut apprendre a faire du code propre, pour débugger et maintenir ça va 20 à 100 fois plus vite, c'est garanti.
Sinon, j'ai lu rapidement le reste pour voir la structure ...
- Essaye de ne mettre qu'un formulaire dans ta page.
- <label for="inscription"> ... c'est du HTML depuis quand ça ????
- Ensuite, fait l'execution de ton code avant la présentation de ta page, ça t'évitera de faire deux versions de page ... tu perds tout l'intérêt du dynamisme de PHP. Quand tu es dans ta page, t'as juste à rajouter dans ton formulaire un endroit ou un message indique que le traitement précédent à bien été effectué, mais ça permet de recommencer directement sans rappeller la page vièrge de toute donnée de formulaire ...
J'espère que c'est clair, c'est pas facile à expliquer mais là t'as besoin de rigueur, c'est clair ! Alors applique toi ... Tu seras que ton code est bon lorsqu'il est le plus simple et le plus cours possible, facile à relire, et qu'il fonctionne sans bug ... sinon c'est qu'il y a toujours moyen de faire mieux ...
Ceci pour deux raisons :
- Je vois pas de balise <table> avant d'écrire les lignes (<tr></tr>) ni </table> à la fin de la fonction...
- Ensuite, à la fin du fait un </tr> pour fermer la ligne en cours : Sur le principe c'est bien d'y avoir pensé mais tu vérifie même pas si tu viens pas d'en fermer une, et d'autre part tu ne rajoutes pas les cellules manquantes éventuelles ... Du coup ton tableau va être tout bizarre et différent selon les naviguateurs !
Ok, je viens de voir que tu mets les balises <table> et </table> autour de l'appel à ta fonction.
Ca marche mais une remarque : autant les mettre dans la fonction, puisqu'il te sera jamais possible d'utiliser ta fonction sans mettre ces balises... Question d'unité de code ! En plus après c'est bien plus lisible...
Faut apprendre a faire du code propre, pour débugger et maintenir ça va 20 à 100 fois plus vite, c'est garanti.
Sinon, j'ai lu rapidement le reste pour voir la structure ...
- Essaye de ne mettre qu'un formulaire dans ta page.
- <label for="inscription"> ... c'est du HTML depuis quand ça ????
- Ensuite, fait l'execution de ton code avant la présentation de ta page, ça t'évitera de faire deux versions de page ... tu perds tout l'intérêt du dynamisme de PHP. Quand tu es dans ta page, t'as juste à rajouter dans ton formulaire un endroit ou un message indique que le traitement précédent à bien été effectué, mais ça permet de recommencer directement sans rappeller la page vièrge de toute donnée de formulaire ...
J'espère que c'est clair, c'est pas facile à expliquer mais là t'as besoin de rigueur, c'est clair ! Alors applique toi ... Tu seras que ton code est bon lorsqu'il est le plus simple et le plus cours possible, facile à relire, et qu'il fonctionne sans bug ... sinon c'est qu'il y a toujours moyen de faire mieux ...
wallacebarth22
Messages postés
91
Date d'inscription
mercredi 5 septembre 2007
Statut
Membre
Dernière intervention
9 mai 2019
7
12 déc. 2009 à 15:15
12 déc. 2009 à 15:15
bon ya plus qua !
m'atteler a faire mieux !
merci beaucou pde ton aide
++
m'atteler a faire mieux !
merci beaucou pde ton aide
++
Cephei
Messages postés
118
Date d'inscription
mercredi 9 décembre 2009
Statut
Membre
Dernière intervention
10 décembre 2018
19
12 déc. 2009 à 15:16
12 déc. 2009 à 15:16
J'oubliais un détail aussi ...
C'est pas correct et pas légal de précocher une inscription à une newsletter dans un formulaire !
C'est pas correct et pas légal de précocher une inscription à une newsletter dans un formulaire !
wallacebarth22
Messages postés
91
Date d'inscription
mercredi 5 septembre 2007
Statut
Membre
Dernière intervention
9 mai 2019
7
12 déc. 2009 à 21:31
12 déc. 2009 à 21:31
à dire vrai, je suis à 200% d'accord avec toi, je suis un ardent défenseur des libertés fondamentales, mais par contre mon boss ... n'est pas vraiment du même avis !