Bonjour
Ce code est un script php permettant le traitement de l'envoie de fichier par formulaire .
La page appelante (qui a le formulaire) demande un email , et un fichier .
La table SQL correspondant est :
Code : Tout sélectionner
[sql]-- phpMyAdmin SQL Dump
-- version 2.11.8.1deb5+lenny8
-- http://www.phpmyadmin.net
--
-- Serveur: localhost
-- Généré le : Sam 09 Juillet 2011 à 11:14
-- Version du serveur: 5.0.51
-- Version de PHP: 5.2.6-1+lenny9
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- Base de données: `polib250634`
--
-- --------------------------------------------------------
--
-- Structure de la table `formulaire`
--
CREATE TABLE IF NOT EXISTS `formulaire` (
`id` int(11) NOT NULL auto_increment,
`titre` varchar(255) NOT NULL,
`e_mail` varchar(255) NOT NULL,
`bann` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=10 ;
--
-- Contenu de la table `formulaire`
--
INSERT INTO `formulaire` (`id`, `titre`, `e_mail`, `bann`) VALUES
(9, 'Nouveau document texte.txt', '[email protected]', 0);
[/sql]
Dans mon code PHP (que je vous fournirais apres il y'a:
-un if qui vérifie si la requete renvoie un résultat (c'est a dire ce sont pour les membres qui ont déja utilisée le service , leur adresse email a été mis dans la table)
-un premier elseif qui vérifie si la requete n'a pas envoyée de réponse et si le format de l'adress email est correcte (c'est a dire que le membre n'a jamais utilisée le service)
-un deuxieme elseif qui vérifie si le format de l'adresse e-mail n'est pas correcte
-et un else qui devraint normalement jamais apparaitre
Mon problème est que si j'envoie une adresse e-mail valide (que je suis pas encore inscrit) et que j'envoie un fichier ayant la bonne extension . La premiere fois il me redirige vers le deuxieme elseif et la deuxieme fois vers le premier elseif
Comment faire pour qu'il me redirige directement vers le 1 ier elseif?
Cordialement
Voici le code:
Code : Tout sélectionner
[php]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Poliboolold-groupe</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="poli2" href="style.css" />
</head>
<body>
<?php
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=********************;dbname=polib250634','polib250634','************',$pdo_options);
}
catch(PDOException $e)
{
echo '<p>Erreur PDO dans '.$e->getFile().' L.'.$e->getLine().' : <br/> '.$e->getMessage().'<br /></p>';
}
?>
<div id="banniere">
</div>
<div id="barreprojet">
Polibook Polipeople Polilogiciel Politribale Tchat Forum Aide Suggestions livre d'or newlester
</div>
<div id="corps">
<?php
$actu = 1;
if($actu == 1) {
echo "Page web en construction (developpement de la mise en page)";
} else {
echo "Poliboolold-groupe, le site multi-services";
}
?>
</div>
<div id=membre>
<h2>espace-membre</h2>
<p>Veuillez vous connecter <br/>
Pour accéder a votre espace membre <br/>
Service Indisponible pour le moment </p>
<form method="post" action="">
<p>
<label for="pseudo">Pseudo:</label>
<input type="text" name="pseudo" id="pseudo" value="Pseudo"/>
<br/>
<label for="Motdepasse">Mot de passe:</label>
<input type="password" name="Motdepasse" id="Motdepasse" value="Mot de passe"/>
<br/>
<input type="submit" value="Valider" /<label for="pseudo">Pseudo:</label>
<br/>
Pour vous inscrire , cliquez <a href="inscription.php">Ici</a>
</p>
</form>
</div>
<div id="actu">
<?php
$reponse=$bdd->query("SELECT bann,id FROM formulaire WHERE e_mail='" . $_POST['e_mail'] . "'");
if( $reponse->rowCount() > 0 )
{
$donnees = $reponse->fetch();
$bann=$donnees['bann'];
if($bann==0 )
{
// Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
if (isset($_FILES['monfichier']) AND $_FILES['monfichier']['error'] == 0)
{
// Testons si le fichier n'est pas trop gros
if ($_FILES['monfichier']['size'] <= 1000000)
{
// Testons si l'extension est autorisée
$infosfichier = pathinfo($_FILES['monfichier']['name']);
$extension_upload = $infosfichier['extension'];
$extensions_autorisees = array('txt', 'docx');
if (in_array($extension_upload, $extensions_autorisees))
{
/*if( !empty($_POST['e_mail']) && filter_input(INPUT_POST, 'e-mail', FILTER_VALIDATE_E_MAIL) )
{*/
if(preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#",$_POST['e_mail']))
{
// On peut valider le fichier et le stocker définitivement
$bri=0;
$extension = strrchr(basename($_FILES['monfichier']['name']), '.');
move_uploaded_file($_FILES['monfichier']['tmp_name'], 'uploads/'.uniqid().$extension);
$reponse->closeCursor();
$req = $bdd->prepare('INSERT INTO formulaire(id, titre, e_mail, bann) VALUES(:id, :titre, :e_mail, :bann)');
$req->execute(array(
'id' => '',
'titre' => $_FILES['monfichier']['name'],
'e_mail' => $_POST['e_mail'],
'bann' => $bri
));
echo "L'envoi a bien été effectué !";
}
}
}
}
}
}
/*}*/
elseif(!isset($bann)AND preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#",$_POST['e_mail']) )
{
if (isset($_FILES['monfichier']) AND $_FILES['monfichier']['error'] == 0)
{
if ($_FILES['monfichier']['size'] <= 1000000)
{
$infosfichier = pathinfo($_FILES['monfichier']['name']);
$extension_upload = $infosfichier['extension'];
$extensions_autorisees = array('txt', 'docx');
{
if (in_array($extension_upload, $extensions_autorisees))
{
$bri=0;
$extension = strrchr(basename($_FILES['monfichier']['name']), '.');
move_uploaded_file($_FILES['monfichier']['tmp_name'], 'uploads/'.uniqid().$extension);
$reponse->closeCursor();
$req = $bdd->prepare('INSERT INTO formulaire(id, titre, e_mail, bann) VALUES(:id, :titre, :e_mail, :bann)');
$req->execute(array(
'id' => '',
'titre' => $_FILES['monfichier']['name'],
'e_mail' => $_POST['e_mail'],
'bann' => $bri
));
mail($_POST['e_mail'],bonjour,bonjour);
echo"noob";
}
}
}
}
}
elseif(!preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#",$_POST['e_mail'])OR !isset($_FILES['monfichier']))
{
//extension pas bonne
header('Location: formulaire.php?param=1');
}
else{
echo"Merci de resseyer";
}
?>
<?php
$heure=date('H');
$minute=date('i');
echo'Il est <strong>'.$heure.':'.$minute;
?>
</div>
<div id="pied_de_page">
<p>
</p>
</div>
</body>
</html>[/php]
Bonjour
Ce code est un script php permettant le traitement de l'envoie de fichier par formulaire .
La page appelante (qui a le formulaire) demande un email , et un fichier .
La table SQL correspondant est :
[code][sql]-- phpMyAdmin SQL Dump
-- version 2.11.8.1deb5+lenny8
-- http://www.phpmyadmin.net
--
-- Serveur: localhost
-- Généré le : Sam 09 Juillet 2011 à 11:14
-- Version du serveur: 5.0.51
-- Version de PHP: 5.2.6-1+lenny9
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- Base de données: `polib250634`
--
-- --------------------------------------------------------
--
-- Structure de la table `formulaire`
--
CREATE TABLE IF NOT EXISTS `formulaire` (
`id` int(11) NOT NULL auto_increment,
`titre` varchar(255) NOT NULL,
`e_mail` varchar(255) NOT NULL,
`bann` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=10 ;
--
-- Contenu de la table `formulaire`
--
INSERT INTO `formulaire` (`id`, `titre`, `e_mail`, `bann`) VALUES
(9, 'Nouveau document texte.txt', '
[email protected]', 0);
[/sql][/code]
Dans mon code PHP (que je vous fournirais apres il y'a:
-un if qui vérifie si la requete renvoie un résultat (c'est a dire ce sont pour les membres qui ont déja utilisée le service , leur adresse email a été mis dans la table)
-un premier elseif qui vérifie si la requete n'a pas envoyée de réponse et si le format de l'adress email est correcte (c'est a dire que le membre n'a jamais utilisée le service)
-un deuxieme elseif qui vérifie si le format de l'adresse e-mail n'est pas correcte
-et un else qui devraint normalement jamais apparaitre
Mon problème est que si j'envoie une adresse e-mail valide (que je suis pas encore inscrit) et que j'envoie un fichier ayant la bonne extension . La premiere fois il me redirige vers le deuxieme elseif et la deuxieme fois vers le premier elseif
Comment faire pour qu'il me redirige directement vers le 1 ier elseif?
Cordialement
Voici le code:
[code][php]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Poliboolold-groupe</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="poli2" href="style.css" />
</head>
<body>
<?php
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=********************;dbname=polib250634','polib250634','************',$pdo_options);
}
catch(PDOException $e)
{
echo '<p>Erreur PDO dans '.$e->getFile().' L.'.$e->getLine().' : <br/> '.$e->getMessage().'<br /></p>';
}
?>
<div id="banniere">
</div>
<div id="barreprojet">
Polibook Polipeople Polilogiciel Politribale Tchat Forum Aide Suggestions livre d'or newlester
</div>
<div id="corps">
<?php
$actu = 1;
if($actu == 1) {
echo "Page web en construction (developpement de la mise en page)";
} else {
echo "Poliboolold-groupe, le site multi-services";
}
?>
</div>
<div id=membre>
<h2>espace-membre</h2>
<p>Veuillez vous connecter <br/>
Pour accéder a votre espace membre <br/>
Service Indisponible pour le moment </p>
<form method="post" action="">
<p>
<label for="pseudo">Pseudo:</label>
<input type="text" name="pseudo" id="pseudo" value="Pseudo"/>
<br/>
<label for="Motdepasse">Mot de passe:</label>
<input type="password" name="Motdepasse" id="Motdepasse" value="Mot de passe"/>
<br/>
<input type="submit" value="Valider" /<label for="pseudo">Pseudo:</label>
<br/>
Pour vous inscrire , cliquez <a href="inscription.php">Ici</a>
</p>
</form>
</div>
<div id="actu">
<?php
$reponse=$bdd->query("SELECT bann,id FROM formulaire WHERE e_mail='" . $_POST['e_mail'] . "'");
if( $reponse->rowCount() > 0 )
{
$donnees = $reponse->fetch();
$bann=$donnees['bann'];
if($bann==0 )
{
// Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
if (isset($_FILES['monfichier']) AND $_FILES['monfichier']['error'] == 0)
{
// Testons si le fichier n'est pas trop gros
if ($_FILES['monfichier']['size'] <= 1000000)
{
// Testons si l'extension est autorisée
$infosfichier = pathinfo($_FILES['monfichier']['name']);
$extension_upload = $infosfichier['extension'];
$extensions_autorisees = array('txt', 'docx');
if (in_array($extension_upload, $extensions_autorisees))
{
/*if( !empty($_POST['e_mail']) && filter_input(INPUT_POST, 'e-mail', FILTER_VALIDATE_E_MAIL) )
{*/
if(preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#",$_POST['e_mail']))
{
// On peut valider le fichier et le stocker définitivement
$bri=0;
$extension = strrchr(basename($_FILES['monfichier']['name']), '.');
move_uploaded_file($_FILES['monfichier']['tmp_name'], 'uploads/'.uniqid().$extension);
$reponse->closeCursor();
$req = $bdd->prepare('INSERT INTO formulaire(id, titre, e_mail, bann) VALUES(:id, :titre, :e_mail, :bann)');
$req->execute(array(
'id' => '',
'titre' => $_FILES['monfichier']['name'],
'e_mail' => $_POST['e_mail'],
'bann' => $bri
));
echo "L'envoi a bien été effectué !";
}
}
}
}
}
}
/*}*/
elseif(!isset($bann)AND preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#",$_POST['e_mail']) )
{
if (isset($_FILES['monfichier']) AND $_FILES['monfichier']['error'] == 0)
{
if ($_FILES['monfichier']['size'] <= 1000000)
{
$infosfichier = pathinfo($_FILES['monfichier']['name']);
$extension_upload = $infosfichier['extension'];
$extensions_autorisees = array('txt', 'docx');
{
if (in_array($extension_upload, $extensions_autorisees))
{
$bri=0;
$extension = strrchr(basename($_FILES['monfichier']['name']), '.');
move_uploaded_file($_FILES['monfichier']['tmp_name'], 'uploads/'.uniqid().$extension);
$reponse->closeCursor();
$req = $bdd->prepare('INSERT INTO formulaire(id, titre, e_mail, bann) VALUES(:id, :titre, :e_mail, :bann)');
$req->execute(array(
'id' => '',
'titre' => $_FILES['monfichier']['name'],
'e_mail' => $_POST['e_mail'],
'bann' => $bri
));
mail($_POST['e_mail'],bonjour,bonjour);
echo"noob";
}
}
}
}
}
elseif(!preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#",$_POST['e_mail'])OR !isset($_FILES['monfichier']))
{
//extension pas bonne
header('Location: formulaire.php?param=1');
}
else{
echo"Merci de resseyer";
}
?>
<?php
$heure=date('H');
$minute=date('i');
echo'Il est <strong>'.$heure.':'.$minute;
?>
</div>
<div id="pied_de_page">
<p>
</p>
</div>
</body>
</html>[/php][/code]