صفحه 1 از 2 12 آخرینآخرین
نمایش نتایج: از شماره 1 تا 10 , از مجموع 11

موضوع: ارور xampp برای تابع header()

  1. #1
    عضو انجمن
    تاریخ عضویت
    Jun 2015
    نوشته ها
    194
    تشکر تشکر کرده 
    213
    تشکر تشکر شده 
    22
    تشکر شده در
    20 پست

    Arrow ارور xampp برای تابع header()

    من همچین کدی رو نوشتم :
    کد 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 استفاده میکنم .

    تشکر

  2. # ADS




     

  3. #2
    عضو دائم T.Toosi آواتار ها
    تاریخ عضویت
    Jun 2015
    نوشته ها
    1,071
    تشکر تشکر کرده 
    278
    تشکر تشکر شده 
    2,936
    تشکر شده در
    1,329 پست

    پیش فرض پاسخ : ارور xampp برای تابع header()

    هیدر باید قبل از نمایش یا خروجی هر content ـی قرار بگیرد.

  4. تعداد تشکر ها ازT.Toosi به دلیل پست مفید


  5. #3
    عضو انجمن rezaonline.net آواتار ها
    تاریخ عضویت
    Apr 2012
    محل سکونت
    Sanandaj | Tehran
    نوشته ها
    939
    تشکر تشکر کرده 
    1,556
    تشکر تشکر شده 
    2,338
    تشکر شده در
    1,230 پست

    پیش فرض پاسخ : ارور xampp برای تابع header()

    فایلتو کامل بذار اینجا تا اصلاحش کنم براتون
    http://paste.ofcode.org/

  6. تعداد تشکر ها ازrezaonline.net به دلیل پست مفید


  7. #4
    عضو انجمن
    تاریخ عضویت
    Jun 2015
    نوشته ها
    194
    تشکر تشکر کرده 
    213
    تشکر تشکر شده 
    22
    تشکر شده در
    20 پست

    پیش فرض پاسخ : ارور xampp برای تابع header()

    نقل قول نوشته اصلی توسط rezaonline.net نمایش پست ها
    فایلتو کامل بذار اینجا تا اصلاحش کنم براتون
    http://paste.ofcode.org/
    http://paste.ofcode.org/qBaxXwTR4S28hkQF2NbKey
    ممنون اقا رضا

    - - - Updated - - -

    نقل قول نوشته اصلی توسط T.Toosi نمایش پست ها
    هیدر باید قبل از نمایش یا خروجی هر content ـی قرار بگیرد.
    منظورتون اینه که دستورات insert و update , delete در php باید قبل از fetch کردن اطلاعات از دیتابیس قرار بگیره؟

    من اگر کد های بخش insert رو به قبل از تگ <head> انتقال بدم دیگه نمیتونم از طریق php اجزای صفحه رو با jquery کنترل کنم .( مثلا اگر فلان فیلد خالی بود , تو بیا و یک ارور زیبا رو با jquery نمایش بده)

  8. #5
    عضو انجمن rezaonline.net آواتار ها
    تاریخ عضویت
    Apr 2012
    محل سکونت
    Sanandaj | Tehran
    نوشته ها
    939
    تشکر تشکر کرده 
    1,556
    تشکر تشکر شده 
    2,338
    تشکر شده در
    1,230 پست

    پیش فرض پاسخ : ارور xampp برای تابع header()

    http://paste.ofcode.org/c3xJYpMSZ2uzrYci4VdjR6
    من تا یه حدودی اصلاح کردم
    اما چند نکته خدمت شما
    کدهایتون sql injection داره سعی کنید از متد prepare کلاس pdo استفاده کنید و داده ها رو به اینصورت وارد کنید
    csrf رو رعایت نکردید برای حذف مقادیر
    حذف مقادیر در سایت شما به این شکل است
    مثلا حذف مقادیر شناسه 1 بصورت
    examle.ir/index.php?id=1 هست درسته ؟

    خب فرض کنید من توی یاهویی تلگرامی چیزی هستم و با شما درارتباطم و میدونم شما الان توی سایتتون لاگین هستید

    میام یه صفحه html میسازم و این کدها رو توش میذارم
    کد:
    <img src='http://examle.ir/index.php?id=1'>
    <img src='http://examle.ir/index.php?id=2'>
    <img src='http://examle.ir/index.php?id=3'>
    <img src='http://examle.ir/index.php?id=4'>
    <img src='http://examle.ir/index.php?id=5'>
    و یه جا میذارم
    و به شما میگم بیا این سایت منو ببین
    شما میایید توی سایت من ، و اون آدرسها بعنوان عکس لود میشه و چون توی سایت خودتون لاگین هستید پس باعث حذف رکوردهای 1 تا 5 میشه
    این یکی از سادترین روش برای سو استفاده از csrf هست

    همچنین داده هاتون رو هم escape نکردید از لحاظ پاکسازی و این خودش باعث باگ xss میشه
    کد:
    <td><?php echo $rows['name']; ?></td>
    سعی کنید از توابع strip_tags و htmlspecialchars استفاده کنید

    اگر تازه دارید با پی اچ پی کار میکنید و این مسائل کمی براتون گنگ و سخت هست نادیده بگیرد و به کارتون ادامه بدید تا کمی تجربه کسب کنید فقط مواظب باشید سایتتون رو در معرض عموم نذارید
    انشاالله موفق باشید

  9. تعداد تشکر ها از rezaonline.net به دلیل پست مفید


  10. #6
    عضو انجمن
    تاریخ عضویت
    Jun 2015
    نوشته ها
    194
    تشکر تشکر کرده 
    213
    تشکر تشکر شده 
    22
    تشکر شده در
    20 پست

    پیش فرض پاسخ : ارور xampp برای تابع header()

    اقا رضا بازم این ارورو هنوز برای ثبت بیشتراز 2 رکورد میده . اسکریپت رو اپلود کردم اگه بتونید ببینید چشه و تست کنید ممنون میشم . ( تغییرات شما رو هم اعمال کردم روش )

    /**/

    یک چیز دیگه : اینکه من دستورات insert - delete - update رو در انتهای صفحه درج میکنم تا بتونم با jquery قشنگتر صفجه و اررور هارو کنترل کنم , کار خوبیه به نظرتون؟
    شما تو کد نویسی در کدوم محل برای درج کد های insert و .... فضت میزارید .
    ممنون از شماDesktop.zip

  11. #7
    عضو دائم sazsaz آواتار ها
    تاریخ عضویت
    Aug 2011
    محل سکونت
    بندر گناوه
    نوشته ها
    1,123
    تشکر تشکر کرده 
    296
    تشکر تشکر شده 
    1,265
    تشکر شده در
    861 پست

    پیش فرض پاسخ : ارور xampp برای تابع header()

    این تگ را بالای تمام تگ هات قرار بده
    <?php ob_start();?>

  12. #8
    عضو انجمن
    تاریخ عضویت
    Jun 2015
    نوشته ها
    194
    تشکر تشکر کرده 
    213
    تشکر تشکر شده 
    22
    تشکر شده در
    20 پست

    پیش فرض پاسخ : ارور xampp برای تابع header()

    نقل قول نوشته اصلی توسط sazsaz نمایش پست ها
    این تگ را بالای تمام تگ هات قرار بده
    <?php ob_start();?>
    این تابع چه میکنه ؟
    ممنون
    ویرایش توسط <?php?> : April 19th, 2016 در ساعت 12:56

  13. #9
    عضو انجمن
    تاریخ عضویت
    Jun 2015
    نوشته ها
    194
    تشکر تشکر کرده 
    213
    تشکر تشکر شده 
    22
    تشکر شده در
    20 پست

    پیش فرض پاسخ : ارور xampp برای تابع header()

    اقا رضا مشکل حل شد : فقط تو طریق کد نویسی شما یه چنتا سوال برام پیش اومده :

    + چرا تو تابعی که برای insert ساختدید از out$ استفاده کردید ؟ چه نیازی بود؟ ایا مشکل امنیتی رو رفع میکنه؟
    + چرا برای مدیریت خطا ها تو تابع insert , متغییر out رو به این شکل مقدار دهی کردید؟( منظورم (=.) هست )
    کد HTML:
    $out .="<script>$('.pname').css({'display':'block'});$('.pname span').text('لطفا نام خود را پر کنيد !');</script>";
    و اینکه کد شمارو که اجرا کردم مشکل header حل شد فقط مشکل نمایش خطا ها توسط jquery موند که خطا ها در صورت پر نکردن فیلد توسط کاربر نمایش داده نمیشن ؟ ( فایل jquery رو هرجای صفحه فراخوانی کردم ولی خطاها بازم نمایش داده نشدن )

    ممنون

  14. #10
    عضو انجمن miladtnt آواتار ها
    تاریخ عضویت
    Mar 2016
    محل سکونت
    TabriZ
    نوشته ها
    247
    تشکر تشکر کرده 
    219
    تشکر تشکر شده 
    376
    تشکر شده در
    275 پست

    پیش فرض پاسخ : ارور xampp برای تابع header()

    طبق گفته های خود سایت php ، تابع header باید قبل از هرگونه کد html ارسال بشه ! ولی من خودم سایت دارم و اونو بعد از html گذاشتم کار میکنه ! بهتون توصیه میکنم ورژن های مختلف php
    5.4
    5.5
    5.6
    رو امتحان کنین ببینین تو کودوم این مشکل رو نداره

    درضمن اگه خواستید از دست تابع header راحت شید میتونین از کد جاوا اسکریپت window.location استفاده کنین

  15. تعداد تشکر ها از miladtnt به دلیل پست مفید


صفحه 1 از 2 12 آخرینآخرین

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. خطای انتقال با php با تابع header
    توسط mojtabakh18 در انجمن PHP-MySQL
    پاسخ ها: 3
    آخرين نوشته: April 5th, 2017, 10:32
  2. مشکل در header
    توسط ms313 در انجمن PHP-MySQL
    پاسخ ها: 4
    آخرين نوشته: September 18th, 2014, 11:02
  3. مشکل header در php
    توسط yastheme در انجمن PHP-MySQL
    پاسخ ها: 0
    آخرين نوشته: November 19th, 2013, 12:27
  4. پاسخ ها: 0
    آخرين نوشته: January 31st, 2013, 21:56
  5. قرار دادن کد آمار وبگذر در فایل header.php
    توسط moh3nshirazboy در انجمن PHP-MySQL
    پاسخ ها: 1
    آخرين نوشته: September 20th, 2011, 10:44

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •