IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

formulaire non soumis avec FF-Safari/ Fonctionne avec IE-Chrome-Opera [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 9
    Points : 7
    Points
    7
    Par défaut formulaire non soumis avec FF-Safari/ Fonctionne avec IE-Chrome-Opera
    Bonjour,
    J'avoue être dans l'expectative la plus totale là ! J'ai des formulaires de backoffice qui ont été testés avec succès en local sur FF et qui ne fonctionnent plus une fois en ligne sur firefox et safari (sous windows).
    Tout se passe comme si ces formulaires n'étaient jamais postés. Une idée ?
    Voici le code de l'un d'eux :
    <?php
    include "session.php";

    include "inc_menu.php";
    ?>
    <h4><a href="index.php">Retour à la liste des actus</a></h4>
    <h3>Nouvelle actualité</h3>
    <?php
    if (isset($_POST['envoye']))
    {
    /* Récupération des valeurs des champs du formulaire */
    $titre = addslashes($_POST['titre']);
    $date = $_POST['date'];
    $texte = addslashes($_POST['texte']);
    $lien = $_POST['lien'];

    //----------------------------
    // VARIABLES pour l'upload d'image
    //----------------------------
    $target = '../illustration/'; // Repertoire cible
    $jpg = 'jpg'; // Extension du fichier sans le .
    $gif = 'gif'; // Extension du fichier sans le .
    $max_size = 400000; // Taille max en octets du fichier
    $width_max = 300; // Largeur max de l'image en pixels
    $height_max = 300; // Hauteur max de l'image en pixels
    //---------------------------------------------
    // DEFINITION DES VARIABLES LIEES AU FICHIER image
    //---------------------------------------------
    $image = $_FILES['image']['name'];
    $taille = $_FILES['image']['size'];
    $tmp = $_FILES['image']['tmp_name'];

    /* Expression régulière permettant de vérifier que le lien (adresse) est au bon format -*/
    $regex_lien = '`^http://[-[:alnum:]]+\.[-[:alnum:]]+\.[a-zA-Z]{2,4}(:[0-9]+)?$`';

    /* Expression régulière permettant de vérifier qu'aucun en-tête n'est inséré dans nos champs */
    $regex_head = '/[\n\r]/';

    /* Si le formulaire n'est pas posté de notre site on renvoie
    * vers la page d'accueil */
    if($_SERVER['HTTP_REFERER'] != 'http://www.nomdedomaine/backoffice/new_actu.php')
    {
    header('Location: http://www.nomdedomaine/module_news/index.php');
    }
    /* On vérifie que tous les champs sont remplis */
    elseif (empty($date)
    || empty($titre)
    || empty($texte))
    {$alert = 'Les champs "date", "titre" et "texte" doivent être renseignés';}
    /* Si un lien est soumis on vérifie que son format est correct */
    elseif ((!empty($lien)) && (!preg_match($regex_lien, $lien)) )
    {
    $alert = 'Mauvais format de lien : '.$lien.'<br/>L\'adresse doit être du type "http://www.adresse.truc" ou "http://nom.hebergeur.truc"';
    }
    /* On vérifie qu'il n'y a aucun header dans les champs */
    elseif (preg_match($regex_head, $titre)
    || preg_match($regex_head, $date)
    || preg_match($regex_head, $texte)
    || preg_match($regex_head, $lien)
    || preg_match($regex_head, $image))
    { $alert = 'En-têtes interdites dans les champs du formulaire'; }
    /* Si aucun problème on envoie les modifs*/

    else
    {
    if (!empty($image))
    {
    if((substr($image, -3) == $jpg) OR (substr($image, -3) == $gif)) // On récupère les dimensions du fichier
    {
    $infos_img = getimagesize($_FILES['image']['tmp_name']); // On vérifie les dimensions et le poids de l'image
    if(($infos_img[0] <= $width_max) && ($infos_img[1] <= $height_max) && ($_FILES['image']['size'] <= $max_size))
    {
    // Si c'est OK, on teste l'upload
    if(move_uploaded_file($_FILES['image']['tmp_name'],$target.$_FILES['image']['name']))
    {
    $sqlQuery = "INSERT INTO actu (titre, date, texte, lien, illus) VALUES ('$titre', '$date', '$texte', '$lien', '$image')";
    if ($result = MYSQL_QUERY($sqlQuery)) {$alert='Nouvelle actu enregistrée !';} else {$alert='Il y a un problème, contactez le webmaster';}
    }
    else // Sinon on affiche une erreur système
    { $alert='Problème lors de l\'upload ! Contactez le webmaster';}
    }
    else // Sinon on affiche une erreur pour les dimensions et taille de l'image
    {$alert='Problème dans les dimensions ou le poids de l\'image ! Poids maximum : 40 ko. Taille maximum : 300 pixels';}
    }
    else // Sinon on affiche une erreur pour l'extension
    {$alert= 'Votre image ne comporte pas l\'extension .jpg ou.gif !'; }
    }//fin de si une image est postée
    else
    {
    $sqlQuery = "INSERT INTO actu (titre, date, texte, lien) VALUES ('$titre', '$date', '$texte', '$lien')";
    if ($result = MYSQL_QUERY($sqlQuery)) {$alert='Nouvelle actu enregistrée !';} else {$alert='Il y a un problème, contactez le webmaster';}
    }//fin de si pas d'image postée
    }//fin d'envoi des modifs
    } //fin de "si formulaire posté"

    //----------------------
    // FORMULAIRE
    //----------------------
    if (!empty($alert)) {echo '<p><span class="erreur">'.$alert.'</span></p>';}

    echo '<form enctype="multipart/form-data" name="EditActuForm" action="'.$PHP_SELF.'" method="post">';
    echo '<fieldset>';
    echo '<p>';
    echo '<label for="titre">Titre :</label>';
    echo '<input type="text" id="titre" name="titre" size="40" value=""/>';
    echo '</p>';
    echo '<p>';
    echo '<label for="date">Date :</label>';
    echo '<input type="text" id="date" name="date" size="15" value=""/>&nbsp;<a href="javascript:show_calendar(\'EditActuForm.date\');">> Sélectionnez une date</a>';
    echo '</p>';
    echo '<p>';
    echo '<label for="texte">Texte :</label>';
    echo '<textarea id="texte" name="texte" cols="37" rows="4">';
    echo '</textarea>';
    echo '</p>';
    echo '<p>';
    echo '<label for="lien">Lien :</label>';
    echo '<input type="text" id="lien" name="lien" size="40" value=""/>';
    echo '</p>';
    echo '<p>';
    echo '<label for="image">Illustration :</label>';
    echo '<input type="file" id="image" name="image"/>';
    echo '</p>';

    echo '<input type="submit" name="envoye" value="Enregistrer"/>';
    echo '</fieldset>';
    echo '</form>';

    ?>
    </body>
    </html>

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 9
    Points : 7
    Points
    7
    Par défaut j'ai trouvé !
    c'est le header location qui empêchait le traitement ! Il pouvait pas être utilisé à cet endroit (c'est la deuxième fois que je la fais cette boulette là ;-)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ajax fonctionne avec FF mais pas avec IE
    Par heliophane dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 23/08/2008, 23h01
  2. Réponses: 1
    Dernier message: 22/07/2008, 09h48
  3. fonctionne avec les sessions pas avec le reste
    Par hugo69 dans le forum Langage
    Réponses: 6
    Dernier message: 22/11/2005, 09h38
  4. Fonction JS qui fonctionne avec Mozilla mais pas avec IE.
    Par etiennegaloup dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 31/10/2005, 13h58
  5. Désactivation bouton = formulaire non soumis
    Par Gwipi dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 31/05/2005, 16h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo