why this code work on local host and not work on hosting
<!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=开发者_Python百科"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>
Perhaps a problem with the server's character set? Without more spezifications about the problem, I can'g make a better guess...
EDIT:
Also if you are not going to fill every column in the table or not inserting the values in the right order, you need to specify the columns you are going to insert to, like this:
INSERT INTO tbl_name (col1,col2) VALUES( "val1" ,"val2");
(See MySQL reference)
It's also not a good idea, to write the users input in the table as he made it, use
mysql_real_escape_string($_POST[...]);
at least to avert SQL injection.
Does the server have a valid mail configuration? Verify, that the mail() function works and can send emails!
You should also check that the database is created using UTF-8 encoding. Check it's charset.
Maybe you should also check if the table is called USERS or users. MySQL is case-sensitive.
精彩评论