Une requête qui marchait sous Joomla! 1.5, mais ne marche plus sous 3.2

Réduire
Ce sujet est fermé.
X
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [RÉGLÉ] Une requête qui marchait sous Joomla! 1.5, mais ne marche plus sous 3.2

    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

  • #2
    Re : Une requête qui marchait sous Joomla! 1.5, mais ne marche plus sous 3.2

    Il m'a fallu du temps pour comprendre que le problème venait de la présence d'un apostrophe dans une réponse au formulaire. Il suffisait d'échapper cette apostrophe pour que le pb disparaisse.

    Commentaire

    Annonce

    Réduire
    Aucune annonce pour le moment.

    Partenaire de l'association

    Réduire

    Hébergeur Web PlanetHoster
    Travaille ...
    X