• 26-06-2022, 12:49:21
    #1
    iyi forumlar arkadaşlar internet üzerindeki eğitimle iletişim formu deniyorum fakat "Undefined variable '$db' " hatasını veriyor ve formdaki verileri veritabanına eklemiyor.
    hatayı $kaydet = $db->prepare("INSERT INTO mesajlar SET satırında veriyor

    <?php
    require_once '../sistem/baglan.php';
    
    
    if ($_POST){
        $ad = post('ad');
        $eposta = post('eposta');
        $konu = post('konu');
        $mesaj = post('mesaj');
        if(!$ad || !$eposta || !$konu || !$mesaj){
            echo "bos";
        }else{
            if (!filter_var($eposta,FILTER_VALIDATE_EMAIL)){
                echo "format";
            }else{
    
               $kaydet = $db->prepare("INSERT INTO mesajlar SET
                            
                         isim =:i,
                         konu=:k,
                         eposta=:e,
                         mesaj=:m,
                         durum=:d,
                         ip=:ip    
                             ");
    
                 $kaydet->execute(array(
                     ':i' => $ad,
                     ':k'=> $konu,
                     ':e'=> $eposta,
                     ':m' => $mesaj,
                     ':ip'=>IP()
                 ));
                 if($kaydet){
                     echo "basarili";
    
                 }else {
                     echo "hata";
                 }
    
            }
        }
    }
    
    
    
    ?>
  • 26-06-2022, 12:59:24
    #2
    bağlan.php de ne var hocam
  • 26-06-2022, 13:03:33
    #3
    Androsoft adlı üyeden alıntı: mesajı görüntüle
    bağlan.php de ne var hocam
    aşağıdaki gibi hocam edit; php strom kullanıyorum
    <?php
    
    
    
    try{
        $db = new PDO("mysql:host=localhost;dbname=salih;charset=utf8;","root","");
        $db->query("SET CHARACTER SET UTF8");
        $db->query("SET NAMES UTF8");
    
    }catch (PDOException $hata){
        echo $hata->getMessage();
    }
    
    
    ## ayarlar tablsouna bağlan
    $ayarlar = $db->prepare("SELECT * FROM ayarlar");
    $ayarlar->execute();
    $arow = $ayarlar->fetch(PDO::FETCH_OBJ);
    if ($arow->site_durum !=1){
        header('Location:bakimmodu.php');
    }
    
    ?>
  • 26-06-2022, 13:07:02
    #4
    salihkus adlı üyeden alıntı: mesajı görüntüle
    aşağıdaki gibi hocam
    <?php
    
    
    
    try{
        $db = new PDO("mysql:host=localhost;dbname=salih;charset=utf8;","root","");
        $db->query("SET CHARACTER SET UTF8");
        $db->query("SET NAMES UTF8");
    
    }catch (PDOException $hata){
        echo $hata->getMessage();
    }
    
    
    ## ayarlar tablsouna bağlan
    $ayarlar = $db->prepare("SELECT * FROM ayarlar");
    $ayarlar->execute();
    $arow = $ayarlar->fetch(PDO::FETCH_OBJ);
    if ($arow->site_durum !=1){
        header('Location:bakimmodu.php');
    }
    
    ?>
    hocam echo değil die yapın catch kısmını, aslında sorun yok gibi. require_once fonksiyonuna print koyar mısınız?
    print(require_once('../sistem/baglan.php'));
    ne döndürüyor?
  • 26-06-2022, 13:16:46
    #5
    Androsoft adlı üyeden alıntı: mesajı görüntüle
    hocam echo değil die yapın catch kısmını, aslında sorun yok gibi. require_once fonksiyonuna print koyar mısınız?
    print(require_once('../sistem/baglan.php'));
    ne döndürüyor?
    hocam die yaptım require fonksiyonuna print koydum fakat sayfada görüntülemedi $db üzerine geldiğimde resimdeki gibi kaynak sistem/baglan.php ama $db tanımsız diye hata veriyor

  • 26-06-2022, 13:18:53
    #6
    salihkus adlı üyeden alıntı: mesajı görüntüle
    hocam die yaptım require fonksiyonuna print koydum fakat sayfada görüntülemedi $db üzerine geldiğimde resimdeki gibi kaynak sistem/baglan.php ama $db tanımsız diye hata veriyor

    hee, hocam çalışıyor ise sorun yok. Bu intellij kaynaklı bir sorun (phpstorm kullanıyorda olabilirsiniz.) bunun için mappings konfigrasyonlarını yapmanız gerekiyor. Ancak küçük projede buna gerek yok. Sadece okunaklık açısından yapabilirsiniz
  • 26-06-2022, 13:43:35
    #7
    Androsoft adlı üyeden alıntı: mesajı görüntüle
    hee, hocam çalışıyor ise sorun yok. Bu intellij kaynaklı bir sorun (phpstorm kullanıyorda olabilirsiniz.) bunun için mappings konfigrasyonlarını yapmanız gerekiyor. Ancak küçük projede buna gerek yok. Sadece okunaklık açısından yapabilirsiniz
    hocam öm kutusu doldu htdocs/salih diye klasör içinde çalışıyorum şimdi sublime text ile aynı baştan başlayıp yapıyım bi kontrol edeyim detaylıca
  • 27-06-2022, 14:06:25
    #8
    hocam php storm uyarı veriyor $db değişkenin nerden geldiğini belirtmeniz yeterli
    buradan da doc commentlere bakabilirsiniz https://phpstan.org/writing-php-code/phpdocs-basics
    /* @var $db PDO */
  • 27-06-2022, 20:55:41
    #9
    fabyo adlı üyeden alıntı: mesajı görüntüle
    hocam php storm uyarı veriyor $db değişkenin nerden geldiğini belirtmeniz yeterli
    buradan da doc commentlere bakabilirsiniz https://phpstan.org/writing-php-code/phpdocs-basics
    /* @var $db PDO */
    hocam yazdığınız kodu ekledim $db hatası gitti fakat swal alert ve veri gönderimi yapmıyor :/