QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 818|回复: 4

帮我看看这段 c++代码

[复制链接]
发表于 2003-8-11 12:49:16 | 显示全部楼层 |阅读模式
下面这段代码编译能通过,并且执行后mysql数据库里的数据也更改了,但就是在网页上没有输出,是什么地方的错?急!

#include <iostream>
#include &lt;mysql/mysql.h&gt;
#include &lt;cstdio&gt;
#include &lt;cstdlib&gt;
#include &lt;string&gt;

using namespace std;

struct Data
{
        string name, passwd, truename, city, address, phone, email;
};

class UpdateInfo
{
private:
        string input, dest[7];
        char *updatesql;
        Data dataObj;
public:
        void get()
        {
                input.assign(getenv("QUERY_STRING"));
        }

        void replaceAll(const string &amp;findstr, const string &amp;replstr)
        {
                int found = input.find(findstr);
                while(found != string::npos)
                {
                        input.replace(found, findstr.length(), replstr);
                        found = input.find(findstr);
                }
        }

        void urldecode()
        {
                replaceAll("%2C", ",");
                replaceAll("+", " ");
                split();
        }

        void split()
        {
                int count = 0;
                char *p;
                char temp[512];
                strcpy(temp,input.c_str());
                p = strtok(temp, "&amp;");
                while(p != NULL)
                {
                        dest[count]=p;
                        count++;
                        p = strtok(0, "&amp;");
                }
                for(int counter = 0; counter != count; counter++)
                {
                        dest[counter].erase(0,dest[counter].find("=") + 1);
                }
                dataObj.name=dest[0];
                dataObj.passwd=dest[1];
                dataObj.truename=dest[2];
                dataObj.city=dest[3];
                dataObj.address=dest[4];
                dataObj.phone=dest[5];
                dataObj.email=dest[6];
        }

        void updateData(char *updateCustomer)
        {
                MYSQL mysql;
                MYSQL_ROW row;
                char *qbuff;
                qbuff=new char[512];
                mysql_init(&amp;mysql);
                mysql_real_connect(&amp;mysql,NULL,"root",NULL,"Diaz",0,0,0);
                sprintf(qbuff,updateCustomer);
                mysql_query(&amp;mysql,qbuff);
                if(mysql_affected_rows(&amp;mysql)!=0)
                {
                        cout &lt;&lt; "个人信息修改成功!点击";
                        cout &lt;&lt; "&lt;a href=http://127.0.0.1/html/index.html&gt;";
                        cout &lt;&lt; "这里&lt;/a&gt;返回首页";
                }
                else
                {
                        cout &lt;&lt; "用户名或密码错误!点击";
                        cout &lt;&lt; "&lt;a href=http://127.0.0.1/html/updateinfo.html&gt;";
                        cout &lt;&lt; "这里&lt;/a&gt;返回";
                }
                delete qbuff;
                mysql_close(&amp;mysql);
        }
       
        void update()
        {
                updatesql= new char [512];
                if(dest[0].length() != 0 &amp;&amp; dest[1].length() != 0)
                {
                        if(dest[2].length()!= 0)
                        {
                                sprintf(updatesql,"update Customer set cName = '%s' where cLoginName='%s' and cLoginPasswd='%s'",dest[2].c_str(),dest[0].c_str(),dest[1].c_str());
                                updateData(updatesql);
                        }
                        if(dest[3].length()!=0)
                        {
                                sprintf(updatesql,"update Customer set cCity = '%s' where cLoginName='%s' and cLoginPasswd='%s'",dest[3].c_str(),dest[0].c_str(),dest[1].c_str());
                                updateData(updatesql);
                        }
                        if(dest[4].length()!=0)
                        {
                                sprintf(updatesql,"update Customer set cAddress= '%s' where cLoginName='%s' and cLoginPasswd='%s'",dest[4].c_str(),dest[0].c_str(),dest[1].c_str());
                                updateData(updatesql);
                        }
                        if(dest[5].length()!=0)
                        {
                                sprintf(updatesql,"update Customer set cPhone = '%s' where cLoginName='%s' and cLoginPasswd='%s'",dest[5].c_str(),dest[0].c_str(),dest[1].c_str());
                                updateData(updatesql);
                        }
                        if(dest[6].length()!=0)
                        {
                                sprintf(updatesql,"update Customer set cEmail = '%s' where cLoginName='%s' and cLoginPasswd='%s'",dest[6].c_str(),dest[0].c_str(),dest[1].c_str());
                                updateData(updatesql);
                        }
                }
                else
                {
                        cout &lt;&lt; "请输入您的用户名和密码,谢谢!点击";
                        cout &lt;&lt; "&lt;a href=http://127.0.0.1/html/updateinfo.html&gt;";
                        cout &lt;&lt; "这里&lt;/a&gt;返回";
                }
        }
};

int main()
{
        cout &lt;&lt; "content-type: text/html" &lt;&lt; endl &lt;&lt; endl;
        cout &lt;&lt; "&lt;html&gt;&lt;h1&gt;";
        cout  &lt;&lt; "hello";         //连这句都不能输出。
        UpdateInfo obj;
        obj.get();
        obj.urldecode();
        obj.split();
        obj.update();
        cout &lt;&lt; "&lt;/h1&gt;&lt;/html&gt;";
        return 0;
}

//下面这个简单的就能输出

/*int main()
{
        cout &lt;&lt; "content-type: text/html" &lt;&lt; endl &lt;&lt; endl;
        cout &lt;&lt; "&lt;html&gt;&lt;h1&gt;hello&lt;/h1&gt;&lt;/html&gt;";
        return 0;
}*/


肯定不会是中文的问题。
发表于 2003-8-11 12:59:31 | 显示全部楼层
第一行的#include后面没有东西啊~这个是不是网上找的代码?
回复

使用道具 举报

 楼主| 发表于 2003-8-11 14:18:27 | 显示全部楼层
能解决就解决,问这无聊的问题干什么?靠,一大堆废话。

我都说能编译通过了,后面是iostream

还有,我为什么就不能自已写代码???非要从网上找。
回复

使用道具 举报

发表于 2003-8-11 15:20:40 | 显示全部楼层
建议将所有的输出(用cout 的)写到文件里(如test.html)看看内容是否正确 ?
回复

使用道具 举报

 楼主| 发表于 2003-8-11 18:26:35 | 显示全部楼层
都正确,已经都测试过了,但还是不行,我还有几个程序,输出也是这样的,都正常,就这个不行,找不出问题,晕。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-15 05:59 , Processed in 0.039810 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表