为什么此代码在本地主机上工作而不在托管上工作

时间:2010-09-23 10:46:17

标签: php

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ar" lang="ar">
    <head>
            <meta http-equiv="content-type" content="text/html;charset= utf-8" />
                <link rel="stylesheet" type="text/css" href="style.css" />
        <title>ahmed fakhr el din</title>
    </head>


    <body>

<div id="regform">
<h2> نموذج تسجيل</h2>
<?php

    if(isset($_POST['submit'])){// Click on complete button

        $error=array();
        if(empty($_POST['uname']) || trim($_POST['uname'])=="")
            $error[]="خطأ : خانة اسم المستخدم Ùارغة";
        if(empty($_POST['fname']) || trim($_POST['fname'])=="")
            $error[]="خطأ:خانة الاسم الاول Ùارغة";
        if(empty($_POST['password']) || trim($_POST['password'])=="")
            $error[]="خطأ : خانة الكلمة السرية Ùارغة";
        if(empty($_POST['password2']) || trim($_POST['password2'])=="")
            $error[]="خطأ خانة  تأكيد الكلمة السرية Ùارغة";
        if(empty($_POST['email'])|| trim($_POST['email'])=="")
            $error[]="خطأ : خانة البريد الالكتروني Ùارغة";
        if(empty($_POST['email2'])|| trim($_POST['email2'])=="")
            $error[]="خطأ : خانة تأكيد البريد الالكتروني Ùارغة";
        if(empty($_POST['age'])|| trim($_POST['age'])=="")
            $error[]="خطأ :خانة العمر Ùارغة";

        if(strlen($_POST['uname'])<4)
            $error[]="حطأ :  يجب ان يتكون اسم المستخدمن اكثر 4 حروÙ";

        if(strlen($_POST['password'])<4 || strlen($_POST['password2'])<4)
            $error[]="خطأ الكلمة السرية يجب ان تتكون من اكثر من 6 حروÙ";

        if($_POST['password']!=$_POST['password2'])
            $error[]="خطأ : الكلمات السرية غير متطابقة";
            //Validating Emails 

            if(!preg_match("/^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9](.[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9])+$/",$_POST['email'])
                ||
                !preg_match("/^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9](.[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9])+$/",$_POST['email2']))
        $error[]="خطأ: البريد الالكتروني غير صالح";



        if($_POST['email']!=$_POST['email2'])
            $error[]="خطأ : البريد الالكتروني غير متطابق";

        if(!is_numeric($_POST['age']))
            $error[]="خطأ : العمر المدخل ليس قيمة رقمية";


if(sizeof($error)>0){
            echo "<div id=\"error\">";
            echo "<ul>";                
    foreach($error as $k=>$v){
            echo "<li> ";
            echo $v;
            echo "</li>";           
        }
            echo "</ul>";
            echo "</div>";

        }


            else{
        include "conf.php";
                // Random confirmation code
                $confirm_code=uniqid(rand());
                $username=$_POST['uname'];
                $fname=$_POST['fname'];
                $password=$_POST['password'];
                $email=$_POST['email'];
                $age=$_POST['age'];
                $gender=$_POST['gender'];
                $adduser= mysql_query("INSERT INTO USERS VALUES('$confirm_code','$username','$fname','$password','$email','$age','$gender')");
                 // send e-mail to ...
                  $to=$email;

                 // Your subject
              $subject="Your confirmation link here";

                   // From
              $header="from: your name <your email>";

                   // Your message
              $message="Your Comfirmation link \r\n";
              $message.="Click on this link to activate your account \r\n";
              $message.="http://www.sufiacademy.net/confirmation.php?passkey=$confirm_code";
                        // send email
              $sentmail = mail($to,$subject,$message,$header);
                if($adduser and $sentmail){

                    echo "<div id=\"succes\">";
                    echo "  register succesfully";
                    echo "</div>";

                }

            }

        }



?>
    <ul>
    <form method="post" action="index.php">
        <li><label>اسم المستخدم :</label> <span><input type="text" name="uname" /></span> </li>
        <li><label> الاسم الاول: </label> <span><input type="text" name="fname" /></span></li>
        <li><label> الكلمة السرية: </label> <span><input type="password" name="password" /></span> </li>
        <li><label> تأكيد الكلمة السرية: </label>  <span><input type="password" name="password2" /></span></li>
        <li><label> البريد الالكتروني: </label>  <span><input type="text" name="email" /></span></li>
        <li><label> تأكيد البريد الالكتروني: </label>  <span><input type="text" name="email2" /></span> </li>
        <li><label> العمر: </label>  <span><input type="text" name="age" /></span></li>
        <li><label> الجنس: </label><span><select name="gender"><option>ذكر</option> <option>انثى</option> </select> </span> </li>
        <li> <input type="submit" class="submit" value="اكمال" name="submit"/> </li>
        </form>
    </ul>

</div>
</body>
</html>

2 个答案:

答案 0 :(得分:1)

服务器的字符集可能有问题吗?如果没有更多关于这个问题的说明,我就可以做出更好的猜测......

编辑:

此外,如果您不打算填充表格中的每一列或不按正确的顺序插入值,您需要指定要插入的列,如下所示:

INSERT INTO tbl_name (col1,col2) VALUES( "val1" ,"val2");

(见MySQL reference

在他创建表中的用户输入中编写用户输入也不是一个好主意,使用

mysql_real_escape_string($_POST[...]);

至少要避免SQL注入。

答案 1 :(得分:0)

服务器是否有有效的邮件配置?验证mail()函数是否有效并可以发送电子邮件!

您还应该检查数据库是否使用UTF-8编码创建。检查它的字符集。

也许您还应该检查该表是否称为USERS或用户。 MySQL区分大小写。