• 28-07-2010, 22:54:46
    #1
    Üyeliği durduruldu
    Kafam çok karıştı, her şey birbirine girdi sanki.
    Gönderilen yorumların onaylanması ve onaylanmış yorumların silinmesi için bir onayla.php oluşturdum. Gayet başarılı çalıştı. Fakat bu sayfayı şifrelemek istedim. Başarıyla şifreledimde. Ama onayla.php içindeki her linke tıklandığında yeniden şifre sormaya başladı. Session ile bu sorunu aşmaya kalktım fakat karman çorman oldu. Kodlarım ve verdiği hata bunlar.

    Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/resmimic/public_html/yorumlar/onayla.php:2) in /home/resmimic/public_html/yorumlar/onayla.php on line 3

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/resmimic/public_html/yorumlar/onayla.php:2) in /home/resmimic/public_html/yorumlar/onayla.php on line 3


    onayla.php
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <?
    session_start();
    $user = $_POST['user'];
    $pass = $_POST['pass'];
    session_register(user);
    session_register(pass);
    
    if(isset($user)) {
    }else{
    ?>
    <form method="POST" action="<? echo $_SERVER['PHP_SELF']; ?>">
    Kullanıcı Adı: <input type="text" name="user" value""><br>
    Parola: <input type="password" name="pass" value""><br>
    <input type="submit" name="submit" value="Giriş">
    </form>
    
    <?
    }
    $kullaniciadi="Osman";
    $sifre="osmaniye";
    
    if($_SESSION['user'] == $kullaniciadi && $_SESSION['pass'] == $sifre) 
    /////////////////
    // SAYFA BASLAR
    {
    /////////////////
    
    include 'ayar.php';
    function goster($numara, $ad, $posta, $mesaj, $onaydurumu, $onayla) {
    echo "
    <table width=90% border=1 cellspacing=0 cellpadding=1>
      <tr>
        <td width=10%>$numara</td>
        <td width=20%>$ad</td>
        <td width=20%>$posta</td>
        <td width=20%>$onaydurumu</td>
        <td width=20%>$onayla</td>
      </tr>
    <tr>
    <td bgcolor=#EBDDE2 colspan=5>$mesaj</td> 
    </tr>
    </table>";
    }
    
    $sql = mysql_query("SELECT * FROM `yorumlar` where onay='Beklemede' ");
    echo "<center>ONAY BEKLEYENLER</center><br>";
    while($oku = mysql_fetch_assoc($sql)) {
    $numara = $oku[id];
    $ad = $oku['isim'];
    $posta = $oku['mail'];
    $mesajj = $oku['mesaj'];
    $onaydurumu = $oku['onay'];
    $onayla = "<a href=onayla.php?no=$numara>Onayla</a> - <a href=onayla.php?sil=$numara>Sil</a>";
    
    goster($numara, $ad, $posta, $mesajj, $onaydurumu, $onayla);
    }
    
    
    $onaylilar = mysql_query("SELECT * FROM `yorumlar` where onay='Tamam' ");
    echo "<br><br><br<center>ONAYLI MESAJLAR</center><br>";
    while($read = mysql_fetch_assoc($onaylilar)) {
    $numara1 = $read[id];
    $ad1 = $read['isim'];
    $posta1 = $read['mail'];
    $mesajj1 = $read['mesaj'];
    $onaydurumu1 = $read['onay'];
    $onayla1 = "<a href=onayla.php?sil=$numara1>Sil</a>";
    goster($numara1, $ad1, $posta1, $mesajj1, $onaydurumu1, $onayla1);
    }
    
    
    $no = $_GET['no'];
    if(isset($no)){
    $edit = ("UPDATE yorumlar SET onay='Tamam' where id='$no'");
    if(mysql_query($edit)){
    echo "Onaylandı";
    }
    else {
    echo "Sorun Çıktı";
    }
    }
    
    $sil = $_GET['sil'];
    if(isset($sil)){
    $del = ("DELETE FROM yorumlar WHERE id='$sil'");
    if(mysql_query($del)) {
    echo "<meta http-equiv=refresh content=1;onayla.php>";
    echo "<b>$sil</b> numaralı mesaj silindi.";
    }
    else {
    echo "Bir sorun çıktı";
    }
    }
    
    /////////////////
    // SAYFA BİTER
    }
    /////////////////
    
    else {
    
    if(isset($_POST['user'])){
    echo "<center>Oopsss ..! Bu monitör varya bu monitör...</center>";
    }
    }
    ?>
  • 28-07-2010, 23:04:40
    #2
    session_start(); fonksiyonunu en üste yazın meta vs. olmasın önce
  • 28-07-2010, 23:05:42
    #3
    headers already sent için ob start fonksiyonunu çağırmayı denediniz mi
  • 28-07-2010, 23:13:49
    #4
    Üyeliği durduruldu
    session_startı metanın üzerine yazınca o hata gitti. fakat login olunca şöyle bir hata ile karşılaşıyorum:

    Oopsss ..! Bu monitör varya bu monitör...

    Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively in Unknown on line 0
  • 29-07-2010, 00:11:24
    #5
    Kimlik doğrulama veya yönetimden onay bekliyor.
    bu hatanın nedeni aslında session.bug_compat_42 = 1
    session.bug_compat_warn = 0 bu değerlerin atanmamamsında yapmayla çözebilirsin yada session isimlerindeki degerli degiken ismi olarak atamazsan sorun cozulmesi gerekiyor

    Hatalı Kod:

    $user = $_SESSION["user"];

    Doğru Kod:

    $user1 = $_SESSION["user"];


    Yada Diğer Çözüm:


    session.bug_compat_42 = 1
    session.bug_compat_warn = 0

    php.ini dosyana bu değerleri girmen
  • 29-07-2010, 01:30:07
    #6
    Üyeliği durduruldu
    şimdide session_destroy etmek istediğimde hata veriyor.

    <? session_start()
    
    if(session_destroy()){
    echo "Cikis Yapildi<br>Anasayfaya yönlendiriliyorsunuz.";
    echo "<meta http-equiv=refresh content=3; index.php>";
    }
    
    ?>
    hata:

    Parse error: syntax error, unexpected T_IF in /home/resmimic/public_html/yorumlar/logout.php on line 3
  • 29-07-2010, 01:32:00
    #7
    Noktalı virgülü unutmuşsun hocam. <? session_start() yazmışsın ilk satırda.
  • 29-07-2010, 01:34:33
    #8
    Üyeliği durduruldu
    yahu o line 3 dedikçe bende line 3 e bakıyorum : ) teşekkürler üstad.