اذهب إلى المحتوى

السؤال

نشر

وفقا للأكواد الاتية؛ وبعد تسجيل المستخدم أول مرة؛ تم ارسال رسالة لتفعيل البريد الالكتروني؛ بعد الضغط عليها واعادة التوجيه لصفحة معينة بالموقع اريد أن أتحقق القادم منه المستخدم موجود في قاعدة البيانات؛ ولكن بعد كتابة الكود ؛ النتيجة أنه لا يوجد بالقاعدة مع انه بالفعل متواجد بها

صفحة استقبال اللينك

if (isset($_POST['validate'])) {
    echo  $email=$_POST['validate'].'<br>';

    
 $stmt=$conn->prepare("SELECT * FROM admins  WHERE  email=? ");
         $stmt->execute(array($email));
        echo $admins=$stmt->rowCount();
}

النتيجة يطبع نفس الايميل الذى كُتب فى استمارة التسجيل ولكن يقول غير موجود بالقاعدة

 

Recommended Posts

  • 0
نشر

يمكنك إضافة bind_param للكود الخاص بك 

$stmt->bind_param("sss", $firstname, $lastname, $email);

فيصبح الكود كالتالي 

if (isset($_POST['validate'])) {
    echo  $email=$_POST['validate'].'<br>';

    
 $stmt=$conn->prepare("SELECT * FROM admins  WHERE  email=? ");
	$stmt->bind_param("s", $email);

    $stmt->execute();
    echo $admins=$stmt->rowCount();
}

تربط هذه الدالة bind_param  المعلمات باستعلام SQL وتخبر قاعدة البيانات بالمعلمات و تسرد الوسيطة "s" أنواع البيانات التي تكون المعلمات و يخبر الحرف s مشغل mysql أن المعلمة عبارة عن نص.

i - integer
d - double
s - string
b - BLOB

يجب أن يكون لدينا واحد من هؤلاء لكل معلمة , من خلال إخبار mysql بنوع البيانات المتوقع ، فإننا نقلل من مخاطر حقن SQL.

يمكنك أخباري بعد تعديل الكود بالنتيجة.

  • 0
نشر
بتاريخ 1 ساعة قال بلال زيادة:

يمكنك إضافة bind_param للكود الخاص بك 


$stmt->bind_param("sss", $firstname, $lastname, $email);

فيصبح الكود كالتالي 


if (isset($_POST['validate'])) {
    echo  $email=$_POST['validate'].'<br>';

    
 $stmt=$conn->prepare("SELECT * FROM admins  WHERE  email=? ");
	$stmt->bind_param("s", $email);

    $stmt->execute();
    echo $admins=$stmt->rowCount();
}

تربط هذه الدالة bind_param  المعلمات باستعلام SQL وتخبر قاعدة البيانات بالمعلمات و تسرد الوسيطة "s" أنواع البيانات التي تكون المعلمات و يخبر الحرف s مشغل mysql أن المعلمة عبارة عن نص.


i - integer
d - double
s - string
b - BLOB

يجب أن يكون لدينا واحد من هؤلاء لكل معلمة , من خلال إخبار mysql بنوع البيانات المتوقع ، فإننا نقلل من مخاطر حقن SQL.

يمكنك أخباري بعد تعديل الكود بالنتيجة.

if (isset($_POST['validate'])) {
      $email=$_POST['validate'].'<br>';

    
 $stmt=$conn->prepare("SELECT * FROM admins  WHERE  email=? ");
         $stmt->bind_param("s", $email);
        $stmt->execute();
        echo $admins=$stmt->rowCount();

    }

يوجد خطأ

Fatal error: Uncaught Error: Call to undefined method PDOStatement::bind_param() in C:\xampp2\htdocs\project\redirect.php:21 Stack trace: #0 {main} thrown in C:\xampp2\htdocs\project\redirect.php on line 21

 

  • 0
نشر
بتاريخ منذ ساعة مضت قال Our World عالمنا:

if (isset($_POST['validate'])) {
      $email=$_POST['validate'].'<br>';

    
 $stmt=$conn->prepare("SELECT * FROM admins  WHERE  email=? ");
         $stmt->bind_param("s", $email);
        $stmt->execute();
        echo $admins=$stmt->rowCount();

    }

يوجد خطأ


Fatal error: Uncaught Error: Call to undefined method PDOStatement::bind_param() in C:\xampp2\htdocs\project\redirect.php:21 Stack trace: #0 {main} thrown in C:\xampp2\htdocs\project\redirect.php on line 21

 

هل يمكنك إرفاق كامل الكود ؟ 

  • 0
نشر
بتاريخ 15 ساعات قال بلال زيادة:

هل يمكنك إرفاق كامل الكود ؟ 

<section>
                <div class="div-lable">
                    <label><?php echo $lang['username']?></label>
                    <span class="span-required-front span-required-edit"> * </span>
                </div>
                <div class="div-input">
                    <input type="text" id="user" name="username" class="form-control  inputUser" autocomplete="off" >
                </div>
            </section>
            


            <!--Password field-->
            <section>
                <div class="div-lable">
                    <label><?php echo $lang['password']?></label>
                    <span class="span-required-front span-required-edit"> * </span>
                </div>
                <div class="div-input">
                    <input type="password" id="pass" name="password" class="form-control inputPassword" 
                            autocomplete="new-password" placeholder="<?php echo $lang['pass-length']?>" >
                    <img class="showPassClosed" src="<?php echo $images.'eye-off.png' ?>" >
                    <img class="showPassOpen" src="<?php echo $images.'eye.png' ?>" >
                </div>
            </section>
            
             <!--Email field-->
            <section id="sect">
                <div class="div-lable">
                    <label><?php echo $lang['email']?></label>
                    <span class="span-required-front"> * </span>
                </div>
                <div class="div-input">
                    <input type="email" id="email" name="email" class="form-control" required>
                </div>
            </section>

<button type="submit"  class="btn btn-primary" id="signUp-btn"  name="signUp" ><?php echo $lang['sign-up']?></button>        

ajax

$("#signUp-btn").on("click", function(){
                var user=$('#user').val();
                var email=$('#email').val();

$.ajax({
              url:"emails.php",
              method:'POST',
              data:{User:user,Email:email},
              success: function(data){  
                $(".show-emails").append("<div class='show-emails-div'><?php echo $lang['weSentEmail'];?> <a href=mailto: echo $email;><?php echo $lang['openMail'];?></a></div>");
                $("#signUp-btn").prop('disabled',true);
                 }
               });

 });

emails.php

use PHPMailer\PHPMailer\PHPMailer;

if (isset($_POST['User']) && isset($_POST['Email']) ) {
    $user =$_POST['User'];
    $email=$_POST['Email'];


    require_once'PHP-MAILER/vendor/autoload.php';

    $mail= new PHPMailer();

$mail->isSMTP();//important, one of the terms
$mail->SMTPAuth=true;//important, one of the terms
$mail->SMTPDebug=2;//describes bugs if there are any
$mail->Host="smtp.gmail.com";//important, one of the terms
$mail->Username="radymoh@gmail.com";//important, generates the email
$mail->Password="mimrkllzrsggijue";//important, generates the email
$mail->SMTPSecure="tls";//important, one of the terms
$mail->Port="587";//important, one of the terms
///////////////////////////////
$mail->From="info@project.com";//important,stops sending your email as spam
$mail->FromName="project";//important, shows up in email as sender name
//$mail->addReplyTo("new2000@yahoo.com","ya");//Reply goes to
$mail->addAddress($email,$user);//important,recipient's email&name
//////////////////////////////
$mail->Subject="Welcome to project";
$mail->isHTML(true);//use HTML or not
$mail->Body="
<div style='border:2px solid blue;padding:10px;'>
<h2>Hello </h2>
<p style='font-size:17px' >thanks for subscribing in project(<a href='http://www.project.com'>www.project.com</a>).</p>
<p style='font-size:17px'> Please click the button \"VERIFY EMAIL\" below to complete your registration </p>

<form action='http://localhost:82/project/redirect.php' method='POST'>
<input type='hidden' name='validate' value='$email'>
<button type='submit' style='display:block;width:177px;height:30px;margin:40px auto;background:green;color:white;font-size:25px;font-weight:bold;text-decoration:none;border-radius:5px;padding:5px;padding-top:8px' >VERIFY EMAIL </button> 
</form>

<p style='font-size:15px;color:grey'> if this is  a wrong email, just ignore it.</p> 
</div>
";
/////////////////////////////
$mail->SMTPOptions=array(
  "ssl" => array(
     "verify_peer"=>false,
     "verify_peer_name"=>false,
     "allow_self_signed"=>true

  ),
);
}

redirect.php

if (isset($_POST['validate'])) {
      $email=$_POST['validate'].'<br>';

    

 
 $stmt=$conn->prepare("SELECT * FROM admins  WHERE  email=? ");
         $stmt->bind_param("s", $email);
        $stmt->execute();
         $admins=$stmt->rowCount();

    }

 

  • 0
نشر
بتاريخ 14 ساعات قال Our World عالمنا:

<section>
                <div class="div-lable">
                    <label><?php echo $lang['username']?></label>
                    <span class="span-required-front span-required-edit"> * </span>
                </div>
                <div class="div-input">
                    <input type="text" id="user" name="username" class="form-control  inputUser" autocomplete="off" >
                </div>
            </section>
            


            <!--Password field-->
            <section>
                <div class="div-lable">
                    <label><?php echo $lang['password']?></label>
                    <span class="span-required-front span-required-edit"> * </span>
                </div>
                <div class="div-input">
                    <input type="password" id="pass" name="password" class="form-control inputPassword" 
                            autocomplete="new-password" placeholder="<?php echo $lang['pass-length']?>" >
                    <img class="showPassClosed" src="<?php echo $images.'eye-off.png' ?>" >
                    <img class="showPassOpen" src="<?php echo $images.'eye.png' ?>" >
                </div>
            </section>
            
             <!--Email field-->
            <section id="sect">
                <div class="div-lable">
                    <label><?php echo $lang['email']?></label>
                    <span class="span-required-front"> * </span>
                </div>
                <div class="div-input">
                    <input type="email" id="email" name="email" class="form-control" required>
                </div>
            </section>

<button type="submit"  class="btn btn-primary" id="signUp-btn"  name="signUp" ><?php echo $lang['sign-up']?></button>        

ajax


$("#signUp-btn").on("click", function(){
                var user=$('#user').val();
                var email=$('#email').val();

$.ajax({
              url:"emails.php",
              method:'POST',
              data:{User:user,Email:email},
              success: function(data){  
                $(".show-emails").append("<div class='show-emails-div'><?php echo $lang['weSentEmail'];?> <a href=mailto: echo $email;><?php echo $lang['openMail'];?></a></div>");
                $("#signUp-btn").prop('disabled',true);
                 }
               });

 });

emails.php


use PHPMailer\PHPMailer\PHPMailer;

if (isset($_POST['User']) && isset($_POST['Email']) ) {
    $user =$_POST['User'];
    $email=$_POST['Email'];


    require_once'PHP-MAILER/vendor/autoload.php';

    $mail= new PHPMailer();

$mail->isSMTP();//important, one of the terms
$mail->SMTPAuth=true;//important, one of the terms
$mail->SMTPDebug=2;//describes bugs if there are any
$mail->Host="smtp.gmail.com";//important, one of the terms
$mail->Username="radymoh@gmail.com";//important, generates the email
$mail->Password="mimrkllzrsggijue";//important, generates the email
$mail->SMTPSecure="tls";//important, one of the terms
$mail->Port="587";//important, one of the terms
///////////////////////////////
$mail->From="info@project.com";//important,stops sending your email as spam
$mail->FromName="project";//important, shows up in email as sender name
//$mail->addReplyTo("new2000@yahoo.com","ya");//Reply goes to
$mail->addAddress($email,$user);//important,recipient's email&name
//////////////////////////////
$mail->Subject="Welcome to project";
$mail->isHTML(true);//use HTML or not
$mail->Body="
<div style='border:2px solid blue;padding:10px;'>
<h2>Hello </h2>
<p style='font-size:17px' >thanks for subscribing in project(<a href='http://www.project.com'>www.project.com</a>).</p>
<p style='font-size:17px'> Please click the button \"VERIFY EMAIL\" below to complete your registration </p>

<form action='http://localhost:82/project/redirect.php' method='POST'>
<input type='hidden' name='validate' value='$email'>
<button type='submit' style='display:block;width:177px;height:30px;margin:40px auto;background:green;color:white;font-size:25px;font-weight:bold;text-decoration:none;border-radius:5px;padding:5px;padding-top:8px' >VERIFY EMAIL </button> 
</form>

<p style='font-size:15px;color:grey'> if this is  a wrong email, just ignore it.</p> 
</div>
";
/////////////////////////////
$mail->SMTPOptions=array(
  "ssl" => array(
     "verify_peer"=>false,
     "verify_peer_name"=>false,
     "allow_self_signed"=>true

  ),
);
}

redirect.php


if (isset($_POST['validate'])) {
      $email=$_POST['validate'].'<br>';

    

 
 $stmt=$conn->prepare("SELECT * FROM admins  WHERE  email=? ");
         $stmt->bind_param("s", $email);
        $stmt->execute();
         $admins=$stmt->rowCount();

    }

 

أريد كامل ملف المشروع مع قاعدة البيانات حتى اجربه عندي 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...