8722 sujets

Développement web côté serveur, CMS

Bonjour,

Premier pas en php : le formulaire ...
J'ai fais mon premier code avec ce que je connaît ...

Sauf qu'un lieu d'envoyer le mail suite au remplissage des champs du form, mon navigateur me propose d'ouvrir ou télécharger le doc .php ...

Si vous avez une âme de sauveteur, ça serait sympa de jeter un oeil sur mon code et me dire ce que vous en pensez et éventuellement me dire ce qui cloche ça me dépannerai bcp et m'aiderai à avancer ....

merci d'avance : voici mon code :

<?php
if(isset ($_POST) && isset ($_POST["nom"])  && isset ($_POST["prenom"]) && isset ($_POST["email"]) && isset ($_POST["tel"]) && isset ($_POST["message"]))

{ 
extract($_POST);
if(!empty($nom) && !empty($prenom) && !empty($email) && !empty($tel) && !empty($message)){
	$destinataire="moi@gmail.com";
	$sujet="demande de renseignements";
	$message="demande de renseignements via le site \n
	Nom : $nom \n
	Prénom : $prenom \n
	Email : $email \n
	Téléphone : $tel \n
	Message : $message \n";
	$entete="From: $nom \n Reply-To: $email";
	mail ($destinataire, $sujet, $message, $entete);
}
?>
<body>

<form method="post" action="contact.php">
<table width="350" border="0">
  <tr>
      <td width="144">Nom :</td>
      <td width="146"><label>
        <input name="nom" type="text" id="nom" size="30" maxlength="258" class="champ"/>
      </label></td>
  </tr>
  <tr>
      <td>Prénom :</td>
      <td><label>
        <input name="prenom" type="text" id="prenom" size="30" maxlength="258" class="champ"/>
      </label></td>
  </tr>
  <tr>
      <td>Email :</td>
      <td><label>
        <input name="email" type="text" id="email" size="30" maxlength="25" class="champ"/>
      </label></td>
  </tr>
  <tr>
      <td>Téléphone :</td>
      <td><label>
        <input name="tel" type="text" id="tel" size="30" maxlength="30" class="champ"/>
      </label></td>
  </tr>
  <tr>
      <td valign="top"><h6>Message :</h6></td>
    <td><form id="form5" name="form5" method="post" action=""class="champ">
      <label for="message"></label>
      <textarea name="message" id="message" cols="45" rows="5"></textarea>
    </form></td>
  </tr>
  <tr><td></td><td><input type="submit" id="envoi" title="envoyer" value="Envoyer" /></td></tr>
</table>
</form>
</body>


voilà j'ai pas mis de mise en place spéciale pour le moment c'est brut, sans créa....
merci
Salut,

Ton code html n'est pas correct :
* tu as deux fois la balise <form>.
* tes <input> sont dans des <label> ?!!

Je te conseille de partir sur un code plus simple et plus propre :

<form method="post" action="contact.php">
  <div>
    <label for="nom">Nom :</label>
    <input name="nom" type="text" id="nom" maxlength="258" />
  </div>
  <div>
    <label for="prenom">Prénom :</label>
    <input name="prenom" type="text" id="prenom" maxlength="258" />
  </div>
  <div>
    <label for="email">Email :</label>
    <input name="email" type="text" id="email" maxlength="25" />
  </div>
  <div>
    <label for="tel">Téléphone :</label>
    <input name="tel" type="text" id="tel" maxlength="30" />
  </div>
  <div>
    <label for="message">Message :</label>
    <textarea name="message" id="message" cols="45" rows="5"></textarea>
  </div>
  <div>
    <input type="submit" id="envoi" title="envoyer" value="Envoyer" />
  </div>
</form>


Je te déconseille fortement la fonction "extract" qui induit de grosses failles de sécurité !
Utilise plutôt les vrais variables :
$nom = isset($_POST['nom']) ? $_POST['nom'] : false;
$prenom = isset($_POST['prenom']) ? $_POST['prenom'] : false;
...

if ($nom && $prenom && ...){
  ...
}


À partir de cette base plus propre, tu peux refaire tes tests.
Un grand merci à toi ... j'ai corrigé ce que tu as proposé et en plus j'ai tout compris !!! ça commence à rentrer ... merci bcp ...

par contre ça marche tjrs pas ....
> je fais le test via dreamweaver
> aperçu ds le navigateur
> je remplis le formulaire
> à l'envoi l'écran affiche mon code php sur fond blanc .... !

c'est une balise manquante ?
je vous remontre les codes ... je vois pas d'où ça vient !
si c'est possible de m'expliquer les choses afin que j'avance dans mon apprentissage Smiley cligne )) merci bcp

voici mon body html
<body>

<form method="post" action="contact.php">
  <div>
    <label for="nom">Nom :</label>
    <input name="nom" type="text" id="nom" maxlength="258" />
  </div>
  <div>
    <label for="prenom">Prénom :</label>
    <input name="prenom" type="text" id="prenom" maxlength="258" />
  </div>
  <div>
    <label for="email">Email :</label>
    <input name="email" type="text" id="email" maxlength="25" />
  </div>
  <div>
    <label for="tel">Téléphone :</label>
    <input name="tel" type="text" id="tel" maxlength="30" />
  </div>
  <div>
    <label for="message">Message :</label>
    <textarea name="message" id="message" cols="45" rows="5"></textarea>
  </div>
  <div>
    <input type="submit" id="envoi" title="envoyer" value="Envoyer" />
  </div>
</form>

</body>


et mon doc.php

<?php
$nom = isset($_POST['nom']) ? $_POST['nom'] : false;
$prenom = isset($_POST['prenom']) ? $_POST['prenom'] : false;
$prenom = isset($_POST['email']) ? $_POST['email'] : false;
$prenom = isset($_POST['tel']) ? $_POST['tel'] : false;
$prenom = isset($_POST['message']) ? $_POST['message'] : false;

if ($nom && $prenom && $email && $tel && $message)
{ 
extract($_POST);
if(!empty($nom) && !empty($prenom) && !empty($email) && !empty($tel) && !empty($message)){
	$destinataire="annelucie28@gmail.com";
	$sujet="contact2p2l";
	$message="demande via le site 2p2l \n
	Nom : $nom \n
	Prénom : $prenom \n
	Email : $email \n
	Téléphone : $tel \n
	Message : $message \n";
	$entete="From: $nom \n Reply-To: $email";
	mail ($destinataire, $sujet, $message, $entete);
}
?>
C'est normal que ça ne fonctionne pas, tu utilises Dreamweaver (bon, personne n'est parfait) qui est un logiciel de création de code HTML.
En aucun cas, ce logiciel te permet d'interpréter le PHP, pour cela tu as besoin d'un serveur apache PHP comme te le suggère FloydinBremen et benj.
Modifié par yoleouf (27 Mar 2013 - 09:06)
Sur Mac OS X, Apache est installé par défaut, pour démarrer le serveur:
- Pour OS X 10.8 et versions ultérieures:
| - Télécharger: http://amz.clickontyler.com/WebSharing.zip
| - Ouvrir le fichier afin qu'il s'insère parmi les préférences système
| - Aller dans la rubrique "Web Sharing" en bas des préférences système
| - Mettre l'interrupteur sur On

- Pour OS X 10.7 est version inférieures:
| - Aller dans la rubrique "Partage" des préférences système
| - Cliquer puis cocher "Partage Web" dans la liste de gauche

Tu pourras ensuite accéder à ton serveur à l'adresse localhost ou 127.0.0.1
Le dossier où se trouve les fichiers du serveur (où mettre un site par exemple) est au chemin /Bibliothèque/WebServer/Documents (ou /Library/WebServer/Documents c'est pareil)

Pour activer PHP, commence par stopper le serveur depuis la rubrique des préférences système précédemment utilisée, ensuite, accède au fichier /private/etc/Apache2/httpd.conf en root ou sudo, puis cherche la ligne suivante:
#LoadModule php5_module libexec/apache2/libphp5.so

et enlève le dièse qui la précède:
LoadModule php5_module libexec/apache2/libphp5.so


Ensuite relance le serveur comme fait précédemment; c'est bon, php est activé !

Pour éditer, je te conseille Smultron ou fraise, il existe des version gratuites. Le must étant selon moi Coda 2, disponible sur le Mac App Store pour 79,99€.
[quote=juliendargelos]Sur Mac OS X, Apache est installé par défaut, pour démarrer le serveur:
- Pour OS X 10.8 et versions ultérieures:
| - Télécharger: http://amz.clickontyler.com/WebSharing.zip
| - Ouvrir le fichier afin qu'il s'insère parmi les préférences système
| - Aller dans la rubrique &quot;Web Sharing&quot; en bas des préférences système
| - Mettre l'interrupteur sur On

- Pour OS X 10.7 est version inférieures: je suis dans ce cas .... c'est ok, c'est fait
| - Aller dans la rubrique &quot;Partage&quot; des préférences système
| - Cliquer puis cocher &quot;Partage Web&quot; dans la liste de gauche

Tu pourras ensuite accéder à ton serveur à l'adresse localhost ou 127.0.0.1 parfait ...
par contre après je suis perdue .... désolée[
/b]
Le dossier où se trouve les fichiers du serveur (où mettre un site par exemple) est au chemin /Bibliothèque/WebServer/Documents (ou /Library/WebServer/Documents c'est pareil)

Pour activer PHP, commence par stopper le serveur depuis la rubrique des préférences système précédemment utilisée, ensuite, accède au fichier /private/etc/Apache2/httpd.conf en root ou sudo, puis cherche la ligne suivante:
#LoadModule php5_module libexec/apache2/libphp5.so

et enlève le dièse qui la précède:
LoadModule php5_module libexec/apache2/libphp5.so



[b][i]Par contre j'ai besoin de comprendre ce que je fais si c'est possible de m'éclairer ...
donc en fait pour activer un php il faut l'héberger sur un serveur via apache c'est ça ?
j'espère ne pas dire de bêtises et avoir des infos complémentaires, ma curiosité est attisée !

me
rci[/i][/b]
Il ne s'agit pas "d'héberger" PHP, celui-ci est déjà installé sur ton ordinateur, ainsi que apache, mais pour utiliser PHP, le plus simple est d'utiliser ton serveur pré-installé.
juliendargelos a écrit :
Tu pourras ensuite accéder à ton serveur à l'adresse localhost ou 127.0.0.1
Une fois que ton serveur est activé, pour y accéder en port 80 (http), c'est-à-dire comme un site web quelconque, l'adresse à utiliser est celle-ci. Essaye de taper cette adresse dans ton navigateur, tu verra apparaître un message "It's Work !" qui indiquera que ton serveur est bel et bien activé. Après, libre à toi de disposer n'importe quels scripts sur ce serveur (n'oublie pas qu'un serveur n'est pas nécessairement une machine distante, dans ce cas ci, il s'agit d'un serveur local dont tu es le seul à avoir l'accès).

En tout cas, je trouve que PHP est excellent pour commencer la programmation, en effet, contrairement au java, ou au C, il ne nécessite pas de compilation ou d'environnement de travail, juste un éditeur de texte. De plus, il permet une syntaxe très souple (Contrairement au javascript et ses fonctions sensibles à la casse...).
Modifié par juliendargelos (30 Mar 2013 - 20:07)
Bonsoir,

Non toujours pas réglé je commence à desespérer ...
j'étais contente de faire mes premiers pas en php mais je galère pas mal ....

voici ce que j'obtient sur safari :
Si vous lisez cette page, c'est que les propriétaires de ce domaine viennent d'installer le serveur web Apache avec succès. Ils doivent maintenant ajouter du contenu à ce répertoire et remplacer cette page, ou bien faire pointer le serveur vers l'endroit où se trouve le contenu réel du site.

Vous voyez cette page au lieu du site attendu ?

Vous voyez cette page parce que l'administrateur du site a modifié la configuration de ce serveur Web. Veuillez contacter l'administrateur du site concerné. La Fondation Apache (Apache Software Foundation), qui produit le logiciel Apache utilisé par ce site, n'a rien à voir avec la maintenance de ce site et ne peut intervenir sur sa configuration.

La documentation Apache est incluse dans cette distribution.

Le webmaster de ce site peut librement utiliser l'image ci-dessous sur un site web utilisant le logiciel Apache. Merci d'avoir choisi Apache !



comment faire pour ajouter du contenu ?
je sens que j'y suis presque reste à affiner le processus de mise en ligne et d'application du php ...

merci de votre aide !!!! Smiley biggrin Smiley biggrin
Bonjour.

Je ne peux pas t'aider pour l'installation d'un serveur Apache en local, mais voici le code que j'utilise pour le traitement de mon formulaire de contact :

<?
	  
/* R&eacute;cup&eacute;ration des valeurs des champs du formulaire */
if (get_magic_quotes_gpc())
{
	$identite = stripslashes($_POST['identite']); 
    $adresse = stripslashes($_POST['adresse']); 
    $telephone = stripslashes($_POST['telephone']);  
    $message = stripslashes($_POST['message']); 
} 
else
{  
	$identite = $_POST['identite']; 
	$adresse = $_POST['adresse']; 
    $telephone = $_POST['telephone']; 
    $message = $_POST['message']; 
}





$sujet = "Message depuis site xxxxxxxxxxxxxxn";
$identite = $identite;
$msg = '    ';


/* Destinataire (votre adresse e-mail) */
$to = 'xxxxxxxxxx@free.fr';
 
/* Construction du message */
$msg .= '  '."\r\n";
$msg .= 'Identite; : '.$identite."\r\n";
$msg .= 'Adresse e-mail : '.$adresse."\r\n";
$msg .= 'Téléphone : '.$telephone."\r\n";
$msg .= 'Message : '.$message."\r\n\r\n";


 
/* En-t&ecirc;tes de l'e-mail */
$headers = 'From: '.$identite.' <'.$adresse.'>'."\r\n\r\n";
 
/* Envoi de l'e-mail */
mail($to, $sujet, $msg, $headers);


?>
Le dossier où se trouve les fichiers du serveur (où mettre un site par exemple) est au chemin /Bibliothèque/WebServer/Documents (ou /Library/WebServer/Documents c'est pareil)
En gros, tu vas ici, et tu dépose tes fichiers (en supprimant le fichier index.html déjà présent).

Dans tous les cas, je te conseille de te documenter sur Apache et Unix car tu semble avoir quelques lacunes Smiley cligne
Modifié par juliendargelos (09 Apr 2013 - 00:05)