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

Langage PHP Discussion :

Easy PHP 1.8.0.1 : conditionnement d'une 'insertion sur SQL par Dreamweaver'


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 5
    Points : 6
    Points
    6
    Par défaut Easy PHP 1.8.0.1 : conditionnement d'une 'insertion sur SQL par Dreamweaver'
    Bonjour,

    Pour commencer, un grand merci pour toutes les solutions concrètes apportée dans ce forum. Je m'excuse d'avance de ne pas avoir trouvé la réponse existant probablement dans un autre post

    Après conditionnement de l'insertion MM_insert codée par Dreamwaver (ç'est ma methode d'apprentissage), je me retrouve avec une erreur sur le header qui permettais la re-direction en cas de succès. Je maitrise pas encore très bien header() et j'ai du mal a comprendre comment/pourquoi Dreamw. y implante un sprintf() encore plus occulte pour moi ^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    <?php //codé par Dreamweaver
     require_once('../Connections/DBConNewProfile.php'); ?>
    <?php
    function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
    {
      $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
     
      switch ($theType) {
        case "text":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;    
        case "long":
        case "int":
          $theValue = ($theValue != "") ? intval($theValue) : "NULL";
          break;
        case "double":
          $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
          break;
        case "date":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;
        case "defined":
          $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
          break;
      }
      return $theValue;
    }
     
    $editFormAction = $_SERVER['PHP_SELF'];
    if (isset($_SERVER['QUERY_STRING'])) {
      $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
    }
    ?>
    <?php //conditionnement par mes soins...d'autre sont prévues
    if ((isset($_POST["mail"])) && ($_POST["mail"] == $_POST["Cmail"])) {
     ?>
     <?php //suite du code DreamW.
    if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
      $insertSQL = sprintf("INSERT INTO profiles (password, email, `User`) VALUES (%s, %s, %s)",
                           GetSQLValueString($_POST['pass'], "text"),
                           GetSQLValueString($_POST['mail'], "text"),
                           GetSQLValueString($_POST['pseudo'], "text"));
     
      mysql_select_db($database_DBConNewProfile, $DBConNewProfile);
      $Result1 = mysql_query($insertSQL, $DBConNewProfile) or die(mysql_error());
     
      $insertGoTo = "../index.html";
      if (isset($_SERVER['QUERY_STRING'])) {
        $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
        $insertGoTo .= $_SERVER['QUERY_STRING'];
      }
      header(sprintf("Location: %s", $insertGoTo)); //header en erreure L57
    }
    ?>
    <?php } //fin de mon conditionnement 
    ?>
    ...
    <?php echo $editFormAction; //à la déclaration HTML du form1 ?>
    ...
    J'ai économiser HTML j'éspère que vous en aurez pas besoin...

    Le message d'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: Cannot modify header information - headers already sent by (output started at k:\~\html\newp2.php:3) in k:\~\html\newp2.php on line 57
    Comme si il voulait actualiser la page au lieu de rediriger... (je suis peu-être aussi à côté de la plaque...^^)
    L'insertion Sql, elle, se fait, au regard de "mon conditionnement".
    Sans "mon conditionnement",rien a signaler.

    Merci d'avance pour vos réponses.

  2. #2
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Tu as cette erreur car tu envoies un espace blanc à cet endroit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     ?>
     <?php //suite du code DreamW.
    La solution est de ne pas mettre ce type de code, c'est inutile. Tu peux le remplacer par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    //suite du code DreamW.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Bonsoir,

    Aaargh, c'est tout moi ça! En voulant vous simplifier la vie, je rajoutes une erreur

    Mais devinez quoi? Les REM que je vous ai shootés contenaient la même erreur... Après suppression "Works perfectly" !

    J'ai bien fait de vous envoyer des fleurs au premier post !


  4. #4
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Attention, il y avait une erreur non pas à cause des ?><?php mais bien parce que dans une de ces situations, il y a un espace blanc en début de ligne.
    Ceci ne pose aucun problème :
    En revanche, ce code pose problème :

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Oui. HTTP a horreur de ça...

    Et ça explique à 100 % pourquoi il ne me faisait l'erreur que sur un POST "valide" et que ce dernier étais tout de même transmis à SQL.

    j'ai depuis agrémenté le conditionnement et ajouté les validation de champs...

    Merci encore.

    PS topic résolu ^^

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

Discussions similaires

  1. (Easy PHP) sur un réseau locale
    Par Furius dans le forum Développement
    Réponses: 17
    Dernier message: 19/08/2011, 10h23
  2. [EasyPHP] Incompatibilite avec Easy php
    Par stomerfull dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 12/12/2005, 12h24
  3. Apache, IIS, easy php
    Par ibtisss dans le forum IIS
    Réponses: 1
    Dernier message: 20/10/2005, 14h01
  4. easy php avec apache 2.0
    Par tulipenoire dans le forum Apache
    Réponses: 1
    Dernier message: 25/09/2005, 21h04
  5. SERVER APACHE EASY PHP
    Par xophe2 dans le forum Apache
    Réponses: 3
    Dernier message: 17/06/2004, 15h09

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