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

ASP Discussion :

Problème sur script de news :(


Sujet :

ASP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 28
    Points : 14
    Points
    14
    Par défaut Problème sur script de news :(
    Bonjour !

    Voila, je viens de créer un script de news assez simple (enfin, ça devrait l'etre ) mais un problème survient

    Voici mes 2 pages de code :

    <%

    ' ----------------------------------------------------------
    ' --------------------- VARIABLES --------------------------
    ' ----------------------------------------------------------

    Dim strSQL
    Dim strSQL1
    Dim strSQL2
    Dim strSQL3
    Dim DSN_BASE
    Dim database
    Dim dateActu
    Dim titreActu
    Dim nomDoc
    Dim imageActu
    Dim articleOk
    Dim supprimerActu


    'On crée une fonction qui mets des slashs devant les cotes
    function slash_cotes(SQL)
    SQL_bis = replace(SQL,"'","\'")
    slash_cotes = SQL_bis
    end function

    function ajout(SQL)
    SQL_bis = replace(SQL,"0","zero")
    ajout = SQL_bis
    end function

    function dateToSQL(strDate)
    if isDate(strDate) then
    dateToSQL = Year(strDate) & "-" & Right("0"& Month(strDate),2) & "-" & Day(strDate)
    else
    dateToSQL = "0000-00-00"
    end if
    end function

    'On crée une variable pour éviter de remettre Request.Form("var")
    dateActu = dateToSQL(date())
    titreActu = slash_cotes(Request.Form("titreActu"))
    nomDoc = slash_cotes(Request.Form("nomDoc"))
    imageActu = slash_cotes(Request.Form("imageActu"))
    articleOk = 1
    supprimerActu = Request.QueryString("supprimerActu")
    numActu = ajout(Request.Form("numActu"))


    'On crée les variables des requêtes SQL
    strSQL = "INSERT INTO actub VALUES ('""', '"&dateActu&"','"&titreActu&"','"&nomDoc&"','"&imageActu&"','"&articleOk&"')"
    strSQL1 = "UPDATE actub SET dateActu='"&dateActu&"',titreActu='"&titreActu&"',nomDoc='"&nomDoc&"',imageActu='"&imageActu&"' WHERE numActu='"&Request.Form("numActu")&"'"
    strSQL2 = "DELETE FROM actub WHERE numActu='"&Request.QueryString("supprimerActu")&"'"
    strSQL3 = "SELECT * FROM actub ORDER BY numActu DESC LIMIT 0, 10"

    'variables de connexion
    database = "intranet"
    DSN_BASE = "DRIVER={MySQL ODBC 3.51 Driver};Server=localhost;Port=3306;Database=" & database & ";Uid=root;Pwd=;" & _
    "OPTION=" & 1 + 2 + 8 + 32 + 2048 + 16384

    ' ---------------------------------------------------------------
    ' ---------------------- FIN VARIABLES --------------------------
    ' ---------------------------------------------------------------
    %>

    <h2> <a href="actu.asp" title="Créer une actu"> Ajouter une actu </a> </h2>

    <%
    'On se connecte à la base
    Set ConnActu = Server.CreateObject("ADODB.Connection")
    ConnActu.Open DSN_BASE


    '--------------------------------------------------------------------------
    '------VERIF 2 : EST-CE QU ON VEUT POSTER OU MODIFIER UNE ACTU ???---------
    '--------------------------------------------------------------------------

    'Création des recordSet
    Set RsInsertActu = Server.CreateObject("ADODB.Recordset")
    Set RsChangeActu = Server.CreateObject("ADODB.Recordset")

    'On se connecte à la base
    Set ConnActu = Server.CreateObject("ADODB.Connection")
    ConnActu.Open DSN_BASE

    if not isnull(Request.Form("dateActu")) AND not isnull (Request.Form("titreActu")) AND not isnull (Request.Form("nomDoc"))AND not isnull(Request.Form("imageActu")) then
    'On vérifie si c'est une modification de news ou non
    if Request.Form("numActu") = 0 then
    'Ce n'est pas une modification de l'Actu
    RsInsertActu.Open strSQL, ConnActu

    else'C'est une modification de l'Actu

    'On execute la requete placée dans la variable strSQL1
    RsChangeActu.Open strSQL1, ConnActu
    end if
    end if

    %>

    <table border="1px">
    <tr>
    <th> Modifier </th>
    <th> Num Actu </th>
    <th> Date Actu </th>
    <th> Titre Actu </th>
    <th> Nom Doc </th>
    <th> Image Actu </th>
    </tr>

    <%
    'Création du Recordset
    Set RsRecupBase = Server.CreateObject("ADODB.Recordset")

    'Ouverture Recordset
    RsRecupBase.Open strSQL3, ConnActu

    'On vérifie si RsRecupBase est vide ou non
    if RsRecupBase.EOF = False then

    'On va au premier enregistrement
    RsRecupBase.MoveFirst

    'Boucle
    Do while not RsRecupBase.EOF

    %>

    <tr>
    <td> <a href="Actu.asp?modifierActu=<%=RsRecupBase("numActu")%>"> Modifier </a> </td>
    <td> <%=RsRecupBase("numActu")%> </td>
    <td> <%=RsRecupBase("dateActu")%> </td>
    <td> <%=RsRecupBase("titreActu")%> </td>
    <td> <%=RsRecupBase("nomDoc")%> </td>
    <td> <%=RsRecupBase("imageActu")%> </td>
    </tr>

    <%
    'Aller sur l'enregistrement suivant
    RsRecupBase.MoveNext

    'Fin de la boucle
    loop
    %>

    </table>

    <%
    'Fin du if
    End if

    Response.Write(numactu)

    'On ferme la connexion et le recordset et on efface leur contenu


    ConnActu.Close
    Set ConnActu = Nothing

    %>

    <p>
    <a href="../index.asp" title="Retour à l'index"> Retour à l'index </a>
    </p>

    <%

    Dim strSQL
    Dim DSN_BASE
    Dim database
    Dim dateActu
    Dim titreActu
    Dim nomDoc
    Dim imageActu
    Dim articleOk
    Dim modifierActu

    'On crée une fonction qui mets des slashs devant les cotes
    function slash_cotes(SQL)
    SQL_bis = replace(SQL,"'","\'")
    slash_cotes = SQL_bis
    end function

    'On crée une variable pour éviter de remettre Request.Form("var")
    dateActu = date()
    titreActu = slash_cotes(Request.Form("titreActu"))
    nomDoc = slash_cotes(Request.Form("nomDoc"))
    imageActu = slash_cotes(Request.Form("imageActu"))
    articleOk = 1
    modifierActu = Request.QueryString("modifierActu")

    'On crée la variable de la requête SQL
    strSQL = "SELECT * FROM actub WHERE numActu='"&Request.QueryString("modifierActu")&"'"
    database = "intranet"
    DSN_BASE = "DRIVER={MySQL ODBC 3.51 Driver};Server=localhost;Port=3306;Database=" & database & ";Uid=root;Pwd=;" & _
    "OPTION=" & 1 + 2 + 8 + 32 + 2048 + 16384

    Set ConnActu = Server.CreateObject("ADODB.Connection")
    ConnActu.Open DSN_BASE

    Set RsRecupMess = Server.CreateObject("ADODB.Recordset")




    'si on demande de modifier l'actu
    if not isnull(modifierActu) then

    RsRecupMess.Open strSQL, ConnActu

    if not RsRecupMess.eof then
    'On récupère les informations dans des variables simples

    titreActu = RsRecupMess("titreActu")
    nomDoc = RsRecupMess("nomDoc")
    imageActu = RsRecupMess("imageActu")
    numActu =RsRecupMess("numActu")

    end if

    else 'On rédige une nouvelle news

    titreActu = ""
    nomDoc = ""
    imageActu = ""
    numActu = 0
    end if

    %>

    <form action="Actu_liste.asp" method="post">
    <p>Titre Actu : <input type="text" name="titreActu" value="<%=titreActu%>" /></p>
    <p>Nom Doc : <input type="text" name="nomDoc" value="<%=nomDoc%>" /></p>
    <p>Image Actu : <input type="text" name="imageActu" value="<%=imageActu%>" /></p>
    <input type="hidden" name="numActu" value="<%=numActu%>" />
    <p> <input type="submit" name="Envoyer" value="Envoyer" />
    </form>

    <%

    ConnActu.Close
    Set ConnActu = Nothing

    %>
    Mais voila, si je fais ajouter une actu, lorsque je clique sur envoyer, j'ai cette erreur là :

    Erreur d'exécution Microsoft VBScript error '800a000d'

    Type incompatible: '[string: ""]'

    /intranet/Form_admin/Actu_liste.asp, line 99


    la ligne 99 est celle ci : if Request.Form("numActu") = 0 then

    celle ci se trouve dans la premiere parti que j'ai mise. La variable a laquelle elle fait référence est a la fin de la seconde page, juste avant le formulaire.

    Voila, si quelqu'un peut m'aider ce serait sympa.

    Merci d'avance

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 26
    Points : 19
    Points
    19
    Par défaut
    Et avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if Request.Form("numActu") = "0"
    ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 28
    Points : 14
    Points
    14
    Par défaut
    ça ne fonctionne pas non plus, j'ai déjà essayé

    Au pire je met une checkbox qu'ils cocheront si c'est ue nouvelle news mais bon, j'aurais préféré que ça fonctionne sans ça ...

  4. #4
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Et comme ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if cStr(Request.Form("numActu")) = "0" then

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 26
    Points : 19
    Points
    19
    Par défaut
    Question :qu'est-ce qui te renvoit la valeur numActu ?
    Un INPUT? un SELECT ? ...

    Pourquoi si la news n'est pas renseigné tu as 0 pour numActu ?

    As-tu essayé de voir la valeur qui était renvoyée ?
    => response.Write Request.Form("numActu")

    Tom

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 28
    Points : 14
    Points
    14
    Par défaut
    Il me renvoie un numActu seulement si c'est une modification...

    En fait, dans la deuxieme page, je dis que si on clique sur le lien modifier dans la premiere, il recupere toutes les infos dans la BDD et il renvoiele numéro de celle k'il a modifié. Sinon, si c'est une nouvelle actu, il met les champs du formulaire vide et il renvoie numActu = 0 pour ke celui ci retrouve dans la premiere page qu'il faut inserer dans la base et non pa modifier

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 26
    Points : 19
    Points
    19
    Par défaut
    As-tu vérifier que dans le source HTML de ta page tu as bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [...]
    <input type="hidden" name="numActu" value="0" />
    [...]
    ?

  8. #8
    Membre régulier Avatar de DoRiane
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 127
    Points : 110
    Points
    110
    Par défaut
    Citation Envoyé par Anthos59
    Il me renvoie un numActu seulement si c'est une modification...
    Donc il te renvoie null ou "" sinon?
    as-tu essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if Request.Form("numActu") = "" then
    car il ne peut pas faire cStr sur "".

Discussions similaires

  1. [MySQL] Pb d'adaptation et de logique ? sur script de news
    Par noceb dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 16/01/2013, 09h32
  2. Problème sur script de démarrage de base
    Par sebio50 dans le forum Administration
    Réponses: 6
    Dernier message: 18/11/2008, 14h56
  3. problème sur script shell
    Par cyranno dans le forum Linux
    Réponses: 1
    Dernier message: 11/12/2007, 16h19
  4. Problème sur script mail_files
    Par jaskoula dans le forum Oracle
    Réponses: 1
    Dernier message: 01/03/2007, 19h28
  5. Réponses: 3
    Dernier message: 15/02/2006, 17h46

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