Eléphant du PHP |
453 Messages
02 août 2009, 22:35
Hello Wilou 26,
En effet, je n'ai pas tout à fait saisie ce que tu veux faire. J'ai compris que si la personne saisit le Allopass, elle est redirigée vers un formulaire. Est ce que Allopass donne toujours le même code ? Si c'est le cas, ce serait un truc du style (simplifié):
$codeAlloPass = "un code";
if($_POST['AlloPass'] == $codeAlloPass){
//redirection formulaire lien
header("location:chemin/formulaireLien.php");
}else{
//page d'accueil
}
Une fois que l'internaute a remplit le formulaire, tu récupères les valeurs via la superglobale $_POST (<form action="" method="POST"...). Tu vérifies que les champs soient remplis correctement et après insertion dans la table. Ça devrait faire un truc du style (simplifié) :
<?php
function formLien(){
?>
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post">
<p>
<label>prenom :</label>
<input type="text" name="prenom" value="<?php echo (!empty($_POST["prenom"]))? $_POST["prenom"] :""; ?>" />
</p>
<p>
<label>nom :</label>
<input type="text" name="nom" value="<?php echo (!empty($_POST["nom"]))? $_POST["nom"] :""; ?>" />
</p>
<p>
<label>email :</label>
<input type="text" name="email" value="<?php echo (!empty($_POST["email"]))? $_POST["email"] :""; ?>" />
</p>
<p>
<label>lien :</label>
<input type="text" name="lien" value="<?php echo (!empty($_POST["lien"]))? $_POST["lien"] :""; ?>" />
</p>
<p>
<input type="hidden" name="formLien" value="__envoi" />
<input type="submit" />
</p>
</form>
<?php
}
function controleFormLien(){
$erreur = array();
if(empty($_POST["prenom"]))
$erreur[] = "Veuillez remplir votre prénom.";
if(empty($_POST["nom"]))
$erreur[] = "Veuillez remplir votre nom.";
if(!filter_var($_POST["email"],FILTER_VALIDATE_EMAIL))
$erreur[] = "Votre adresse courriel semble incorrect.";
if(!filter_var($_POST["email"],FILTER_VALIDATE_URL))
$erreur[] = "Votre URL semble incorrect.";
if(!empty($erreur))
return $erreur;
}
if(!empty($_POST["formLien"]) && $_POST["formLien"] == "__envoi"){
if( $erreur = controleFormLien()){
echo "<ul>\n";
for($i = 0;$i < count($erreur); $i++){
echo "\t<li>".$erreur[$i]."</li>\n";
}
echo "</ul>\n";
formLien();
}else{
$connect = mysql_connect("localhost","root","") or die("erreur de connexion serveur"); //mauvaise pratique
mysql_select_db("laBase",$connect) or die("erreur de connexion à la bdd"); //mauvaise pratique
$donneesBdd = array();
foreach($_POST as $k => $v){
$donneesBdd[] = mysql_real_escape_string($_POST[$k]);
}
list($prenom, $nom, $mail, $lien) = $donneesBdd;
$sql = "INSERT INTO table_lien (prenom,nom,email,lien) ";
$sql .= "VALUES ('$prenom','$nom','$mail','$lien')";
mysql_query($sql) or die(mysql_error()); //mauvaise pratique
header("location:accueil.php");
}
}else{
formLien();
}
?>
*code fait de tête. Je peux m'être trompé :$
Après dans ta page d'accueil, tu n'as plus qu'à afficher le résultat du formulaire.
Si tu as des questions, n'hésite pas.
Bonne soirée à toi.