من همچین کدی رو نوشتم :
کد HTML:
<!DOCTYPE html><html lan="fa"><?php try{    $dns="mysql:host=localhost;dbname=site;charset=utf  8;";    $connect=new PDO($dns,'root','');}catch(PDOException $error){    echo 'connection error';}include 'function.php';/* read db*/$result=$connect->query("SELECT * FROM `signup`");?> <head>    <meta charset="utf-8">    <title>php</title>    <!--STYLE-->    <link rel="stylesheet/less" type="text/css" href="template/style/style.less">    <script type="text/javascript" src="template/javascript/less.min.js"></script>    <!--METATAG-->    <meta http-equiv="X-UA-Compatible" content="IE=edge">     <meta name="viewport" content="width=device-width, initial-scale=1.0">    <meta name="apple-mobile-web-app-capable" content="yes">    <meta http-equiv="Content-Language"  content="Fa">    <meta name="description" content="">    <meta name="keywords" content="">    <meta name="DC.Subject" lang="fa-ir" content="">    <meta name="robots" content="index,follow">    <meta name="copyright" content="">    <!--END--> </head> <body> <main> <form class="right" action="<?php htmlspecialchars($_SERVER["PHP_SELF"]) ?>" method="post"> <table class="table1">    <tr>        <td>نام</td>        <td><input type="text" name="name" id="name"></td>    </tr>    <tr>        <td>نام خانوادگي</td>        <td><input type="text" name="family"></td>    </tr>    <tr>        <td>ايميل</td>        <td><input type="text" name="email" class="email"></td>    </tr>    <tr>        <td>جنسيت</td>        <td><select name="***"><option>مرد</option><option>زن</option></select></td>    </tr>    <tr>        <td>نام کاربري</td>        <td><input type="text" name="username" class="username"></td>    </tr>    <tr>        <td>کلمه عبور</td>        <td><input type="text" name="password" class="password"></td>    </tr>    <tr>        <td>تکرار کلمه عبور</td>        <td><input type="text" name="repeatpassword" class="repeatpassword"></td>    </tr>    <tr>        <td>&nbsp;</td>        <td><input type="submit" value="ثبت" class="submit" name="submit"></td>    </tr> </table> </form> <div class="error pname"><img alt="error" src="template/icon/error.png"><span></span></div> <div class="error pfamily"><img alt="error" src="template/icon/error.png"><span></span></div> <div class="error pemail"><img alt="error" src="template/icon/error.png"><span></span></div> <div class="error p***"><img alt="error" src="template/icon/error.png"><span></span></div> <div class="error pusername"><img alt="error" src="template/icon/error.png"><span></span></div> <div class="error ppassword"><img alt="error" src="template/icon/error.png"><span></span></div> <div class="error prepeatpassword"><img alt="error" src="template/icon/error.png"><span></span></div> </main> <!--  --> <section>    <table class="table2">        <thead>            <td>نام</td>            <td>نام خانوادگي</td>            <td>ايميل</td>            <td>جنسيت</td>            <td>نام کاربري</td>            <td>پسورد</td>            <td>مديريت</td>        </thead>        <tbody>        <?php while($rows=$result->fetch(PDO::FETCH_ASSOC)){ ?>            <tr>                <td><?php echo $rows['name']; ?></td>                <td><?php echo $rows['family']; ?></td>                <td><?php echo $rows['email']; ?></td>                <td><?php echo $rows['***']; ?></td>                <td><?php echo $rows['username']; ?></td>                <td><?php echo $rows['password']; ?></td>                <td>                    <a href="?id=<?php echo $rows['id']; ?>" onclick="return confirm('آيا از حذف اطلاعات اطمينان داريد ؟')"><img alt="delete" src="template/icon/delete.png"></a>                    <a href="edit.php?id=<?php echo $rows['id']; ?>"><img alt="delete" src="template/icon/edit.png"></a>                </td>            </tr>            <?php }?>            <!--  -->                         </tbody>             </table>    <a href="?deleteall" onclick="return confirm('آيا تمام اطلاعات جدول حذف شود ؟')"><button type="button">حذف تمام اطلاعات جدول</button></a> </section> </body><?php /* insert */if($_SERVER["REQUEST_METHOD"]=="POST"){    if(isset($_POST['name']) && isset($_POST['family']) && isset($_POST['email']) && isset($_POST['***']) && isset($_POST['username']) && isset($_POST['password']) && isset($_POST['repeatpassword']) && isset($_POST['submit'])){        $index=array(            'name'=>input($_POST['name']),            'family'=>input($_POST['family']),            'email'=>input($_POST['email']),            '***'=>input($_POST['***']),            'username'=>input($_POST['username']),            'password'=>input($_POST['password']),            'repeatpassword'=>input($_POST['repeatpassword']),        );        $a=$b=$c=$d=$e=$f=$g=0;        /* validation name */        if(empty($index['name'])){            echo "<script>$('.pname').css({'display':'block'});$('.  pname span').text('لطفا نام خود را پر کنيد !');</script>";        }        else if(!preg_match('/^[a-zA-Z\x{0600}-\x{06EF}]{3,50}$/u',$index['name'])){            echo "<script>$('.pname').css({'display':'block'});$('.  pname span').text('کارکتر هاي مجاز : a-z + حروف فارسي + حداقل 3 کارکتر  !');</script>";        }        else{            $a=1;        }        /* validation family */        if(empty($index['family'])){            echo "<script>$('.pfamily').css({'display':'block'});$(  '.pfamily span').text('لطفا نام خانوادگي خود را پر کنيد !');</script>";        }        else if(!preg_match('/^[a-zA-Z\x{0600}-\x{06EF}]{3,50}$/u',$index['name'])){            echo "<script>$('.pfamily').css({'display':'block'});$(  '.pfamily span').text('کارکتر هاي مجاز : a-z + حروف فارسي + حداقل 3 کارکتر  !');</script>";        }        else{            $b=1;        }        /* validation email */        $result_email=$connect->query("SELECT `email` FROM `signup` WHERE `email`='".$index['email']."'");        $rowcount_email=$result_email->rowCount();        if(empty($index['email'])){            echo "<script>$('.pemail').css({'display':'block'});$('  .pemail span').text('لطفا ايميل خود را پر کنيد !');</script>";        }        else if(!filter_var($index['email'],FILTER_VALIDATE_EMAIL)){            echo "<script>$('.pemail').css({'display':'block'});$('  .pemail span').text('ايميل نا معتبر !');</script>";        }        else if($rowcount_email>0){            echo "<script>$('.pemail').css({'display':'block'});$('  .pemail span').text('ايميل شما قبلا ثبت شده است !');</script>";        }        else{            $c=1;        }        /* validation *** */        if(empty($index['***'])){            echo "<script>$('.p***').css({'display':'block'});$('.p  *** span').text('لطفا جنسيت خود را پر کنيد !');</script>";        }        else if(!preg_match('/^[\x{0600}-\x{06EF}]{2,4}$/u',$index['***'])){            $d=0;        }        else{            $d=1;        }        /* validation username */        $result_username=$connect->query("SELECT `username` FROM `signup` WHERE `username`='".$index['username']."'");        $rowcount=$result_username->rowCount();        if(empty($index['username'])){            echo "<script>$('.pusername').css({'display':'block'});  $('.pusername span').text('لطفا نام کاربري خود را پر کنيد !');</script>";        }        else if(!preg_match('/^[a-zA-Z0-9_@.]{3,50}$/i',$index['username'])){            echo "<script>$('.pusername').css({'display':'block'});  $('.pusername span').text('نام کاربري نا معتبر !');</script>";        }        else if($rowcount>0){            echo "<script>$('.pusername').css({'display':'block'});  $('.pusername span').text('نام کاربري شما قبلا ثبت شده است !');</script>";        }        else{            $e=1;        }                 /* validation password */        if(empty($index['password'])){            echo "<script>$('.ppassword').css({'display':'block'});  $('.ppassword span').text('لطفا رمز عبور خود را پر کنيد !');</script>";        }        else if(!preg_match('/^[a-zA-Z0-9_@.]{8,50}$/i',$index['password'])){            echo "<script>$('.ppassword').css({'display':'block'});  $('.ppassword span').text('رمز عبور نا معتبر !');</script>";        }        else{            $f=1;        }        /* validation repeatpassword */        if(empty($index['repeatpassword'])){            echo "<script>$('.prepeatpassword').css({'display':'blo  ck'});$('.prepeatpassword span').text('لطفا تکرار رمز عبور خود را پر کنيد !');</script>";        }        else if(!preg_match('/^[a-zA-Z0-9_@.]{8,50}$/i',$index['password'])){            echo "<script>$('.prepeatpassword').css({'display':'blo  ck'});$('.prepeatpassword span').text('نکرار رمز عبور نا معتبر !');</script>";        }        else if($index['password']!==$index['repeatpassword']){            echo "<script>$('.prepeatpassword').css({'display':'blo  ck'});$('.prepeatpassword span').text('رمز عبور با تکرار آن همخواني ندارد !');</script>";        }        else{            $g=1;        }        if($a==1 && $b==1 && $c==1 && $d==1 && $e==1 && $f==1 && $g==1){            $connect->query("INSERT INTO `signup`(`name`,`family`,`email`,`***`,`username`,  `password`,`repeatpassword`) VALUES('".$index['name']."','".$index['family']."','".$index['email']."', '".$index['***']."','".$index['username']."' ,'".$index['password']."' ,'".$index['repeatpassword']."')");            header('location: index.php');        } }}/* update *//* delete */if(isset($_GET['id'])){    $check_id=$connect->query("SELECT `id` FROM `signup` WHERE `id`='".$_GET['id']."'");    $check_id_count=$check_id->rowCount();    if($check_id_count==1){        $connect->query("DELETE FROM `signup` WHERE `id`='".$_GET['id']."' ");        header('location: index.php');    }    else{        echo "<script>alert('ip not found')</script>";        exit();    }     }if(isset($_GET['deleteall'])){    $deleteall=$connect->query("DELETE FROM `signup`");    if($deleteall){        header("location: index.php");    }}?></html>
یک فرم عضویت ساختم - قصدم این بود که بعد از اینکه کاربر دکمه submit رو فشار داد اطلاعات بعد از ***** شدن برای ثبت به دیتابیس ارسال بشن و بعدش تابع header رو اجرا کنه تا صفحه رفرش بشه و header خالی بشه . همچنین یک جدول کنار فرم عضویت ساختم که اطلاعات رو از دیتابیس fetch میکنه و به من نمایش میده .

همه چیز درست کار میکنه . اما مشکل اینجاست که بعد از اینکه 2 تا رکورد از طریق فرمی که ساختم ثبت میکنم , برای سومین رکوردی که میخوام ثبت کنم این ارور رو میده :
Warning: Cannot modify header information - headers already sent by (output started at D:\xampp\htdocs\www\pt\index.php:105) in D:\xampp\htdocs\www\pt\index.php on line 214
اطلاعات ثبت میشه تو دیتابیس ولی مشکلش با تابع header هست .
من از نرم افزار شبیه ساز xampp استفاده میکنم .

تشکر