Bonjour,
En fait le script marche de temps à autre, mais pas toujours...
Voici la chose :
<?
$today=date("Y-m-d");$hour=date("H:i");
$link=mysqli_connect("***","***,"***","***");
mysqli_query($link,"SET NAMES UTF8"); //codage des accents ;
//récupération du pseudo de l'utilisateur connecté
$user = &JFactory::getuser();
$nom=$user->get('username');
echo "<h1>Entrée d'activité pour ".$nom."</h1>Toutes les rubriques sont obligatoires. Bon courage pour la saisie...";
/*$asso=$_POST['asso'];*/
$asso=$nom;
$departement=$_POST['departement'];
$date=$_POST['date'];
$heure=$_POST['heure'];
$activite=$_POST['activite'];
$lieu=$_POST['lieu'];
$public=$_POST['public'];
$contact=$_POST['contact'];
$today=date("Y/m/d");
echo "<div style='background-color:#afff8f;'>";
echo "<center><form method='POST' >
<table >
<tr>
<td style='border: 2px solid black;text-align:right;' >Numéro du département à deux chiffres (01 pour l'Ain) : </td>
<td style='border: 2px solid black;' ><input type= 'text' name='departement' value='$departement' required></td>
</tr>
<tr>
<td style='border: 2px solid black;text-align:right;' >Date du début, au format jj/mm/aaaa (par exemple ".preg_replace('#(\d{4})/(\d{2})/(\d{2})#','$3/$2/$1',$today)." pour ce jour),
<br>on peut aussi mettre jj/mm/aaaa et jj/mm/aaaa, <br>ou jj/mm/aaaa,jj/mm/aaaa et jj/mm/aaaa à condition que les horaires soient les mêmes: </td>
<td style='border: 2px solid black;' ><input type= 'text' name='date' value='$date' required></td>
</tr>
<tr>
<td style='border: 2px solid black;text-align:right;' >Heure de début au format hh:mm (par exemple 09:30 pour 9h30),<br> on peut aussi écrire : <i> 09:30 à 17:00 </i> ou même <i> 09:30 à 12:00 et 14:00 à 18:00 </i>: </td>
<td style='border: 2px solid black;' ><input type= 'text' name='heure' value='$heure' required></td>
</tr>
<tr>
<td style='border: 2px solid black;text-align:right;' >Description de l'activité : </td>
<td style='border: 2px solid black;' ><textarea rows=5 cols=70 type= 'text' name='activite' required>$activite</textarea></td></tr>
<tr>
<td style='border: 2px solid black;text-align:right;' >Lieu : </td>
<td style='border: 2px solid black;' ><textarea cols=60 rows=1 type= 'text' name='lieu' required>$lieu</textarea></td>
</tr>
<tr>
<td style='border: 2px solid black;text-align:right;'>Préciser le public visé :</td>
<td>Tout public<input type='radio' name='public', value='Tout public' checked> Réservé aux adhérents <input type='radio' name='public', value='Réservé aux adhérents'></td>
</tr>
<tr>
<td style='border: 2px solid black;text-align:right;' >Contact : </td>
<td style='border: 2px solid black;' ><input type= 'text' name='contact' value='$contact' required></td>
</tr>
<tr><td colspan=2><center><b style='color:blue;'>Merci de relire les données avant de cliquer sur Go</b></center></td></tr>
<tr><td colspan=2><center><input type='submit' value='Go'></center></td></tr>
</table>
</form></center>";
$activite=htmlspecialchars($activite);//,ENT_NOQUOTES);//$asso=htmlspecialchars($asso);
$lieu=htmlspecialchars($lieu);$contact=htmlspecial chars($contact);
$departement=htmlspecialchars($departement);
if (preg_match("#^\d{2}/\d{2}/\d{4}#",$_POST['date']))//Cette façon d'entrer la date permet de sélectionner les événements à partir du jour en cours
{$date=preg_replace('#(\d{2})/(\d{2})/(\d{4})#','$3/$2/$1',$date);
if (preg_match("#^\d{2}$#",$_POST['departement']))//On vérifie que c'est un nombre à 2 chiffres
{if (preg_match("#^\d{2}:\d{2}#",$_POST['heure']))//On vérifie que l'heure de début est au bon format
{
$req="INSERT `J32_calendrier` SET published='1',created='$today $hour',F82='$date',F83='$heure',F76='$asso',F77='$ departement',F75='$activite',F80='$public',F78='$l ieu', F79='$contact' ";
mysqli_query($link,$req);
$num=mysqli_insert_id($link);
echo "<div style='font-size:150%;'><p><center>Merci de noter que cette activité porte le numéro <b style='color:red;font-size:150%;'>". $num."</b> dans la base de données. Ce numéro permettra de modifier ultérieurement l'information.</center></p>";
echo "<p><center>Merci pour l'information, tu peux entrer un autre événement ou <a href='http://croqueurs-national.fr' >cliquer ici pour revenir au site national.</a></center></p></div>";
$message = "Un nouvel evenement est dans le tableau.\r\nIl vient de ".$nom;
$message.=", avec le numero ".$num;
$message.="\r\n".$activite."|".$asso."|".$departem ent."|".$lieu."|".$contact."|".$public."|".$date." |".$heure;
// Dans le cas où nos lignes comportent plus de 150 caractères, nous les coupons en utilisant wordwrap()
$message = wordwrap($message, 150, "\r\n");
// Envoi du mail
mail('jm@jmando.fr', 'Activite', $message);
}
else {echo "<div style='color:#ff0000;'>Merci de donner l'heure au format requis.</div>";}
}
else {echo "<div style='color:#ff0000;'>Merci de donner un numéro de département à deux chiffres.</div>";}
}
else {echo "<h2 style='color:#ff0000;'>Merci de renseigner toutes les rubriques du formulaire ou de corriger le format de la rubrique date.</h2>";};
echo "</div>";
?>
Ce script est inséré dans un article à l'aide de jumi.
Soit le numéro affiché après Go est bon et les données entrent bien dans la BDD, soit le numéro affiché est 0 et la base n'est pas enrichie.
J'avoue ne pas être expert en PHP et une aide me serait bien utile.
Merci d'avance pour toute idée à tester
J. Mandonnet
En fait le script marche de temps à autre, mais pas toujours...
Voici la chose :
<?
$today=date("Y-m-d");$hour=date("H:i");
$link=mysqli_connect("***","***,"***","***");
mysqli_query($link,"SET NAMES UTF8"); //codage des accents ;
//récupération du pseudo de l'utilisateur connecté
$user = &JFactory::getuser();
$nom=$user->get('username');
echo "<h1>Entrée d'activité pour ".$nom."</h1>Toutes les rubriques sont obligatoires. Bon courage pour la saisie...";
/*$asso=$_POST['asso'];*/
$asso=$nom;
$departement=$_POST['departement'];
$date=$_POST['date'];
$heure=$_POST['heure'];
$activite=$_POST['activite'];
$lieu=$_POST['lieu'];
$public=$_POST['public'];
$contact=$_POST['contact'];
$today=date("Y/m/d");
echo "<div style='background-color:#afff8f;'>";
echo "<center><form method='POST' >
<table >
<tr>
<td style='border: 2px solid black;text-align:right;' >Numéro du département à deux chiffres (01 pour l'Ain) : </td>
<td style='border: 2px solid black;' ><input type= 'text' name='departement' value='$departement' required></td>
</tr>
<tr>
<td style='border: 2px solid black;text-align:right;' >Date du début, au format jj/mm/aaaa (par exemple ".preg_replace('#(\d{4})/(\d{2})/(\d{2})#','$3/$2/$1',$today)." pour ce jour),
<br>on peut aussi mettre jj/mm/aaaa et jj/mm/aaaa, <br>ou jj/mm/aaaa,jj/mm/aaaa et jj/mm/aaaa à condition que les horaires soient les mêmes: </td>
<td style='border: 2px solid black;' ><input type= 'text' name='date' value='$date' required></td>
</tr>
<tr>
<td style='border: 2px solid black;text-align:right;' >Heure de début au format hh:mm (par exemple 09:30 pour 9h30),<br> on peut aussi écrire : <i> 09:30 à 17:00 </i> ou même <i> 09:30 à 12:00 et 14:00 à 18:00 </i>: </td>
<td style='border: 2px solid black;' ><input type= 'text' name='heure' value='$heure' required></td>
</tr>
<tr>
<td style='border: 2px solid black;text-align:right;' >Description de l'activité : </td>
<td style='border: 2px solid black;' ><textarea rows=5 cols=70 type= 'text' name='activite' required>$activite</textarea></td></tr>
<tr>
<td style='border: 2px solid black;text-align:right;' >Lieu : </td>
<td style='border: 2px solid black;' ><textarea cols=60 rows=1 type= 'text' name='lieu' required>$lieu</textarea></td>
</tr>
<tr>
<td style='border: 2px solid black;text-align:right;'>Préciser le public visé :</td>
<td>Tout public<input type='radio' name='public', value='Tout public' checked> Réservé aux adhérents <input type='radio' name='public', value='Réservé aux adhérents'></td>
</tr>
<tr>
<td style='border: 2px solid black;text-align:right;' >Contact : </td>
<td style='border: 2px solid black;' ><input type= 'text' name='contact' value='$contact' required></td>
</tr>
<tr><td colspan=2><center><b style='color:blue;'>Merci de relire les données avant de cliquer sur Go</b></center></td></tr>
<tr><td colspan=2><center><input type='submit' value='Go'></center></td></tr>
</table>
</form></center>";
$activite=htmlspecialchars($activite);//,ENT_NOQUOTES);//$asso=htmlspecialchars($asso);
$lieu=htmlspecialchars($lieu);$contact=htmlspecial chars($contact);
$departement=htmlspecialchars($departement);
if (preg_match("#^\d{2}/\d{2}/\d{4}#",$_POST['date']))//Cette façon d'entrer la date permet de sélectionner les événements à partir du jour en cours
{$date=preg_replace('#(\d{2})/(\d{2})/(\d{4})#','$3/$2/$1',$date);
if (preg_match("#^\d{2}$#",$_POST['departement']))//On vérifie que c'est un nombre à 2 chiffres
{if (preg_match("#^\d{2}:\d{2}#",$_POST['heure']))//On vérifie que l'heure de début est au bon format
{
$req="INSERT `J32_calendrier` SET published='1',created='$today $hour',F82='$date',F83='$heure',F76='$asso',F77='$ departement',F75='$activite',F80='$public',F78='$l ieu', F79='$contact' ";
mysqli_query($link,$req);
$num=mysqli_insert_id($link);
echo "<div style='font-size:150%;'><p><center>Merci de noter que cette activité porte le numéro <b style='color:red;font-size:150%;'>". $num."</b> dans la base de données. Ce numéro permettra de modifier ultérieurement l'information.</center></p>";
echo "<p><center>Merci pour l'information, tu peux entrer un autre événement ou <a href='http://croqueurs-national.fr' >cliquer ici pour revenir au site national.</a></center></p></div>";
$message = "Un nouvel evenement est dans le tableau.\r\nIl vient de ".$nom;
$message.=", avec le numero ".$num;
$message.="\r\n".$activite."|".$asso."|".$departem ent."|".$lieu."|".$contact."|".$public."|".$date." |".$heure;
// Dans le cas où nos lignes comportent plus de 150 caractères, nous les coupons en utilisant wordwrap()
$message = wordwrap($message, 150, "\r\n");
// Envoi du mail
mail('jm@jmando.fr', 'Activite', $message);
}
else {echo "<div style='color:#ff0000;'>Merci de donner l'heure au format requis.</div>";}
}
else {echo "<div style='color:#ff0000;'>Merci de donner un numéro de département à deux chiffres.</div>";}
}
else {echo "<h2 style='color:#ff0000;'>Merci de renseigner toutes les rubriques du formulaire ou de corriger le format de la rubrique date.</h2>";};
echo "</div>";
?>
Ce script est inséré dans un article à l'aide de jumi.
Soit le numéro affiché après Go est bon et les données entrent bien dans la BDD, soit le numéro affiché est 0 et la base n'est pas enrichie.
J'avoue ne pas être expert en PHP et une aide me serait bien utile.
Merci d'avance pour toute idée à tester
J. Mandonnet
Commentaire