2011-09-15 4 views
1

Je suis un développeur PHP et je n'ai aucune connaissance sur ASP. Malheureusement, je suis le seul développeur ici et un client avait ASP (pas ASP.NET) pages et ils voulaient un formulaire "Contactez-nous". J'ai cherché sur Internet pour savoir comment servir ASP fichiers Apache et il m'a indiqué mod_aspdotnet. C'était tellement stupide de ma part de penser que ASP est la même chose que ASP.NET! Maintenant voyez-vous mon problème? J'ai développé un script d'email de travail ASP.NET. Les fichiers avaient .aspx extensions, mais le site réel avait .asp extensions, ils utilisaient ASP et non ASP.NET!Conversion ASPX en ASP (script E-mail)?

Donc, je voudrais demander de l'aide. Ceci est mon script email:

<%@ Page Language="VB" Debug="true" %> 
<%@Import Namespace="System.Web.Mail" %> 
<script language="vb" runat="server"> 

Sub Send2Mail (sender as Object, e as EventArgs) 

    Dim objMail as New MailMessage() 

    if Logo.HasFile Then 
     Try 
      Logo.SaveAs(Server.MapPath("uploads/") + Request.form("strName") + "_Logo_" + Logo.FileName) 
      objMail.Attachments.Add(new MailAttachment(Server.MapPath("uploads/" + Request.form("strName") + "_Logo_" + Logo.FileName))) 
     Catch ex As Exception 
      msg.Text = "<b>The Logo could not be uploaded</b>. The following error occured: <i>" + ex.Message + "</i><br />" 
      msg.Visible = true 
     end try 
    end if 

    if Image1.HasFile Then 
     Try 
      Image1.SaveAs(Server.MapPath("uploads/") + Request.form("strName") + "_Image1_" + Image1.FileName) 
      objMail.Attachments.Add(new MailAttachment(Server.MapPath("uploads/" + Request.form("strName") + "_Image1_" + Image1.FileName))) 
     Catch ex As Exception 
      msg.Text = "Image 1 could not be uploaded. The following error occured: <i>" + ex.Message + "</i><br />" 
      msg.Visible = true 
     end try 
    end if 

    if Image2.HasFile Then 
     Try 
      Image2.SaveAs(Server.MapPath("uploads/") + Request.form("strName") + "_Image2_" + Image2.FileName) 
      objMail.Attachments.Add(new MailAttachment(Server.MapPath("uploads/" + Request.form("strName") + "_Image2_" + Image2.FileName))) 
     Catch ex As Exception 
      msg.Text = "Image 2 could not be uploaded. The following error occured: <i>" + ex.Message + "</i><br />" 
      msg.Visible = true 
     end try 
    end if 


    objMail.To = "[email protected]" 
    objMail.From = """Us"" <[email protected]>" 

    objMail.BodyFormat = MailFormat.Html 
    objMail.Priority = MailPriority.Normal 
    objMail.Subject = "Business Registration" 

    objMail.Body = "<html><body style='font-family: Verdana'><table style='font-family: Verdana; font-size: 11px'>" 
    objMail.Body += "<tr><td><b>Business Name:</b></td><td>" + Request.form("strName") + "</td></tr>" 
    objMail.Body += "<tr><td><b>Opening Business Description:</b></td><td>" + Request.form("strOpenDesc") + "</td></tr>" 
    objMail.Body += "<tr><td><b>Opening Hours:</b></td><td>" + Request.form("strHours") + "</td></tr>" 
    objMail.Body += "<tr><td><b>Business Description:</b></td><td>" + Request.form("strBusDesc") + "</td></tr>" 
    objMail.Body += "<tr><td><b>Servicing Area:</b></td><td>" + Request.form("strService") + "</td></tr>" 
    objMail.Body += "<tr><td><b>Website Address:</b></td><td>" + Request.form("strWebsite") + "</td></tr>" 
    objMail.Body += "<tr><td><b>Email Address:</b></td><td>" + Request.form("strEmail") + "</td></tr>" 
    objMail.Body += "<tr><td><b>Telephone Number:</b></td><td>" + Request.form("strPhone") + "</td></tr>" 
    objMail.Body += "<tr><td><b>Fax Number:</b></td><td>" + Request.form("strFax") + "</td></tr>" 
    objMail.Body += "<tr><td><b>Mobile Phone Number:</b></td><td>" + Request.form("strMobile") + "</td></tr>" 
    objMail.Body += "<tr><td><b>Suburb/Post Code:</b></td><td>" + Request.form("strPostCode") + "</td></tr>" 
    objMail.Body += "<tr><td><b>Proprietor Name:</b></td><td>" + Request.form("strPropName") + "</td></tr>" 
    objMail.Body += "<tr><td><br /></td></tr>" 
    objMail.Body += "<tr><td><b>Image 1 Caption:</b></td><td>" + Request.form("strImage1Caption") + "</td></tr>" 
    objMail.Body += "<tr><td><b>Image 2 Caption:</b></td><td>" + Request.form("strImage2Caption") + "</td></tr>" 
    objMail.Body += "</table><body></html>" 

    SmtpMail.SmtpServer = "localhost" 

    Try 
     SmtpMail.Send(objMail) 
     strMessage.Visible = true 
    Catch ex As Exception 
     msg.Text = "<b>The message was not sent</b>. The following error occured: <i>" + ex.Message + "</i><br />" 
     msg.Visible = true 
    End Try 

End Sub 

Est-ce qu'il est dans ce travail ASP? Que dois-je changer pour le faire fonctionner en ASP? J'utilise aussi les tags <asp:></asp:>. Est-ce que cela fonctionnera dans ASP?

EDIT

Je suis désolé pour la confusion de ce serveur, je me sers pour le développement et le serveur hôte. L'hôte utilise IIS. J'utilise Apache parce que je suis vraiment un développeur PHP. Le problème à propos de l'exécution de pages ASP dans Apache était parce que le client ne voulait pas me donner accès à leur serveur. Ils m'ont dit que je devrais juste livrer les fichiers.

Répondre

2

ASP et ASP.NET noms d'actions pour des raisons de marketing pur, mais ils sont essentiellement des technologies non liées, bien que ce dernier réutilise des concepts (comme étant un cadre agnostique de la langue) et même certains noms de méthodes (telles que Server.MapPath).

Dans les deux ASP, vous devez choisir un langage de programmation pris en charge et coder vos scripts avec. Votre exemple de code semble utiliser VisualBasic, qui n'était pas pris en charge par ASP classique. Vous devrez passer à (par exemple) VBScript. Contrairement à VisualBasic, VBScript est faiblement typé, mais à part cela, il a une syntaxe similaire.

La méthode ASP classique pour envoyer un courrier électronique est la CDONTS library. Un exemple simple:

<% 

set mailer = CreateObject("CDONTS.NewMail") 
mailer.from = "[email protected]" 
mailer.to = "[email protected]" 
mailer.subject = "Test e-mail message" 
mailer.body = "This is the message body." 
mailer.send 
set mailer = nothing 

%> 

En général, ASP classique était très similaire à PHP: vous intégrez le code dans vos documents HTML.

La partie difficile est la gestion du téléchargement de fichiers. ASP n'avait pas de fonctionnalité de téléchargement de fichiers natifs: vous deviez acheter et installer une bibliothèque commerciale binaire ou trouver l'un des extraits de code VBScript disponibles sur Internet.

Modifier: Votre client exécute-t-il vraiment ASP sur Apache? Microsoft ne prend en charge que IIS. Les modules Apache pour ASP étaient normalement écrits par des tiers et implémentaient souvent des langages différents comme Perl.

1

ASP (ou Classic ASP comme on le sait maintenant) et ASP.NET sont des bêtes différentes. Le premier est un langage scripté similaire à PHP, tandis que ASP.NET utilise le .NET Framework et est compilé dans un binaire MSIL soit avant d'être exécuté et téléchargé en tant qu'assemblage .NET, soit à la volée par IIS si la page contient un script en ligne , de toute façon, ils sont ensuite exécutés par le CLR (Common Language Runtime) qui constitue la partie centrale du framework .NET.

Bien qu'un code VB.NET puisse être reconverti en VBScript (le langage ASP classique le plus utilisé), tout ce qui utilise une partie du framework .NET en dehors de l'espace de noms Microsoft.VisualBasic ne sera pas disponible. Pour accéder à ce type de fonctionnalité, vous devez utiliser des composants ActiveX/COM tiers.

Vous dites que vous voulez servir le script ASP sur Apache, est-ce parce que vous n'avez pas accès à un serveur IIS ou que ce site est déjà en cours d'exécution sur Apache? Pour autant que je sache, la seule façon d'exécuter Classic ASP sur Apache est d'utiliser ChilliSoft/SunOne ASP pour Apache. Certaines sociétés d'hébergement offrent cela, mais c'est un produit hérité.

S'il exécute ChilliSoft ASP, un composant mail peut être installé si l'hôte a installé le SpicePack. Jetez un oeil à ce pour plus d'informations:

http://developers.sun.com/asp/howto/chilimail.html

http://ns7.webmasters.com/caspdoc/pdf/chilisoft_asp_docs.pdf

J'ai portés de nombreuses applications ASP de IIS à Apache en utilisant ChilliSoft ASP et généralement il fonctionne très bien.

Jetez un oeil à cette réponse pour une façon sur la façon d'envoyer un courriel en utilisant ASP: Sending Mail code in ASP

A défaut tout le reste, il suffit de vous ajouter une page à envoyer le courrier en PHP et obtenir le formulaire de contact POST à ​​cette page, puis redirigez-vous vers une page ASP si vous voulez qu'elle apparaisse transparente.

+0

Eh bien, le client a déjà un hôte. Le site est déjà en ligne et ils voulaient que j'ajoute un formulaire de contact. Ils ne veulent pas me donner accès à l'hôte! Ils ont dit que je devrais juste livrer les fichiers et ils vont le télécharger sur l'hôte. C'est pourquoi j'espérais que quelqu'un me dira que je n'ai pas vraiment besoin de changer beaucoup dans mon code. Mais je suppose que non. * soupir * –

+0

Je viens de numériser à travers les en-têtes HTTP et j'ai vu ceci: «Serveur: Microsoft-IIS/6.0» et «X-Powered-By: ASP.NET». Cela signifie-t-il qu'ils exécutent 'ASP> NET' mais les extensions de fichier sont' .asp'? –

+0

@Rolando - Cela signifie probablement que le serveur peut exécuter * les deux *. –