• 08-01-2019, 20:53:36
    #1
    herkese selamlar kolay gelsin arkadaslar

    udmyden kurs aldım ve anket scripti yazıyodu hoca ben de mantığını anladım ve kendim yazmaya calıstım

    hersey tamam ama en sonda oy verme calısmıyor yani oy veriliyor ama hep aynı araba ferariye gidiyor oylama yani $tamson2["sec4"] gidiyor hep oylama diğer secenekler oy gitmiyor sizce sorun nerde ben baya aradım bulamadım

    ŞİMDIDEN ZAMAN AYIRIP YARDIM EDENLERE ÇOK TEŞEKKÜRLER

    DAHİL.PHP

    <?php 
    try  {
    	$veritabani = new PDO("mysql:host=localhost;dbname=kisiler;charset=utf8", "root","123456");
    	$veritabani->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    	
    	
    } catch (PDOException $e) {
    	die($e->getMessege());
    	
    }
    
    class anketana {
    	
    	function giriskontrol($veritabani){
    		
    		$buton=$_POST["buton"];
    		$sifre=$_POST["sifre"];
    			if($buton):
    				$sorgu="select *  from veriler where sifre='$sifre'";
    
    						$getir = $veritabani->prepare($sorgu);
    
    						$getir->execute();
    
    						$tamson=$getir->fetch(PDO::FETCH_ASSOC);
    						
    							if($tamson["sifre"]==$sifre):
    								$_SESSION["giris"]=$tamson["sifre"];
    								echo"giriş başarılı";
    								header("refresh:3,url=anket.php" );
    								
    								else:
    								echo"gecersiz kod";
    								header("refresh:3,url=index.php" );
    							endif;
    			
    			else:
    			echo"butona basılmadı";
    			
    			endif;
    		
    		
    		
    		
    		}
    		
    	
    	function soruget($veritabani){
    		
    		$sorgu2="select *  from veriler";
    		$getir2 = $veritabani->prepare($sorgu2);
    
    		$getir2->execute();
    
    		$tamson2=$getir2->fetch(PDO::FETCH_ASSOC);
    		
    		$anketid=$tamson2["id"];
    		$ip=$_SERVER['REMOTE_ADDR'];
    		
    		$sorgu3="select *  from ipkontrol where anketid='$anketid' and ip='$ip' ";
    		$getir3 = $veritabani->prepare($sorgu3);
    
    		$getir3->execute();
    
    		
    		
    		if($getir3->rowCount()==0):
    		echo'
    		
    		
    		<form action="anket.php?aksiyon=oyver" method="post" >
    		
    		<div class="row">
                              <div class="col-md-12">Soru'.$tamson2["soru"].' <hr /></div>  
                              <div class="col-md-12">'.$tamson2["sec1"].'<input type="radio" name="oy" value="sec1" /> </div> 
                              <div class="col-md-12">'.$tamson2["sec2"].'<input type="radio" name="oy" value="sec2" /> </div>
                              <div class="col-md-12">'.$tamson2["sec3"].' <input type="radio" name="oy" value="sec3" /> </div>
                               <div class="col-md-12">'.$tamson2["sec4"].'  <input type="radio" name="oy" value="sec4" /> </div>
                                <input type="submit" name="oyver"  value="BUTON" class="btn btn-success" />
    						   <input type="hidden" name="anketid" value="'.$tamson2["id"].'" />
                          </div>
                    
                    
                    </div>
    </form>
    
    
    ';
    		else:
    		
    		$sorgu4="select *  from oylama where anketid=$anketid";
    		$getir4 = $veritabani->prepare($sorgu4);
    
    		$getir4->execute();
    
    		$tamson4=$getir4->fetch(PDO::FETCH_ASSOC);
    		
    		$toplamoy=$tamson4["oy1"] + $tamson4["oy2"] + $tamson4["oy3"] + $tamson4["oy4"];
    		$secenek1= ($tamson4["oy1"] / $toplamoy) * 100;
    		$secenek2= ($tamson4["oy2"] / $toplamoy) * 100;
    		$secenek3= ($tamson4["oy3"] / $toplamoy) * 100;
    		$secenek4= ($tamson4["oy4"] / $toplamoy) * 100;
    		
    		
    		echo '<div class="row">
    						<div class="col-md-12" Sonuclar  <hr /></div>  
                              <div class="col-md-12">bmw'.$secenek1.' </div> 
                              <div class="col-md-12"> mercedes'.$secenek2.'</div>
                              <div class="col-md-12"> audi '.$secenek3.'</div>
                               <div class="col-md-12">ferrari'.$secenek4.' </div>
    						   <div class="col-md-12" > toplam oy '.$toplamoy.' <hr /></div> 
    						   </div>';
    		
    		endif;
    		
    		
    		
    		}
    	
    	
    		
    		function oyver($veritabani) {
    			
    		$buton=$_POST["oyver"];
    		$oy=$_POST["oy"];
    		$anketid=$_POST["anketid"];
    		
    			if($buton):
    					switch($oy):
    					case"sec1";
    					$sutun="oy1";
    					$veri=1;
    					case"sec2";
    					$sutun="oy2";
    					$veri=1;
    					case"sec3";
    					$sutun="oy3";
    					$veri=1;
    					case"sec4";
    					$sutun="oy4";
    					$veri=1;
    					default:
    					endswitch;
    				
    				$sorgu4="select *  from oylama where anketid='$anketid'";
    				$getir4 = $veritabani->prepare($sorgu4);
    				$getir4->execute();
    				$sonki=$getir4->fetch(PDO::FETCH_ASSOC);
    	
    				if($getir4->rowCount()==0):
    				
    				$sorgu5="insert into oylama (anketid,$sutun) VALUES ($anketid,$veri)";
    				$getir5 = $veritabani->prepare($sorgu5);
    				$getir5->execute();
    				
    				
    				$ip=$_SERVER['REMOTE_ADDR'];
    				$sorgu6="insert into ipkontrol (anketid,ip) VALUES ($anketid,'$ip')";
    				$getir6 = $veritabani->prepare($sorgu6);
    				$getir6->execute();
    				echo"OYUNUZ ALINDI";
    				header("refresh:3,url=index.php" );
    				
    				else:
    				
    				$mevcutdeger= $sonki[$sutun];
    				$sonveri=$mevcutdeger + 1;
    				
    				$sorgu8="update oylama set $sutun=$sonveri where anketid=$anketid";
    				$getir8 = $veritabani->prepare($sorgu8);
    				$getir8->execute();
    				
    				$ip=$_SERVER['REMOTE_ADDR'];
    				$sorgu7="insert into ipkontrol (anketid,ip) VALUES ($anketid,'$ip')";
    				$getir7 = $veritabani->prepare($sorgu7);
    				$getir7->execute();
    				echo"OYUNUZ ALINDI";
    				header("refresh:3,url=index.php");
    				endif;
    				
    			
    			else:
    			echo"butona basılmadı";
    			endif;
    		
    			
    		}
    		
    		
    
    
    	
    }
    
    
    ?>


    ANKET. PHP

    <?php include_once("dahil.php");  $anket= new anketana; session_start(); ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>ANKET UYGULAMASI</title>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
    <style>
    #ana {
    	background-color:#F6F6F6;
    	text-align:center;
    	border:1px solid #E4E4E4;
    
    }
    #r {
    	background-color:#FEFEFE;
    	text-align:center;
    	padding:10px;
    	margin:5px;
    
    }
    
    </style>
    </head>
    
    <body>
    <div class="container" id="ana">
    
    <div class="row"><div class="col-md-12"></div></div>
    
    <div class="row">
    
    <div class="col-md-4"></div>
    
                    <div class="col-md-4 table-bordered  rounded" id="r">
                    
                    
          <?php 
    	  $aksiyon=@$_GET["aksiyon"];
    	  switch($aksiyon):
    	  case"oyver";
    	  $anket->oyver($veritabani);
    	  
    	  
    	  default:
    	  if( isset($_SESSION["giris"])):
    	  $anket->soruget($veritabani);
    		else:
    		echo"yönlendiriliyor";
    				header("refresh:3,url=index.php" );
    	  endif;
    	  endswitch;
    	  
    	  
    	  
    	  ?>
                    
                    
                   
                   
                   
                          
    
    
    
    
    <div class="col-md-4"></div>
    
    
    
    </div>
    
    
    <!-- 
       								 <div class="row">
                                	 <div class="col-md-3">Cevap</div>                                 
                                     <div class="col-md-9"  > <div class="progress" style="height:20px">
        							<div class="progress-bar bg-info" style="width:30%;height:20px">30%</div>
     								 </div>  
     								 </div>
                               </div>
                               
                               GİRİŞ BÖLÜMÜ
                               
                                            <div class="row">
               <div class="col-md-12">Anketin Şifresini yaz<br /><input name="sifre" type="text" /></div>  
     <div class="col-md-12"><br /><input name="buton" value="GETİR" type="submit" class="btn btn-info"</div>
                          </div>
                    
                    
                    </div>
                               
    
    -->
    
         
    </div>
    </body>
    </html>
    İNDEX.PHP

    <?php include_once("dahil.php"); session_start(); $anket= new anketana; ?>
    
    <?php
    
    try  {
    	$veritabani = new PDO("mysql:host=localhost;dbname=kisiler;charset=utf8", "root","123456");
    	$veritabani->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    	
    	
    } catch (PDOException $e) {
    	die($e->getMessege());
    	
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>ANKET UYGULAMASI</title>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
    <style>
    #ana {
    	background-color:#F6F6F6;
    	text-align:center;
    	border:1px solid #E4E4E4;
    
    }
    #r {
    	background-color:#FEFEFE;
    	text-align:center;
    	padding:10px;
    	margin:5px;
    
    }
    
    </style>
    </head>
    
    <body>
    <div class="container" id="ana">
    
    <div class="row"><div class="col-md-12"></div></div>
    
    <div class="row">
    
    <div class="col-md-4"></div>
    
                    <div class="col-md-4 table-bordered  rounded" id="r">
                    
                    
         
                    <?php 
    				$islem=@$_GET["islem"];
    				switch($islem):
    				case"kontrol":
    				$anket->giriskontrol($veritabani);
    				break;
    				
    				default:
    				
    				if( isset($_SESSION["giris"])):
    				echo"yönlendiriliyor";
    				header("refresh:3,url=anket.php" );
    				else:
    				echo'     <div class="row">
    				<form action="index.php?islem=kontrol" method="post">
               <div class="col-md-12">Anketin Şifresini yaz<br /><input name="sifre" type="text" /></div>  
     <div class="col-md-12"><br /><input name="buton" value="GETİR" type="submit" class="btn btn-info"</div>
     </form>
     
                          </div>';
    				
    				endif;
    				endswitch;
    				
    				
    				
    				
    				
    				?>
                   
                   
                          <div class="row">
                              <div class="col-md-12">Soru<hr /></div>  
                              <div class="col-md-12">CEvap</div> 
                              <div class="col-md-12">Cevap</div>
                              <div class="col-md-12">Cevap</div>
                               <div class="col-md-12">Cevap</div>
                               <div class="col-md-12"><hr />BUTON</div>
                          </div>
                    
                    
                    </div>/session_start();*/
    
    
    
    
    
    <div class="col-md-4"></div>
    
    
    
    </div>
    
    
    <!-- 
       								 <div class="row">
                                	 <div class="col-md-3">Cevap</div>                                 
                                     <div class="col-md-9"  > <div class="progress" style="height:20px">
        							<div class="progress-bar bg-info" style="width:30%;height:20px">30%</div>
     								 </div>  
     								 </div>
                               </div>
                               
                               GİRİŞ BÖLÜMÜ
                               
                                            <div class="row">
               <div class="col-md-12">Anketin Şifresini yaz<br /><input name="sifre" type="text" /></div>  
     <div class="col-md-12"><br /><input name="buton" value="GETİR" type="submit" class="btn btn-info"</div>
                          </div>
                    
                    
                    </div>
                               
    
    -->
    
         
    </div>
    </body>
    </html>
  • 08-01-2019, 21:04:08
    #2
    Diyorum ki acaba:

    if($buton):
                   switch($oy):
                   case"sec1";
                   $sutun="oy1";
                   $veri=1;
                   case"sec2";
                   $sutun="oy2";
                   $veri=1;
                   case"sec3";
                   $sutun="oy3";
                   $veri=1;
                   case"sec4";
                   $sutun="oy4";
                   $veri=1;
                   default:
                   endswitch;
    Veri değişkeni hep 1 diye mi olmuyor.



                              <div class="col-md-12">'.$tamson2["sec1"].'<input type="radio" name="oy" value="sec1" /> </div>
                              <div class="col-md-12">'.$tamson2["sec2"].'<input type="radio" name="oy" value="sec2" /> </div>
                              <div class="col-md-12">'.$tamson2["sec3"].' <input type="radio" name="oy" value="sec3" /> </div>
                               <div class="col-md-12">'.$tamson2["sec4"].'  <input type="radio" name="oy" value="sec4" /> </div>
    Belki de bu kodda name kısmına farklı değerler (oy1 oy2 gibi) girmelisindir...
  • 08-01-2019, 21:31:31
    #3
    Onur89TR adlı üyeden alıntı: mesajı görüntüle
    Diyorum ki acaba:

    if($buton):
                   switch($oy):
                   case"sec1";
                   $sutun="oy1";
                   $veri=1;
                   case"sec2";
                   $sutun="oy2";
                   $veri=1;
                   case"sec3";
                   $sutun="oy3";
                   $veri=1;
                   case"sec4";
                   $sutun="oy4";
                   $veri=1;
                   default:
                   endswitch;
    Veri değişkeni hep 1 diye mi olmuyor.



                              <div class="col-md-12">'.$tamson2["sec1"].'<input type="radio" name="oy" value="sec1" /> </div>
                              <div class="col-md-12">'.$tamson2["sec2"].'<input type="radio" name="oy" value="sec2" /> </div>
                              <div class="col-md-12">'.$tamson2["sec3"].' <input type="radio" name="oy" value="sec3" /> </div>
                               <div class="col-md-12">'.$tamson2["sec4"].'  <input type="radio" name="oy" value="sec4" /> </div>
    Belki de bu kodda name kısmına farklı değerler (oy1 oy2 gibi) girmelisindir...

    hocam öncelikle zamanınızı ayırıp yorum yaptığınız için çok çok teşekkür ederim

    ancak veriyle alakalı birdurum değil veri veri tabanı oylama bölümüne 1 ekler bunuda name="oy" olan valuesi sec kacsa örnek sec1 birinci oy oy1 yani sutuna atar sutunun olduğu bölümede veri yi ekler yani 1 i böylece ekleme bolumunde ekleme yapar

    diiğeri ise yine name="oy" $oy değişkenine atanır ve switc case in içine girer ve sec1 se oydan gelen değer sec1 case ye girer ve yukarda anlattığım işlem olur

    aslında normal bakılınca hersey normal ama sonucta oyu almıyor sunucudamı bi hata var baska bir değişik php sayfasında denedim yine aynı yada hatayı alıyorum ben göremiyorum

    umarım anlatabilmişimdir
  • 08-01-2019, 22:08:16
    #4
    http://sanalkurs.net/php-ile-ip-kont...pimi-8229.html

    Şurada analtmışlar hocam olayı. Deneyenler sorunsuz diyor. Biliyorum kendi yaptığınız iş gibi değil ama belki bakmak istersiniz diye link verdim.
  • 08-01-2019, 22:47:32
    #5
    Anket php 43 saturda neden $verltabani degiskeni gonderiyorsun?
    Ne tanimli?
  • 08-01-2019, 23:09:51
    #6
    ismail03 adlı üyeden alıntı: mesajı görüntüle
    Anket php 43 saturda neden $verltabani degiskeni gonderiyorsun?
    Ne tanimli?


    hocam öncelikle zaman ayırıp cevap yazdığınız için çok çok teşekkür ederim



    case"oyver"
    $anket->oyver($veritabani); buradaki kod yerine gelmeden önce cevaplar görünüyor ve alınıyor göndere basınca burdaki case ye giriyor ve $anket->oyver($veritabani); burdaki oyver functionuna gidiyor ve oylar cekilip veritabanına ekleniyor onun için veritabani kullanılmıstır



    Onur89TR adlı üyeden alıntı: mesajı görüntüle
    http://sanalkurs.net/php-ile-ip-kont...pimi-8229.html

    Şurada analtmışlar hocam olayı. Deneyenler sorunsuz diyor. Biliyorum kendi yaptığınız iş gibi değil ama belki bakmak istersiniz diye link verdim.
    hocam ilgi alakanızdan dolayı gerçekten çok çok teşekkürler.
    ama benim amacım kendim yazmak ve hatayı bularak gelişmek hazır hiç bir kod beni geliştirmez, yeniden çok çok teşekkürler
  • 09-01-2019, 00:11:03
    #7
    Sınıf yapısında kodluyorsun
    class anket extends veritabani
    {
    function oyver($oyid)
    {
    //veritabanı sıjırı anket sınıfına bağlandı
    //oyid değeri oy değeri olarak alınabilir
    //çıktı hata print_r($this->db->errorInfo());
    //sonuç döndümü echo $islemsonuc->rowcount();

    }
    }
  • 09-01-2019, 00:15:50
    #8
    ismail03 adlı üyeden alıntı: mesajı görüntüle
    Sınıf yapısında kodluyorsun
    class anket extends veritabani
    {
    function oyver($oyid)
    {
    //veritabanı sıjırı anket sınıfına bağlandı
    //oyid değeri oy değeri olarak alınabilir
    //çıktı hata print_r($this->db->errorInfo());
    //sonuç döndümü echo $islemsonuc->rowcount();

    }
    }
    hocam kusuruma bakmayın ama yazdığınız kodu anlayamadım
  • 09-01-2019, 00:39:39
    #9
    ozgun58 adlı üyeden alıntı: mesajı görüntüle
    hocam kusuruma bakmayın ama yazdığınız kodu anlayamadım
    <?php
    class baglan{
    public $veritabani;
    function __construct()
    {
    try  {
       $this->veritabani = new PDO("mysql:host=localhost;dbname=kisiler;charset=utf8", "root","123456");
       $this->veritabani->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      
      
    } catch (PDOException $e) {
       die($e->getMessege());
      
    }
    }
    }
     
    class anketana extends baglan{
    Function Anketcek($i)
    {
    $sor=$this->veritabani->prepare("select * oylama where anketid=:anket");
    $sor->execute(array("anket"=>$i));
    if($sor->rowCount()>0)
    {
    Return $sor->fetch(PDO::FETCH_OBJ);
    }
    else{
    print_r($this->veritabani->errorInfo());
    }
    }
    }





    Burda ne yaptık önce baglan adında bir sınıf oluşturduk sonra kurucu fonksiyon içinde(__construct()) veritabanımıza bağlandık ve bunu baglan sınıfının dahil edeildiği heryerde erişebilmek için veritabanı değişkenimizi public tanımladık artık veritabanımıza $this->veritabani değişkeniyle erişebiliyoruz
    anketana sınıfı oluşturduk ve bu sınıfı baglan sınıfıyla bağlantıladık
    sınıf içinde bir fonksiyon yazdık