• 25-01-2010, 05:05:41
    #1
    Merhaba,
    Php ye yeni başladım rıza çelik'in kitabından çalışıyorum. kitapta şu kod var:
    <?php 
    if(!($x AND $y)) { 
    ?> 
    <form action="if4.php" method=post> 
    <br>Bir sayı yazın:<br> 
    <input type=text name=x> 
    <br>Bir sayı yazın:<br> 
    <input type=text name=y><br> 
    <input type=submit> 
    </form> 
    <?php 
    exit; #form boş gönderildiyse programı burada durdur. 
    } 
    if($_POST['x'] > $_POST['y']) { 
    print("$_POST['x'] değeri $_POST['y'] değerinden büyüktür."); 
    }elseif($_POST['x'] == $_POST['y']){ 
     print("$_POST['x'] değeri $_POST['y'] değerine eşittir."); 
    }else{ 
    print("$_POST['x'] değeri $_POST['y'] değerine eşit değil."); 
    } 
    ?>
    fakat ben bunu çalıştırdığımda

    Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in C:\wamp\www\kitap\bolum5\if4.php on line 15
    hatası alıyorum. kitapta ekran çıktısı var.zaten kaynak kodları da vermiş adam. diğer birkaç örnekte de aynı tür hata alıyorum. windows 7 ye wamp server kurdum acaba sorun bendeki yazılımda mı?
  • 25-01-2010, 05:08:37
    #2
    Üyeliği durduruldu
    Ayrıştırma hatası: parse error, hat üzerinde 15 C `T_STRING 'veya` T_VARIABLE' veya `T_NUM_STRING ': \ wamp \ www \ kitap \ bolum5 \ if4.php bekliyor
  • 25-01-2010, 05:10:04
    #3
    print fonksiyonu içerisindeki string ifadeyi parçaladım ve formdan gelen verileri tutan değişkenlerle string parçalarını . (nokta) operatörü kullanarak birleştirdim.

    Birde şu şekilde dener misiniz?

    <?php 
    if(!($x AND $y)) { 
    ?> 
    <form action="if4.php" method="post"> 
    <br />Bir sayı yazın:<br /> 
    <input type="text" name="x" /> 
    <br />Bir sayı yazın:<br />
    <input type="text" name="y" /><br /> 
    <input type="submit" /> 
    </form> 
    <?php 
    exit; #form boş gönderildiyse programı burada durdur. 
    } 
    if($_POST['x'] > $_POST['y']) {
    print($_POST['x']." değeri ".$_POST['y']." değerinden büyüktür."); 
    }elseif($_POST['x'] == $_POST['y']){ 
     print($_POST['x']." değeri ".$_POST['y']." değerine eşittir."); 
    }else{ 
    print($_POST['x']." değeri ".$_POST['y']." değerine eşit değil."); 
    } 
    ?>
  • 25-01-2010, 05:16:21
    #4
    Undefined variable: x in C:\wamp\www\if.php on line 2 dedi şimdi de =/ linux çalışan sunucuda denedim orda da aynı hatayı verdi demekki kodda sorun var.
  • 25-01-2010, 05:36:54
    #5
    ecabuk adlı üyeden alıntı: mesajı görüntüle
    Undefined variable: x in C:\wamp\www\if.php on line 2 dedi şimdi de =/ linux çalışan sunucuda denedim orda da aynı hatayı verdi demekki kodda sorun var.
    O zaman register_globals ayarı off konumda olabilir. Bu durumda x ve y degerlerine direk $x $y şeklinde erişemezsiniz.


    Formun başındaki:

    <?php  
    if(!($x AND $y)) {  
    ?>
    bölümünü alttaki ile değiştirseniz register_globals ayarına gerek kalmadan istediğinizi yapmış olacaksınız.

     <?php 
    if(!isset($_POST['x']) AND !isset($_POST['y'])) {
    ?>
  • 25-01-2010, 05:45:51
    #6
    evet register_globals kapalı olduğundanmış =) kitabın başında açın diyordu şimdi hatırladım. ben format attıktan sonra tekrar kurdum wamp ı ama onu açmayı unuttum. fakat "." ile ayrılmamış kod çalışmıyor yine. demekki $_POST[''] vs olunca yanındakileri . ile ayırmak gerekiyor. çok sağol,teşekkürler mtn burda takılıp kalmıştım
  • 25-01-2010, 08:31:04
    #7
    Üyeliği durduruldu
    ecabuk adlı üyeden alıntı: mesajı görüntüle
    evet register_globals kapalı olduğundanmış =)
    php 6 ile bu özellik tümden kaldirlacak. off sekilde kodlamaya alisisrsaniz iyi olur ondan dolayi