par
yoann38 » 27 oct. 2014, 18:33
Salut, j'ai un soucis avec un UPDATE un peu long.
J'ai un pbm avec l'insertion en bdd de certains champs.
Les dates et le numéro de departement, le reste pas de pbm.
Le code:
<?php
$erreurs = array();
if (isset($_GET['id_annonce'])) {
$idAnn = $_GET['id_annonce'];
} elseif (isset($_POST['id_annonce'])) {
$idAnn = $_POST['id_annonce'];
} else {
$idAnn = 0;
}
if(!empty($_POST)) {//soumission du formulaire
//Verification titre
if(empty($_POST['titre']))
{
$erreurs['titre'] = 'Renseigner un nom de sortie';
}
//Verification du champ email( on vérifie si le champ n'est pas vide )
if(!preg_match("/^[a-z0-9\-_.]+@[a-z0-9\-_.]+\.[a-z]{2,3}$/i",$_POST['email'])){
$erreurs['email'] = "Veuillez verifier la saisie de votre e-mail";
}
//Verification du telephone
if(empty($_POST['phone']))
{
$erreurs['phone'] = 'Renseigner un telephone';
}
//Verification du champ email( on vérifie si le champ n'est pas vide )
if(!preg_match("#^0[1-68]([-. ]?[0-9]{2}){4}$#",$_POST['phone'])){
$erreurs['phone'] = "Veuillez verifier la saisie de votre téléphone";
}
//Verification de l'adresse url
if(empty($_POST['website']))
{
$erreurs['website'] = 'Veuillez renseigner une adresse url';
}
//Verification de la saise de l'adressee url
if(!preg_match("#^http://[w-]+[w.-]+.[a-zA-Z]{2,6}#i",$_POST['website'])){
$erreurs['website'] = "Veuillez verifier la saisie de votre adresse url";
}
//Verification description
if(empty($_POST['email']))
{
$erreurs['email'] = 'verifier';
}
//Verification code postal
if(empty($_POST['postcode']))
{
$erreurs['postcode'] = 'Renseigner un code postal';
}
//Verification sous-titre
if(empty($_POST['sous_titre']))
{
$erreurs['sous_titre'] = 'Votre sortie en quelques mots';
}
//Verification description
if(empty($_POST['description']) )
{
$erreurs['description'] = 'Le detail de votre sortie';
}
/////////
// Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
// Upload des fichier
$namefile = '';
if(!empty($_FILES)) {
if(!empty($_FILES['photo']['tmp_name'])) {
$path = 'img/annonce/';
$namefile = filename($_FILES['photo']['name'], $_POST['titre']);
$return = upload($_FILES['photo'], $namefile, $path, array('image/jpg', 'image/jpeg', 'image/pjpeg', 'image/bmp', 'image/png', 'image/gif'));
echo $return[0];
$erreur = $return[1];
if($erreur <= 1) {
echo imageparfaite(600, 600, $path.$namefile, $path.'600/'.$namefile, 1);
echo imageparfaite(300, 300, $path.$namefile, $path.'300/'.$namefile, 1);
} else {
echo $erreur;
}
// Faire un message du genre annonce envoyé avec succes
}
}
//le tableau d'erreurs est vide alors on insère les données
if( empty( $erreurs) ){
$_POST['jour_semaine'] = array(); // Puisque ca a disparu ...
//conversion de la date debut du format fr(jj:mm:aaaa hh:mm:ss) en format us(aaaa-mm-jj hh:mm:ss)
$date_debut = date_create_from_format('d/m/Y H:i', $_POST['date_debut_sortie']);
$date_debut = date_format($date_debut, 'Y-m-d H:i:s');
//conversion de la date fin du format fr(jj:mm:aaaa hh:mm:ss) en format us(aaaa-mm-jj hh:mm:ss)
$date_fin = date_create_from_format('d/m/Y H:i', $_POST['date_debut_sortie']);
$date_fin = date_format($date_fin, 'Y-m-d H:i:s');
$sql = "SELECT * FROM `loisirs` WHERE `id_loisirs` =".$idAnn;
$req = $bdd->query($sql);
$modif = $bdd->prepare("UPDATE loisirs SET id_region = :id_region, id_departements = :id_departements, id_type_loisirs = :id_type_loisirs, photo = :photo, titre = :titre, sous_titre = :sous_titre, date_debut_sortie = :date_debut_sortie, date_fin_sortie = :date_fin_sortie, description = :description, phone = :phone, email = :email, website = :website, street = :street, postcode = :postcode, city = :city, price = :price WHERE id_loisirs =".$idAnn);
$modif->execute(array(
'id_region'=>regionIdByDepartement($_POST['departements']),
'id_departements' => $_POST['id_departements'],
'id_type_loisirs' => $_POST['id_type_loisirs'],
'photo'=>$namefile,
'titre' => $_POST['titre'],
'sous_titre' => $_POST['sous_titre'],
'date_debut_sortie' => $_POST['date_debut_sortie'],
'date_fin_sortie' => $_POST['date_fin_sortie'],
'description' => $_POST['description'],
'phone' => $_POST['phone'],
'email' => $_POST['email'],
'website' => $_POST['website'],
'street' => $_POST['street'],
'postcode' => $_POST['postcode'],
'city' => $_POST['city'],
'price' => $_POST['price']
));
echo '<div class="container"><div class="col-md-6 col-md-offset-2 col-sm-8 col-sm-offset-2">
<div class="alert alert-success okay" role="alert"> <i class="fa fa-smile-o"></i>
Votre annonce à bien était modifiée et sera analyser dans les 24H00</div></div></div>';
}else{//le tableau ne contient
echo '<div class="container"><div class="col-md-6 col-md-offset-2 col-sm-8 col-sm-offset-2">
<div class="alert alert-danger okay" role="alert">Renseignez les champs vides</div></div></div>';
}
}//fin de la soumission du formulaire
?>
Et coté formulaire:
<form class="ins_con" action="modifier_annonce.php" method="post" enctype="multipart/form-data" onSubmit="return(VerifForm(this))">
<input type="hidden" name="id_annonce" value="<?php echo $idAnn; ?>">
<center><h4>Modifier ma sortie</h4></center>
<br>
<label for="departement">Departement </label>
<select class="form-control" name="departements" id="departement">
<option value="">Département dans lequel votre évenement se déroulera</option>
<?php $departement = !empty($_POST['departement']) ? $_POST['departement'] : NULL; echo aRegionDepartement($departement); ?>
</select>
<br>
<!-- bla bla -->
<label>Sortie</label>
<select class="form-control" name="type_loisirs" id="age">
<option value="">Le type d'évenement</option>
<?php foreach($aLoisirs as $k => $v) {
$selected = !empty($_POST['type_loisirs']) && ($_POST['type_loisirs'] == $k) ? ' selected="selected"' : NULL;
echo '<option value="'.$k.'"'.$selected.'>'.$v.'</option>'."\n";
} ?>
</select>
<br>
<!-- titre de la sortie -->
<label>titre :</label>
<input class="form-control" id="titre" type="text" name="titre" value="<?php if(isset($_POST['titre'])) echo $_POST['titre'];?>" />
<?php if(isset($erreurs['titre'])) echo '<div class="alert alert-danger" role="alert">' .$erreurs['titre'].'</div>';?>
<br>
<!-- titre de la sortie -->
<label>email :</label>
<input class="form-control" type="text" name="email" value="<?php if(isset($_POST['email'])) echo $_POST['email'];?>" />
<?php if(isset($erreurs['email'])) echo '<div class="alert alert-danger" role="alert">' .$erreurs['email'].'</div>';?>
<br>
<!-- Ville de la sortie -->
<label>Rue</label>
<input class="form-control" type="text" name="street" value="<?php if(isset($_POST['street'])) echo $_POST['street'];?>" />
<?php if(isset($erreurs['street'])) echo '<div class="alert alert-danger" role="alert">' .$erreurs['street'].'</div>';?>
<br>
<!-- Code postal de la sortie -->
<label>Code postal *</label>
<input class="form-control" type="text" name="postcode" id="postcode" value="<?php if(isset($_POST['postcode'])) echo $_POST['postcode'];?>" />
<div class="error"><?php if(isset($erreurs['postcode'])) echo $erreurs['postcode'];?></div>
<script>
$(document).ready(function(){
$( "#postcode" ).autocomplete({
source: "autocomplet.php",
dataType: "json",
minLength: 1,
select: function( event, ui ) {
$('#city').val(ui.item.ville);
}
});
});
</script>
<br>
<!-- Ville de la sortie -->
<label>Ville *</label>
<input class="form-control" type="text" name="city" id="city" value="<?php if(isset($_POST['city'])) echo $_POST['city'];?>" readonly placeholder="Indiquez votre code postal avant !" />
<?php if(isset($erreurs['city'])) echo '<div class="alert alert-danger" role="alert">' .$erreurs['city'].'</div>';?>
<br>
<!-- Sous-titre de la sortie -->
<label>Sous titre*</label>
<input class="form-control" type="text" name="sous_titre" value="<?php if(isset($_POST['sous_titre'])) echo $_POST['sous_titre'];?>" />
<br>
<!-- Sous-titre de la sortie -->
<label>website</label>
<input class="form-control" type="text" name="website" value="<?php if(isset($_POST['website'])) echo $_POST['website'];?>" />
<?php if(isset($erreurs['website'])) echo '<div class="alert alert-danger" role="alert">' .$erreurs['website'].'</div>';?>
<br>
<!-- Sous-titre de la sortie -->
<label>Prix</label>
<input class="form-control" type="text" id="price" name="price" value="<?php if(isset($_POST['price'])) echo $_POST['price'];?>" />
<br>
<!-- Description de la sortie -->
<label>Detail de votre sortie</label>
<input class="form-control" type="text" name="description" value="<?php if(isset($_POST['description'])) echo $_POST['description'];?>" />
<?php if(isset($erreurs['description'])) echo '<div class="alert alert-danger" role="alert">' .$erreurs['description'].'</div>';?>
<br>
<label>Date de début</label>
<input class="form-control" id="date_debut_sortie" name="date_debut_sortie" type="text" value="<?php echo !empty($_POST['date_debut_sortie']) ? $_POST['date_debut_sortie'] : NULL; ?>" />
<br>
<label>Date de fin</label>
<input class="form-control" id="date_fin_sortie" name="date_fin_sortie" type="text" value="<?php echo !empty($_POST['date_fin_sortie']) ? $_POST['date_fin_sortie'] : NULL; ?>" />
<script type="text/javascript">// <![CDATA[
$(document).ready(function(){
$('#date_debut_sortie').datetimepicker({
format:'d/m/Y H:i',
onShow:function( ct ){
this.setOptions({
maxDate:$('#date_fin_sortie').val()?$('#date_fin_sortie').val():false
})
},
timepicker:true
});
$('#date_fin_sortie').datetimepicker({
format:'d/m/Y H:i',
onShow:function( ct ){
this.setOptions({
minDate:$('#date_debut_sortie').val()?$('#date_debut_sortie').val():false
})
},
timepicker:true
});
});
// ]]></script>
<br>
<label>Télephone</label>
<input class="form-control" type="text" name="phone" value="<?php if(isset($_POST['phone'])) echo $_POST['phone'];?>" />
<?php if(isset($erreurs['phone'])) echo '<div class="alert alert-danger" role="alert">' .$erreurs['phone'].'</div>';?>
<br>
<label>Photo</label>
<input name="photo" type="file"/>
<br>
<input class="btn-u" type="submit" value="ENVOYER">
</form>
J'affiche mes "problèmes avec print"
<?php Print_r($_FILES) ?>
<?php Print_r($_POST['date_fin_sortie']) ?>
<?php Print_r($_POST['date_debut_sortie']) ?>
<?php Print_r($_POST['departements']) ?>
Mais résultats sont bon mais ne s'insere pas en bdd.
Je recois bien avec le PRINT par exemple:
Array ( [photo] => Array ( [name] => 1599393_303280549860641_1209441043662790691_o.jpg [type] => image/jpeg [tmp_name] => /home/temporaire/upload/phpjfMe3j [error] => 0 [size] => 314330 ) )
30/10/2014 17:00
29/10/2014 17:00
38
Salut, j'ai un soucis avec un UPDATE un peu long.
J'ai un pbm avec l'insertion en bdd de certains champs.
Les dates et le numéro de departement, le reste pas de pbm.
[b]Le code:[/b]
[php]
<?php
$erreurs = array();
if (isset($_GET['id_annonce'])) {
$idAnn = $_GET['id_annonce'];
} elseif (isset($_POST['id_annonce'])) {
$idAnn = $_POST['id_annonce'];
} else {
$idAnn = 0;
}
if(!empty($_POST)) {//soumission du formulaire
//Verification titre
if(empty($_POST['titre']))
{
$erreurs['titre'] = 'Renseigner un nom de sortie';
}
//Verification du champ email( on vérifie si le champ n'est pas vide )
if(!preg_match("/^[a-z0-9\-_.]+@[a-z0-9\-_.]+\.[a-z]{2,3}$/i",$_POST['email'])){
$erreurs['email'] = "Veuillez verifier la saisie de votre e-mail";
}
//Verification du telephone
if(empty($_POST['phone']))
{
$erreurs['phone'] = 'Renseigner un telephone';
}
//Verification du champ email( on vérifie si le champ n'est pas vide )
if(!preg_match("#^0[1-68]([-. ]?[0-9]{2}){4}$#",$_POST['phone'])){
$erreurs['phone'] = "Veuillez verifier la saisie de votre téléphone";
}
//Verification de l'adresse url
if(empty($_POST['website']))
{
$erreurs['website'] = 'Veuillez renseigner une adresse url';
}
//Verification de la saise de l'adressee url
if(!preg_match("#^http://[w-]+[w.-]+.[a-zA-Z]{2,6}#i",$_POST['website'])){
$erreurs['website'] = "Veuillez verifier la saisie de votre adresse url";
}
//Verification description
if(empty($_POST['email']))
{
$erreurs['email'] = 'verifier';
}
//Verification code postal
if(empty($_POST['postcode']))
{
$erreurs['postcode'] = 'Renseigner un code postal';
}
//Verification sous-titre
if(empty($_POST['sous_titre']))
{
$erreurs['sous_titre'] = 'Votre sortie en quelques mots';
}
//Verification description
if(empty($_POST['description']) )
{
$erreurs['description'] = 'Le detail de votre sortie';
}
/////////
// Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
// Upload des fichier
$namefile = '';
if(!empty($_FILES)) {
if(!empty($_FILES['photo']['tmp_name'])) {
$path = 'img/annonce/';
$namefile = filename($_FILES['photo']['name'], $_POST['titre']);
$return = upload($_FILES['photo'], $namefile, $path, array('image/jpg', 'image/jpeg', 'image/pjpeg', 'image/bmp', 'image/png', 'image/gif'));
echo $return[0];
$erreur = $return[1];
if($erreur <= 1) {
echo imageparfaite(600, 600, $path.$namefile, $path.'600/'.$namefile, 1);
echo imageparfaite(300, 300, $path.$namefile, $path.'300/'.$namefile, 1);
} else {
echo $erreur;
}
// Faire un message du genre annonce envoyé avec succes
}
}
//le tableau d'erreurs est vide alors on insère les données
if( empty( $erreurs) ){
$_POST['jour_semaine'] = array(); // Puisque ca a disparu ...
//conversion de la date debut du format fr(jj:mm:aaaa hh:mm:ss) en format us(aaaa-mm-jj hh:mm:ss)
$date_debut = date_create_from_format('d/m/Y H:i', $_POST['date_debut_sortie']);
$date_debut = date_format($date_debut, 'Y-m-d H:i:s');
//conversion de la date fin du format fr(jj:mm:aaaa hh:mm:ss) en format us(aaaa-mm-jj hh:mm:ss)
$date_fin = date_create_from_format('d/m/Y H:i', $_POST['date_debut_sortie']);
$date_fin = date_format($date_fin, 'Y-m-d H:i:s');
$sql = "SELECT * FROM `loisirs` WHERE `id_loisirs` =".$idAnn;
$req = $bdd->query($sql);
$modif = $bdd->prepare("UPDATE loisirs SET id_region = :id_region, id_departements = :id_departements, id_type_loisirs = :id_type_loisirs, photo = :photo, titre = :titre, sous_titre = :sous_titre, date_debut_sortie = :date_debut_sortie, date_fin_sortie = :date_fin_sortie, description = :description, phone = :phone, email = :email, website = :website, street = :street, postcode = :postcode, city = :city, price = :price WHERE id_loisirs =".$idAnn);
$modif->execute(array(
'id_region'=>regionIdByDepartement($_POST['departements']),
'id_departements' => $_POST['id_departements'],
'id_type_loisirs' => $_POST['id_type_loisirs'],
'photo'=>$namefile,
'titre' => $_POST['titre'],
'sous_titre' => $_POST['sous_titre'],
'date_debut_sortie' => $_POST['date_debut_sortie'],
'date_fin_sortie' => $_POST['date_fin_sortie'],
'description' => $_POST['description'],
'phone' => $_POST['phone'],
'email' => $_POST['email'],
'website' => $_POST['website'],
'street' => $_POST['street'],
'postcode' => $_POST['postcode'],
'city' => $_POST['city'],
'price' => $_POST['price']
));
echo '<div class="container"><div class="col-md-6 col-md-offset-2 col-sm-8 col-sm-offset-2">
<div class="alert alert-success okay" role="alert"> <i class="fa fa-smile-o"></i>
Votre annonce à bien était modifiée et sera analyser dans les 24H00</div></div></div>';
}else{//le tableau ne contient
echo '<div class="container"><div class="col-md-6 col-md-offset-2 col-sm-8 col-sm-offset-2">
<div class="alert alert-danger okay" role="alert">Renseignez les champs vides</div></div></div>';
}
}//fin de la soumission du formulaire
?>
[/php]
Et coté formulaire:
[php]
<form class="ins_con" action="modifier_annonce.php" method="post" enctype="multipart/form-data" onSubmit="return(VerifForm(this))">
<input type="hidden" name="id_annonce" value="<?php echo $idAnn; ?>">
<center><h4>Modifier ma sortie</h4></center>
<br>
<label for="departement">Departement </label>
<select class="form-control" name="departements" id="departement">
<option value="">Département dans lequel votre évenement se déroulera</option>
<?php $departement = !empty($_POST['departement']) ? $_POST['departement'] : NULL; echo aRegionDepartement($departement); ?>
</select>
<br>
<!-- bla bla -->
<label>Sortie</label>
<select class="form-control" name="type_loisirs" id="age">
<option value="">Le type d'évenement</option>
<?php foreach($aLoisirs as $k => $v) {
$selected = !empty($_POST['type_loisirs']) && ($_POST['type_loisirs'] == $k) ? ' selected="selected"' : NULL;
echo '<option value="'.$k.'"'.$selected.'>'.$v.'</option>'."\n";
} ?>
</select>
<br>
<!-- titre de la sortie -->
<label>titre :</label>
<input class="form-control" id="titre" type="text" name="titre" value="<?php if(isset($_POST['titre'])) echo $_POST['titre'];?>" />
<?php if(isset($erreurs['titre'])) echo '<div class="alert alert-danger" role="alert">' .$erreurs['titre'].'</div>';?>
<br>
<!-- titre de la sortie -->
<label>email :</label>
<input class="form-control" type="text" name="email" value="<?php if(isset($_POST['email'])) echo $_POST['email'];?>" />
<?php if(isset($erreurs['email'])) echo '<div class="alert alert-danger" role="alert">' .$erreurs['email'].'</div>';?>
<br>
<!-- Ville de la sortie -->
<label>Rue</label>
<input class="form-control" type="text" name="street" value="<?php if(isset($_POST['street'])) echo $_POST['street'];?>" />
<?php if(isset($erreurs['street'])) echo '<div class="alert alert-danger" role="alert">' .$erreurs['street'].'</div>';?>
<br>
<!-- Code postal de la sortie -->
<label>Code postal *</label>
<input class="form-control" type="text" name="postcode" id="postcode" value="<?php if(isset($_POST['postcode'])) echo $_POST['postcode'];?>" />
<div class="error"><?php if(isset($erreurs['postcode'])) echo $erreurs['postcode'];?></div>
<script>
$(document).ready(function(){
$( "#postcode" ).autocomplete({
source: "autocomplet.php",
dataType: "json",
minLength: 1,
select: function( event, ui ) {
$('#city').val(ui.item.ville);
}
});
});
</script>
<br>
<!-- Ville de la sortie -->
<label>Ville *</label>
<input class="form-control" type="text" name="city" id="city" value="<?php if(isset($_POST['city'])) echo $_POST['city'];?>" readonly placeholder="Indiquez votre code postal avant !" />
<?php if(isset($erreurs['city'])) echo '<div class="alert alert-danger" role="alert">' .$erreurs['city'].'</div>';?>
<br>
<!-- Sous-titre de la sortie -->
<label>Sous titre*</label>
<input class="form-control" type="text" name="sous_titre" value="<?php if(isset($_POST['sous_titre'])) echo $_POST['sous_titre'];?>" />
<br>
<!-- Sous-titre de la sortie -->
<label>website</label>
<input class="form-control" type="text" name="website" value="<?php if(isset($_POST['website'])) echo $_POST['website'];?>" />
<?php if(isset($erreurs['website'])) echo '<div class="alert alert-danger" role="alert">' .$erreurs['website'].'</div>';?>
<br>
<!-- Sous-titre de la sortie -->
<label>Prix</label>
<input class="form-control" type="text" id="price" name="price" value="<?php if(isset($_POST['price'])) echo $_POST['price'];?>" />
<br>
<!-- Description de la sortie -->
<label>Detail de votre sortie</label>
<input class="form-control" type="text" name="description" value="<?php if(isset($_POST['description'])) echo $_POST['description'];?>" />
<?php if(isset($erreurs['description'])) echo '<div class="alert alert-danger" role="alert">' .$erreurs['description'].'</div>';?>
<br>
<label>Date de début</label>
<input class="form-control" id="date_debut_sortie" name="date_debut_sortie" type="text" value="<?php echo !empty($_POST['date_debut_sortie']) ? $_POST['date_debut_sortie'] : NULL; ?>" />
<br>
<label>Date de fin</label>
<input class="form-control" id="date_fin_sortie" name="date_fin_sortie" type="text" value="<?php echo !empty($_POST['date_fin_sortie']) ? $_POST['date_fin_sortie'] : NULL; ?>" />
<script type="text/javascript">// <![CDATA[
$(document).ready(function(){
$('#date_debut_sortie').datetimepicker({
format:'d/m/Y H:i',
onShow:function( ct ){
this.setOptions({
maxDate:$('#date_fin_sortie').val()?$('#date_fin_sortie').val():false
})
},
timepicker:true
});
$('#date_fin_sortie').datetimepicker({
format:'d/m/Y H:i',
onShow:function( ct ){
this.setOptions({
minDate:$('#date_debut_sortie').val()?$('#date_debut_sortie').val():false
})
},
timepicker:true
});
});
// ]]></script>
<br>
<label>Télephone</label>
<input class="form-control" type="text" name="phone" value="<?php if(isset($_POST['phone'])) echo $_POST['phone'];?>" />
<?php if(isset($erreurs['phone'])) echo '<div class="alert alert-danger" role="alert">' .$erreurs['phone'].'</div>';?>
<br>
<label>Photo</label>
<input name="photo" type="file"/>
<br>
<input class="btn-u" type="submit" value="ENVOYER">
</form>
[/php]
[b]J'affiche mes "problèmes avec print"[/b]
[php]
<?php Print_r($_FILES) ?>
<?php Print_r($_POST['date_fin_sortie']) ?>
<?php Print_r($_POST['date_debut_sortie']) ?>
<?php Print_r($_POST['departements']) ?>
[/php]
Mais résultats sont bon mais ne s'insere pas en bdd.
Je recois bien avec le PRINT par exemple:
Array ( [photo] => Array ( [name] => 1599393_303280549860641_1209441043662790691_o.jpg [type] => image/jpeg [tmp_name] => /home/temporaire/upload/phpjfMe3j [error] => 0 [size] => 314330 ) )
30/10/2014 17:00
29/10/2014 17:00
38