Formulaire d'inscription : deux uploads à faire
Posté : 07 juin 2012, 19:27
Bonsoir à tous,
Je finalise mon site en améliorant mon formulaire d'inscription. Tout est niquel, je cherche juste à faire en sorte que mon user ajoute lors de son inscription sa photo (avatar) ET son CV (pdf).
Alors la photo, ça roule tout seul, mais maintenant que je veux ajouter le CV ça cafouille.
Je pense bien avoir trouvé pourquoi (mes files sont stockés en temporaire, donc deux "name" et deux "destination" en temporaire ça peut pas cohabiter), mais par contre je ne comprends pas comment contourner ce problème.
J'ai essayé en lançant une page php autre avec un lien, mais là je ne sais pas comment faire pour que le CV soit bien lié à mon user ensuite, d'où la solution idéale : uploader les deux dans le même formulaire.
D'avance merci !
Je finalise mon site en améliorant mon formulaire d'inscription. Tout est niquel, je cherche juste à faire en sorte que mon user ajoute lors de son inscription sa photo (avatar) ET son CV (pdf).
Alors la photo, ça roule tout seul, mais maintenant que je veux ajouter le CV ça cafouille.
Je pense bien avoir trouvé pourquoi (mes files sont stockés en temporaire, donc deux "name" et deux "destination" en temporaire ça peut pas cohabiter), mais par contre je ne comprends pas comment contourner ce problème.
J'ai essayé en lançant une page php autre avec un lien, mais là je ne sais pas comment faire pour que le CV soit bien lié à mon user ensuite, d'où la solution idéale : uploader les deux dans le même formulaire.
<?php
// Redirige l'utilisateur s'il est déjà identifié
if(isset($_COOKIE["NumEtu"]))
{
header("Location: ../index.php");
}
else
{
// Formulaire visible par défaut
$masquer_formulaire = false;
// Une fois le formulaire envoyé
if(isset($_POST["BT_Envoyer"]))
{
// Vérification de la validité des champs
if(!mb_ereg("^[A-Za-z0-9_]{4,20}$", $_POST["TB_Nom_Utilisateur"]))
{
$message = "Votre nom d'utilisateur doit comporter entre 4 et 20 caractères<br />\n";
$message .= "L'utilisation de l'underscore est autorisée";
}
elseif(!mb_ereg("^[A-Za-z0-9]{4,}$", $_POST["TB_Mot_de_Passe"]))
{
$message = "Votre mot de passe doit comporter au moins 4 caractères";
}
elseif($_POST["TB_Mot_de_Passe"] != $_POST["TB_Confirmation_Mot_de_Passe"])
{
$message = "Votre mot de passe n'a pas été correctement confirmé";
}
elseif(!mb_ereg("^[A-Za-z0-9]{1,}$", $_POST["TB_Nom"]))
{
$message = "Vous devez renseigner votre nom de famille";
}
elseif(!mb_ereg("^[A-Za-z0-9]{1,}$", $_POST["TB_Prenom"]))
{
$message = "Vous devez renseigner votre prénom";
}
elseif(!mb_ereg("^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]{2,}[.][a-zA-Z]{2,4}$",
$_POST["TB_Adresse_Email"]))
{
$message = "Votre adresse e-mail n'est pas valide";
}
else
{
// Connexion à la base de données
// Valeurs à modifier selon vos paramètres configuration
mysql_connect("localhost", "root", "");
mysql_select_db("baseasso2");
// Vérification de l'unicité du nom d'utilisateur et de l'adresse e-mail
$result = mysql_query("
SELECT Nom_Utilisateur
, EmailEtu
FROM etudiant
WHERE Nom_Utilisateur = '" . $_POST["TB_Nom_Utilisateur"] . "'
OR EmailEtu = '" . $_POST["TB_Adresse_Email"] . "'
");
// Si une erreur survient
if(!$result)
{
$message = "Erreur d'accès à la base de données lors de la vérification d'unicité";
}
else
{
// Si un enregistrement est trouvé
if(mysql_num_rows($result) > 0)
{
while($row = mysql_fetch_array($result))
{
if($_POST["TB_Nom_Utilisateur"] == $row["Nom_Utilisateur"])
{
$message = "Le nom d'utilisateur " . $_POST["TB_Nom_Utilisateur"];
$message .= "est déjà utilisé";
}
elseif($_POST["TB_Adresse_Email"] == $row["EmailEtu"])
{
$message = "L'adresse e-mail " . $_POST["TB_Adresse_Email"];
$message .= "est déjà utilisée";
}
}
}
else
{
// Génération de la clef d'activation
$caracteres = array("a", "b", "c", "d", "e", "f", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
$caracteres_aleatoires = array_rand($caracteres, 8);
$clef_activation = "";
$avatar = $_FILES['avatar'];
$n_avatar=basename($avatar['name']);
$ref_avatar=$n_avatar;
$avatar_destination = "../images/photos/". $ref_avatar ;
if (!move_uploaded_file($avatar['tmp_name'],$avatar_destination)) {
echo "Erreur de téléchargement !!";
exit();
}
foreach($caracteres_aleatoires as $i)
{
$clef_activation .= $caracteres[$i];
}
// Création du compte utilisateur
$result = mysql_query("
INSERT INTO etudiant(
Nom_Utilisateur
, Motdepasse
, Nom
, Prenom
, EmailEtu
, Photo
, SituationPro
, CV
, SitePerso
, DateInscription
, Clef_Activation
)
VALUES(
'" . $_POST["TB_Nom_Utilisateur"] . "'
, '" . md5($_POST["TB_Mot_de_Passe"]) . "'
, '" . $_POST["TB_Nom"] . "'
, '" . $_POST["TB_Prenom"] . "'
, '" . $_POST["TB_Adresse_Email"] . "'
, '" . $_FILES['avatar']['name'] . "'
, '" . $_POST["TB_SituationPro"] . "'
, ''
, '" . $_POST["TB_SitePerso"] . "'
, '" . time() . "'
, '" . $clef_activation . "'
)
");
// Si une erreur survient
if(!$result)
{
$message = "Erreur d'accès à la base de données lors de la création du compte utilisateur";
}
else
{
// Envoi du mail d'activation
$sujet = "Activation de votre compte utilisateur";
$message = "Pour valider votre inscription, merci de cliquer sur le lien suivant :\n";
$message .= "http://" . $_SERVER["SERVER_NAME"];
$message .= "/inscriptionok.php?id=" . mysql_insert_id();
$message .= "&clef=" . $clef_activation;
// Si une erreur survient
if(!@mail($_POST["TB_Adresse_Email"], $sujet, $message))
{
$message = "Une erreur est survenue lors de l'envoi du mail d'activation<br />\n";
$message .= "Veuillez contacter l'administrateur afin d'activer votre compte";
}
else
{
// Message de confirmation
$message = "Votre compte utilisateur a correctement été créer<br />\n";
$message .= "Un email vient de vous être envoyer afin de l'activer";
// On masque le formulaire
$masquer_formulaire = true;
}
}
}
}
}
}
}
?>
Dans ce code, j'ai enlevé mon upload de cv, mais en fait c'était une simple copie de mon code pour l'avatar (avec cv à la place d'avatar, bien entendu).D'avance merci !