Öncelikle yanıtın için tşk ederim hocam! Hemen konuya geçiyorum... 1. si... Yani ana kategori başlıklarından birine tıkladığımızda karşımıza alt kategoriler geliyor ve bu alt kategori listesindeki başlıkların altında alt kategori varsa linkli olsun yoksa linksiz olsun yöntemini yukarıda tarif ettiğin şekilde yaptım ama tam 2 günümü aldı :)) kullanmış olduğum kodu alakasız yerlerde kullanıyormuşum...Ve olumsuz sonuçlar alıyordum.... Nerede yanlış yaptığımı ve nasıl hallettiğimi belirteyim... Baştan bi anlatayım... Veri tabanına "alt" adında bir sutun ekledim varsayılanı 0 yaptım kategorilerin alt kategorisi varsa 1 olacak ... Herhangi bir kategoriye alt kategori ekleneceği sırada sorgunun altına bir de update sorgusu yaptırıp bir üst kategorinin alt sutununu 1 olarak güncelledim... (iki sorgu ardı ardına olur mu? biri alt kategori insert sorgusu diğeri ise altına kategori eklenen kategorinin alt sutununu güncelleyen UPDATE sorgusu) Ve veritabanı kısmını hallettim...Yani girilen verilerde alt kategorisi olanlar 1, olmayanlar 0 olarak oluyor... Bu verileri sayfalarda göstermeye gelince... bir tane ana.php diye sayfa yaptım... Bu sayfada sadece en üst kategoriler görüntüleniyor... Bu sayfadaki listelenmiş ana kategorilerden birine tıkladığımda buna ait alt kategorilerin gösterileceği alt.php diye bir başka sayfa hazırladım... Ve alt.php sayfası hep kendine post ediyor... Ve iki sayfada tüm kategori ve alt kategorileri ardı ardına sayfada gösterebiliyorum... Tek bir sorun kalmıştı o da alt kategori olanın da olmayanın da linki bir vaziyette gözükmesiydi...Bunu da şöyle hallettim... while döngü içinde... echo ($alt==0)? 'linksiz veri':'linkli veri'; diye bir kod kullandım... Ve bu sorunu halletim...Bu kodu 2 gündür hep yanlış yerlerde kullanıyordum...En sonunda while döngüsü içinde kullanarak öğrenmiş de oldum :) Bu sorunu hallettim fakat sayfanın üzerinde en sonki kategorinin nasıl bir yol izlediğini gösteren kategori uzantıları uygulamasını yapamadım... Mesela şu anda "Sıfırdan PHP" sayfasında bulunuyoruz ve üstte hangi kategoriler altında olduğunu gösteren bir link uzantısı var Tüm Forumlar >> Oyun ve Yazılım >> Yazılım Geliştirme>> PHP/CGI >>Sıfırdan PHP Hocam yukarıda göstermiş olduğun
Buna benzer birşey yapmaya çalıştım ama yapmak istediğim gibi yapamadım... Şöyle bişey yaptım... Mesela ana.php de Spor linki var ve alt kategorileri ve onun alt kategorileri şöyle...
Şimdi veri tabanındaki ana ve alt kategori ilişkisi bu şekilde.... Ben ana.php sayfasındaki Spor linkine tıkladığımda... Sayfa şu şekilde >>Spor Basketbol Futbol Buradan Futbol linkine tıklıyorum ...Sayfa bu şekilde; Spor>>Futbol 1.Lig 2.lig Buradan 1.Lig linkine tıkladığımda Futbol>>1.Lig Takımlar Buradan Takımlar linkine tıkladığımda ise 1.Lig>>Takımlar Beşiktaş Galatasaray Fenerbahçe Trabzonspor Görüntüler bu şekilde... Eğer dikkat ettiysen hocam bulunduğum sayfanın kategorisi ve bir üst kategorisini gösterebiliyorum... En baştaki ana kategoriye kadar olan dallanmayı gösteremiyorum... Yani ben "takımlar" sayfasında olduğum zaman Spor>>Futbol>>1.Lig>>Takımlar olmasını istiyorum... Ve ayrıca bulunduğum sayfa linksiz diğer üst kategoriler linkli olacak... Bunları anlattıktan sonra nerede nasıl bir hata yapıyorum veya hangi konuyu öğrenmem gerekiyor... Çözüm yollarından birinin session olduğunu belirtmişsin ama henüz o konuya geçemedim...Bu Dallanmayı gösterme konusunu hallettikten sonra Allahın izniyle Session konusuna geçiş yapacağım... Unset konusuna gelince de ... bir soru daha sormak istiyorum... Mesela 200 satırlık bir sayfadayız ve 5. satırda bir değişken kullandık ve 8. satırda işi bitti ve ardından bu değişkeni hemen unset ederek hafızdan sildik... Ve sayfamızın 196. satırında bir başka değişken kullandık 197 de değişkenin işi bitti hemen ardından unset kullanmamızla kullanmamamız arasındaki fark ile 8. satırdaki değişkene kullandığımız unseti kullanmamız ile kullanmamamız arasındaki fark kıyası nasıl? Yani 8. satırdaki unset 192 satırda o değişkeni hafızada boşuna yer kaplamasını önlüyor... 197. satırdaki değişkenin unseti 3 satırlık bir hafıza boşluğu etkisinde mi bulunuyor? Hocam bişey daha sormak istiyorum...Sorularımda bir anormallik var mı yoksa gerçekten sorulabilir normal sorular mı...? Bazen sorduğum soruların saçma olduğunu düşünüyorum...Ama sonuçta merak ettiğim için soruyorum... Tekrar teşekkür ediyorum Hocam! |
Arkadaşım biraz geciktirdim cevabı kusura bakma, Öncelikle ben bir anormallik görmüyorum sorularında , daha önce de defalarca söylediğim gibi soru sormaktan çekinme, bilginin anahtarı soru sormaktır, ister kendine ister başkasına olsun. Arkadaşım o dallanma konusunu göstermenin en iyi ve en kolay yolu sessiondur, bence direk session konusuna geç. Çünkü böylece ayrıyeten bir şey yapmana gerek kalmaz , yani ek sorgu veya veriyi postla taşıma gibi. Kullanımı da çok basittir: mesela dallanmayı göstermeye başlayacağın birinci sayfada: session_start(); $_SESSİON['kategori_goster']='Spor'; ikinci sayfada ise session_start(); $_SESSİON['kategori_goster'] .= '>> Futbol'; üçüncü sayfada : session_start(); $_SESSİON['kategori_goster'] .=' >> 1.Lig '; istediğin anda da : echo $_SESSİON['kategori_goster']; diye ekrana basabilirsin.Bak ne kadar kolay, yani boşu boşuna diğer türlü uğraşma Unsetle ilgili soruna gelince evet aynen öyle oluyor, gördüğün gibi unset kullanmakla yaklaşık 200 satır boşu boşuna hafızayı işgal etmekten kurtarıyorsun. Eğer kafana takılan yer kaldıysa buraya eklersin. |
Estağfirullah Hocam! Yanıtların için çok tşk ederim... Hocam bu en son mesajından sonra daha önceki mesajında da yazmışsın fakat benim dikkatimden kaçan bişeyi öğrendim... O da bir değişkenin üzerine başka bir değer eklenmesi durumu... Mesela $veri=Spor; $veri.=>>Futbol; echo $veri; yazdığımızda ekranda Spor>>Futbol yazıyor... yani bir eşittirden önce bir nokta koyulduğu zaman değişkenin değerine bir değer daha ekleniyor... Hocam özür dilerim bunu daha yeni farkettim... Bunu da en son mesajındaki SESSION örneğindekini uygularken farkettim... Yanlız Dallanma olayını SESSION metoduyla yaptım fakat onda bir sorun yaşadım mesela veriyi bir sayfadan başka sayfaya götürürken hafızada tutuyor ya ... herhangi bir sayfada browserda sayfayı bir ileri bir geri yapınca her verinin üzerine yeni yeni veriler ekleniyor... Örnek: Spor linkine tıkladığımda ekranda diyelim Spor yazıyor ve altında ona ait kategoriler mevcut... Bu kategorilerden Futbola tıkladığımızda Ekranda Spor>>Futbol yazıyor buraya kadar normal... bu sayfadayken browserden geri tuşuna bastığımızda normalde sadece Spor yazması gerekirken Spor>>Futbol>>Spor yazıyor...Bir ileri bir geri yaptıkça bu yazılar sonsuza gidiyor... Umarım ne tür bir sorun olduğunu anlatabilmişimdir... Ben de Get metodunu uyguladım...(Hocam en son ve bir önceki mesajında veriyi post ile taşıma metodunu belirtmişsin Bu metod Get metodumu) Get metodunu da senin yukarıda belirttiğin şekilde uyguladım... VE sayfaya görüntü olarak her tıkladığım kategori hangi kategorilerin uzantısından geldiğini gösteriyor... Yani diyelim Spor Linkine tıkladım ekranın başında Spor ve altında alt kategoriler buradan Futbola tıklayınca ekranda Spor>>Futbol ve alt kategorileri buradan Takımlara tıklayınca ekranda Spor>>Futbol>>Takımlar alt kategoriler Görüntü olarak bunu yapabildim...Fakat bu sıralamada Linklerin olması gerekiyordu...Daha doğrusu bulunulan sayfa linksiz onun üstündeki kategoriler linkli olmalı... Yoksa bu dallanmayı yapmanın bir anlamı olmazdı... mesela takımlar sayfasında olduğumuzu varsayalım...Sayfanın başında Spor>>Futbol>>Takımlar yazacak Spor ve Futbol yazıları linkli Takımlar yazısı linksiz olacak... Daha sonra Düşün düşün nasıl yapabilirim diye gerçi denemediğim abuk subuk şeyler olmadı değil... Ve yine görüntü olarak bunu elde etmenin bir yolunu buldum... Sayfadan sayfaya Get ile göndermiş olduğum Kategori isimlerini bir dizi olarak düşündüm... ve aralarındaki >> işaretlerinden explode ile ayırarak bir nevi dizileri parçalarına ayırdım... Daha sonra bu diziyi count ile kaç tane veriye sahip olduğunu öğrenip bu satır sayısını for döngüsünde kullandım... for döngüsü içinde de dizinin içindeki en son veriyi linksiz diğerlerini linkli bir vaziyette göstertebildim.... Ve şöyle bir duruma kadar geldim... Her tıkladığım sayfada bulunduğum sayfa linksiz üst kategoriler linkli bir vaziyette ... Evet görüntü olarak bunu yapabildim...Fakat linklere tıklanınca o link ve onun altındaki alt kategoriler durumunu yapamadım... Yani Dallanmadaki görüntü tamam ama linklerin işleyişi başarısız... Ben şimdi öylesine yazmış olduğum kodları göndereyim... Doğru yolda mıyım bilmiyorum ama buraya kadar geldiğimi belirtmek istiyorum... Veritabanındaki verileri göstermek için 3 tane sayfa hazırladım....Diğer sayfalar zaten senin yukarda kategorilendirme örneğindeki uygulamalar olarak varsayılıyor... Bu 3 sayfa ana.php(en üst kategoriler sayfaya basılıyor) alt.php(Bir alt kategoriler sayfaya basılıyor) ve nalt.php(ikinci ve daha sonraki kategoriler sayfaya basılıyor); Bunları belirttikten sonra kodları veriyorum; ana.php <?php alt.php
Bu da en son sayfa nalt.php <?php Hocam nalt.php sayfadaki kodlara dikkatini çekmek istiyorum... Orada uygulamış olduğum explode ve for döngüsü olayı... for döngüsündeki linklerin içindeki a href etiketine nasıl bir değişken veya değişkenler verip hangi sayfaya göndermem gerekir...Tabi ben çeşitli denemeler yapmama rağmen hepsinde çeşitli yanlış sonuçlar aldım... Tabi herşeyden önce bu yapmış olduğum uygulama yolu doğru mu? Belki de boşa kürek çekiyorumdur bilemiyorum... SESSION Konusuna gelince de bir taraftan onu da işliyorum fakat aklım bu link olayında kaldı... Gerçi yukarıda da belirttim...Bu link olayında da denedim SESSION u ama yukarıda dediğim gibi sorunla karşılaşmıştım... Onun haricinde oturum açma kapama gibi ufak tefek denemeler yapıyorum SESSION u anlamak kavramak için ama bu sorunu halletmeden tamamen Oturum konusuna geçmek istemiyorum... Yardım ve yanıtların için tşk ediyorum hocam... |
Arkadaşım kusura bakma geç yazıyorum, Bak dizi olarak düşündüm diyorsun güzel düşünmüşsün ancak tam dizi gibi işlememişsin.Yani senin şu anda yaptığın tek değişkeni explode ile bölmek. Madem dizi olarak tutacaksın o zaman: $kategori_dizisi[]; gibi kullanacaksın daha sonra her sayfada içine atacaksın, mesela: $kategori_dizisi[0]='Spor'; $kategori_dizisi[1]='Futbol'; $kategori_dizisi[2]='Türkiye ligi'; gibi yapacaksın, böylece explode ile falan uğraşman gerekmez. Hem daha kolay hem daha rahat kullanırsın. Session konusuna gelince her zaman söylediğim gibi iş mantıkta biter :) , bak session ile kolaylıkla yapmışsın ancak sorun çıktı diyorsun, oysa senin sorun dediğin şey düşünürsen tam anlamıyla dinamizm aslında. Yapacağın tek şey bir kontrol koymak sadece . Sessionu farklı düşünme yani normalde php ile yaptığın bütün işlemlerde nasıl if, for vb. kontrol yapıları kullanıyorsan sessionda da aynısını kullanabilirsin. Mesela ilk aklıma gelen her sayfada sessiona ekleme yapmadan önce o sayfanın kategori önceliğini koyar buna göre işlem yapabilirsin yani en başa: $oncelik=0; // ana kategori veya alt kategori ise 1 daha altsa 2 olur gibi senin mantığına kalmış if( eğer session önceliği burdaki öncelikten büyükse kontrol edersin ){ echo $_SESSION['kategori_goster'] ; // büyükse aynen yazarsın çünkü alt kategori eklenmiştir } else{ $_SESSION['kategori_goster'] .= 'alt kategorisini eklersin'; } gördüğün gibi senin mantığına kalmış, biraz düşünürsen farklı yöntemler bulabilirsin, ben karışık olmasın diye yazmıyorum, ancak istersen $_SESSION['kategori_goster'] değişkenini dizi olarak kullanıp daha kolayca da yapabilirsin: $_SESSION['kategori_goster'][0]='Spor'; $_SESSION['kategori_goster'][1]='Futbol'; gibi. Yani söylemek istediğim sessionu ayrı bi şeymiş gibi düşünme farkı sessiona eklediğin değişkenin GET veya POST'a gerek kalmadan PHP tarafından sayfadan sayfaya taşınmasıdır. Birde unutma ki tarayıcı kapatıldığında session uçar, ona göre işlem yapacaksın. |
Hocam estağfirullah! İnanır mısın kafam öyle karıştı ki! Nereden nasıl başlayacağımı bilemiyorum... Ben explode yi orada sayfadan sayfaya taşınan verileri dizi haline getirerek for döngüsü içinde kontrol altına alarak bulunulan sayfanın yazısını linksiz bırakıp diğer yazıları linkli hale getirmek için kullanmıştım... Eğer explodeyi kullanmamam gerekiyorsa for döngüsünü de kullanmamam gerekecek...Ve sıfırdan başlayacağım sanırım bu konuya... Session konusuna gelince de ben sessionla bunu başardığımı söylemedim... Sadece sayfadan sayfaya verileri taşıyabildim ve browserda ileri geri tuşuna basıldığında ekranda fazladan yazılar çıkıyordu...Bu sorun olmasaydı bile bunu halletmiş olmayacaktım çünkü onun dışında sayfadaki sıralamadaki dallanma linkli ve linksiz olma durumu ve bu dallanma içindeki herhangi bir linke tıkladığımda onunla alakalı sayfanın ekrana gelme durumunu ilişkilendirme sorunu vardı... Yani session metoduyla daha da geride kalıyordum... O nedenle Get metodunu kullanarak bayağı bi mesafe kat etmiştim... Ve get metodunda sadece ve sadece dallanarak giden linklerden herhangi birine tıkladığımda tıklanan linkle alakalı sayfanın çıkması konusunda sorun yaşıyordum... Hocam Sessionla daha da kolay bişekilde bu sorunu halledebileceğimi düşünüyor olabilirsin fakat yukarıda yazmış olduğun sessionla ilgili kontrol metodlarını ve $öncelik değişkeni konusunu hiç anlayamadım...Bunu anlamadan da bir adım öteye gidemiyorum... Bu konuda aynı aynı soruları sorarak sana daha fazla rahatsızlık vermek istemiyorum hocam... Eğer bu konuyla ilgili herhangi bir kaynak varsa verirsen sevinirim... Yanıtların için de teşekkür ederim... |
Arkadaşım söylediğimi yanlış anlamışsın- ben gereksiz yere explode kullanıyorsun demek istedim şöyle açıklayım, sen şimdi nasıl yapıyorsun, birinci sayfada: $kategori_goster='Spor'; ikinci sayfada: $kategori_goster .= '>>Futbol'; üçüncü sayfada: $kategori_goster .='Birinci lig'; gibi yapıyorsun ve en sonunda elinde 'Spor >> Futbol >> Birinci Lig' gibi bir değişken oluyor ve explode ile dizi haline getiriyorsun, ben de boşuna explode ile uğraşma direk dizi yap diyorum yani: birinci sayfada: $kategori_goster[0]='Spor'; ikinci sayfada: $kategori_goster[1]='Futbol'; gibi kullanacaksın, böylece hem explode ile uğraşmana ve uzatmana gerek kalmayacak hem de sıradan gittiğin için işin kolaylaşacak, nasıl kolaylaşacak: $kategori_goster[0] sana ana kategoriyi, $kategori_goster[1] bir alt kategorisini vermiş olacak for döngüsü kullanıyorsan yine kullan. Ayrıca istersen kafan karışmazsa çoklu dizi olarak kullan bu işini de kolaylaştırır yani: $kategori_goster[0][adi]='spor'; $kategori_goster[0][ustid]=0; $kategori_goster[0][id]=3 ; // mesela sporun veritabanında kategori id nosu 3 olsun sonraki sayfada: $kategori_goster[1][adi]='Futbol'; $kategori_goster[1][ustid]=3; //yani üst kategorisi olan sporun id nosu $kategori_goster[1][id]=5 ; // kendi nosu olduğunu varsayıyorum. burda dikkat et illa senin vermen gerekmez bunları yani veritabanından sonucu alıyorsun ya o zaman değer verirsin, $kategori_goster[1][adi]=$sonuc['kategori_adi']; gibi bu şekilde link vermen falanda kolay olur, link verdiğin sayfaya üstidini belirterek link verebilirsin. Görüyorsun her zaman dediğim gibi iş mantıkta biter, yani önce kendine bir mantık oturt eğer mantığına ters gelirse yine explode kullanarak bildiğin gibi yap.Yeter ki istediğini yapsın, önemli olan bu. |
Hocam yanıtın için tşk ederim! Akşam 11 den beri bununla uğraştım ama beceremedim... Bu en son yazdığın mesajla kafam daha da çok karıştı ve bu konuda daha fazla soru sormak istemiyorum... Bu yazdıklarını tüm eksik bilgilerimi tamamladıktan ve çeşitli uygulamalarla karşılaşıp deneyim kazandıktan sonra daha iyi anlayacağımı sanıyorum...Ama şu anda bunu anlayacak düzeyde değilim... O nedenle bu konu üzerinde daha fazla durmak istemiyorum (sağlık herşeyden önemli dimi :)) ... Yardımların için tekrar tekrar tşk ediyorum... Kolay gelsin... |
Arkadaşlar bende bugün itibariyle php'ye başladım, bilgisayarıma Easyphp1-8'i kurdum fakat bir sorunum var: Dr. Hakkı Öcal'ın elkitabında verilen örnekler php'nin eski versiyonu olduğu için olsa gerek çalışmıyor, mesela karşıma bomboş birsayfa çıktı form ile işlemciyi birleştiren kodu yazdıktan sonra. Aşağıdaki program kodlarını php'nin benm kullandığım versiyonunda çalışabilecek şekilde düzeltirseniz sevinirim. Bir de php'nin son versiyonu için nereden kaynak bulabilirim? php.net sitesinden manualini indirmeye çalıştım ama beceremedim. Bendeki manual de eski ayrıca bazı yerlerde ingilizcesi çok ağılaşıyor, çeviri yapana kadar canım çıkıyor. Bana hem türkçe hem de son version bir kullanım kılavuzu bulabileceğim bir adreste verirseniz sevinirim. Google da karşıma ilgisiz şeyler çıktı. Neyse program kodlarını c-p yapayım: <?php if ( isset ( $_POST)&& !empty($_POST)) { echo "<HTML> <HEAD> <TITLE>PHP'de Formlar</TITLE>"; echo "</HEAD> <BODY>"; foreach ($_POST as $anahtar=>$deger ) { if ( gettype ($deger ) == "array" ) { echo"$anahtar == <br>\n"; foreach ( $deger as $yeni_degerler ) echo".. $yeni_degerler<br>"; } else { echo "<b>$anahtar = $deger <br>\n"; } } echo"</BODY> </HTML>"; } else { echo "<HTML> <HEAD> <TITLE>PHP'de Formlar</TITLE> </HEAD> <BODY> <FORM ACTION=\"$PHP_SELF\" METHOD=\"POST\">\n Adınız, Soyadınız: <INPUT TYPE=\"TEXT\" NAME=\"adi\">\n <BR>\n Elektronik Adresiniz: <INPUT TYPE=\"TEXT\" NAME=\"adres\">\n <BR>\n Hangi notunuzu öğrenmek istiyorsunuz? \n <BR>\n <SELECT NAME=\"hangi_not[]\" MULTIPLE>\n <OPTION>Sınav 1 \n <OPTION>Sınav 2 \n <OPTION>Ortalama \n </SELECT>\n <BR>\n <INPUT TYPE=\"SUBMIT\" VALUE=\"Gönder Gitsin!\">\n <INPUT TYPE=\"RESET\" VALUE=\"Vazgeç, Gönderme!\">\n </FORM>\n </BODY>\n </HTML>\n"; } ?> sanırım ikinci satırla ilgili birşeyler değişmiş yeni versiyonda , hatamı düzeltirseniz çok büyük yardımınız dokunur. |
Bir sorum daha var, yardım lüüüütfeeeeennnnnn: CREATE TABLE `ogrenciler` ( `adi` varchar(30) collate utf8_turkish_ci NOT NULL default '', `soyadi` varchar(30) collate utf8_turkish_ci NOT NULL default '' `kayit_no` smallint(6) NOT NULL default '0' ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_turkish_ci; komutuna mysql hata veriyor ama nerede hata yaptığımı bulamıyorummmmm.... |
<?php if ( isset ( $HTTP_POST_VARS )) { print ("<HTML>\n"); print ("<HEAD>\n"); print ("<TITLE>PHP'de Formlar</TITLE>\n"); print ("<meta http-equiv=\"content-type\" content=\"text/html; charset=ISO-8859-9\">\n"); print ("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1254\">\n"); print ("</HEAD>\n"); print ("<BODY>\n"); foreach ($HTTP_POST_VARS as $anahtar=>$deger ) { --------- kısmını: <?php if ( isset ( $_POST)&& !empty($_POST)) { print ("<HTML>\n"); print ("<HEAD>\n"); print ("<TITLE>PHP'de Formlar</TITLE>\n"); print ("<meta http-equiv=\"content-type\" content=\"text/html; charset=ISO-8859-9\">\n"); print ("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1254\">\n"); print ("</HEAD>\n"); print ("<BODY>\n"); foreach ($_POST as $anahtar=>$deger ) { .................... olarak değiştir. veritablosu sorgunu da: $sorgu="CREATE TABLE ogrenciler ( id int(10) NOT NULL auto_increment, adi varchar(30) NOT NULL default '', soyadi varchar(30) NOT NULL default '', kayit_no smallint(6) NOT NULL default '0', PRIMARY KEY (id) ) TYPE=MyISAM "; mysql_query($sorgu) or die ("HATA var"); şeklinde kullan. |
Öncelikle sayın acayip'e yardımlarında dolayı teşekkür ediyorum. Şimdi bir kaç sorum daha olacak; 1. mysql de oluşturduğum veri tabanını hangi komutla silebiliyorum? 2. oluşturduğum veri tabanı içindeki tablolardan herhangi birini nasıl silebiliyorum? |
|
Vallahi yaklaşık 3 saattir burada sizlerin yazdıklarını okudum.Gerçekten kendimi okul sıralarında hissettim.Çok güzel bir duygu.Acayip hocam ve muratbilgin arkadaşımız gerçekten büyük bir özveri ile burada kaç aydır çalışıyorlar. Benim gibi phpye yeni başlayanların belki de bu sayfa uğrak yeri olacak. Ben sayfamda bir resim yükleme yeri yaptım.Buraya resim yükleniyor resimler sonra yükleyen tarafından başka bir sayfada görülüyor.Sonra bir düğme ile bunu form yerine yollayıp normal bilgileri email yolu ile alıyorum. Ben bu gelen resimleri (upload jpg gif doc zip uzantılılar 200KB)direkt sınıflandırıp sql tablosunda saklamak ve sonra bir tablo çıktısı alıp bunları sayfaya yerleştirmek istiyorum.Her şeyi şu anda el ile yapıyorum.Bazen günde 10 kişi bilgi gönderiyor.Bunu birazda korkuma hiç deniyemedim.Bunu güvenli şekilde nasıl yapabilirim.Şu anda sayfa da zaten giriş yeri yok.Herkese açık. Örnek aldığım bir sayfa.Buraya yükleme yapılıyor ve sonra buna puan veriliyor. http://www.wolkengalerie.de/wolken-upload.php Acayip hocam bu sql tablosunu kullanarak nasıl yapmam gerektiği konusunda bilgilendirebilirsen çok sevinirim. Teşekkürler Yukarıda muratbilgin arkadaşın dediği gerçekten müthiş bir olay.Umarım herkes kendisi forum açmadan önce bunu kendisinin tasarladığını düşünün.Çiçek tarlasında geziniyor olacaz.En önemlisi bu olay Türkiyede programlamanın olması ve yazılımdan para kazanılması demektir ki bu bence Türkiye de kesinlikle olacaktır. Herşeyin hayırlısı.Genç ve dinamik bir nufusumuz var.Buna eğitilmiş insanlarımızı da katarsak ab bizi aralarına almaktan gurur duyacak. Kim istemez bir türk antivirus antihacker firewall casus yazılımları,grafik dizayn programlarını kullanmayı.Herkes ister. |
Arkadaşım bence resimleri veritabanında saklayıp da gereksiz yere şişirmene gerek yok.Çünkü hem veritabanı aşırı büyük olur, hem veritabanına yazıp, okurken uzun sürer. Onun yerine istediğin kategorilerde klasörler oluşturup, gelen resimleri buraya upload edersen ve veritabanına da sadece resmin adı, yolu, kimin gönderdiği gibi bilgileri yazarsan hem daha hızlı çalışır, hem yönetmesi kolay olur.Bu durumda istediğin bilgi alanlarını içeren bir form yaparsın, upload edilen resimi belirlenen kategoriye göre move_uploaded_file(); ile o kategorinin klasörüne taşırsın ve veritabanına da resmin yolunu ve diğer bilgileri yazarsın. Burada senin kullanacağın en önemli fonksiyon yukarıda da dediğim gibi move_uploaded_file(); Biraz uğraşırsan rahatlıkla yaparsın, eğer takılırsan, elimden geldiğince yardımcı olmaya çalışırım. |
Dostum vallahi phpden çok fazla anlamıyorum.Kendim bulduğum scripti değiştirerek bunu html kodlarındaki formuma uyarladım. Herşey güzel çalışıyor.Resimler yüklenince upload dosyasına gidiyor.Sonra onları alıp ben bir başka arsiv_upload diye klasör açtım oraya kendim taşıyorum. Sorun bu yüklenen resimlerin kimin tarafından yüklenilmiş olduğunu bilmiyorum.Benim sayfamda giriş yok.Herkese açık. İlk önce bu upload.php diye bir sayfa yaptım orada yükleme oluyor sonra ileri tuşu kullanarak buna basılınca kontak.html diye sayfaya gidiyor sonra buradan bilgiler doldurulup bana email ile normal mail.pl ile kullanarak geliyor. Şimdi bu resimlerin kime ait olduğunu bilmiyorum. Bu resimleri ve kullanıcının girdiği bilgileri ben yeni bir sayfada yaptığım tabloda otomatik şekilde gelmesini istiyorum.Şu anda herşeyi manuel olarak yapıyorum. Bu sorunu çözmeme yardımcı olabilirsen ve ileri de yine php ile ilgili yardımcı olabilirsen hesap numaranı yolla gizli olacak.Ben sana gönlümden koptuğu kadarı ile yardım ederim.Ben söylemesi ayıp kendim script satın aldım onu bile tam çalıştıramadım.Sql tablolar vb. yapılması gerekiyordu.Lisansı vb.herşey var. Selamlar sevgiler. Msn,gmail talk,skype,gozilla vb. kullandığın programlar varsa hocam vallahi çok yardıma ihtiyacım var. Yukarıdaki verdiğim link gibi veya upload olduktan sonra otomatik şekilde kontakta resim de gelecek ve sonra bana email şekilde ulaşacak olması da bana yeterli.Ben elle manuel şekilde bunları yapmaya da razıyım. Vallahi bu olayı yaklaşık 4-5 gündür devamlı tutorial yok şuymuş yok buymuş incelemediğim yer kalmadı.Yaklaşık 6 boarda yazı yazdım olumlu cevap aldığım ikici yer.Diğeri de yabancı bir board. Selamlar sevgiler |
Arkadaşım msn'yi falan fazla kullanmıyorum, çünkü saatim belli olmuyor. Sen tam olarak nasıl bir şey istediğini bana iletebilirsen yardımcı olmaya çalışıyım. Tam olarak derken, yani isteyen herkes bilgilerini yazıp resim upload edebilecek mi, yoksa onaylayıp öyle mi yapacaksın. Benim anladığım kadarıyla sayfaya giren istediğin bilgileri yazacak, resimini ekleyecek, ve sonraki sayfada falan kişi, bilgileri şu, eklediği resim şu gibi gösterip, bir tabloya kaydedeceksin.Tabii resimleri de ilgili kategorinin klasörüne taşınacak.Doğru mu anlamışım, yukarıda örnek olarak verdiğin adres almanca ve benim için pek açıklayıcı değil. Bunları bana ister buradan, ister özelden, istersen mail ile bildirebilirsen yardımcı olmaya çalışırım. |
Arkadasim emaille de cevap gönderdim.Heyecandan emailde yanlista yazdim.Kusura bakma.Evet vallahi cok iyi anlamissin.Ikincisi olacak isteyen resmi yükleyecek bunun icin form alanlarinda doldurmasi zorunlu alanlar olacak.Sonra bunlar tekrar tabloda yayinlanacak.Bir türlü yapamadim vallahi dedigim gibi yaklasik 5-6 gündür ugrasiyorum.Incelemedigim degistirmeye calistigim php kalmadi.En sonki yaptigimda resim belli formlarda yükleniyor kisitlama getirdim.200KB diye.Ama gel gelelim bunlari kimin yükledigini bilmiyorum. Bir tane sayfa dedigim gibi upload.php diye yaptim sonra ileri tusu ile kontakt.html geliyor fakat resmi ali mi veli mi yükledi bilmiyorum. Cevabini büyük bir sevinc ve umutla bekliyorum. Allah razi olsun. Selamlar sevgiler |
Sayın SALVADOR, verdiğiniz komut işe yaradı, teşekkürler. Drop database database ismi; şeklinde olacak. Sayenizde gereksiz birsürü veritabanından ve tablodan kurtuldum. Tekrar tekrar teşekkür ederim... |
Arkadasim emailin ve buradaki cevabindan dolayi dün saat sabah 2 ye kadar bugünde tam gün bekledim.Islerinin yogun olduguna eminim,eger o yogun islerinden biraz olsun bana yardimci olabilirsen inan belki de rüyanda cennete gidiyor olursun.O kadar dua ederim. Selamlar sevgiler |
Birinci sorun için evet yöntemin doğru.
İkinci sorun için ise yani alt kategorisi yoksa link çıkmasın diyorsan bunun da bir kaç yolu var düşünürsen sen de değişik yöntemler bulabilirsin.
Mesela birincisi ekrana basmadan önce kontrol edersin alt kategorisi var mı diye varsa link verirsin, yoksa yanına alt kategori eklenmemiş gibi bir şey yazdırırsın.
Bu işimizi görür ancak böyle yapman için ayrı bir sorgu yapman gerekir değil mi. O zaman dersin ki ben bunu tek sorguda halledebilmem için ne yapabilirim ?
Mesela dersin ben veritabanında misal olarak alt_kategori_durumu diye yeni bir alan açarım varsayılan 0 olur, eğer o kategoriye alt kategori eklersem bu alanı 1 yaparım.Böylece sorgumu yaparken o alan 1 se link veririm, 0'sa alt kategori eklenmemiş derim.
diğer sorun ise
Spor>Futbol>Türkiye Ligi şeklinde gösterim için yine yukarıda yazdığım geçerlidir.Yani bir çok yol bulunabilir.Birincisi ve en yavaşı veritabanından kontrol, boşu boşuna gerek yok.İkincisi ve daha kolayı her sayfada POST içine hidden alan ile bir değişken eklersin, seçimi sayfadan sayfaya taşırsın.Mesela İlk postu kontrol eden sayfada veritabanından gelen sonuc['kategori'] değerini bir değişkene atarsın $secilen_kategori=sonuc['kategori'] ; // diyelim ki spor
ikinci sayfaya gönderirsin ve gelen sonucu peşine eklersin
$secilen_kategori .= ' > ' .sonuc['kategori'] ;
gibi .Veya istersen direk GET ile gönderirsin.Ya da session ile sayfadan sayfaya taşırsın.Dediğim gibi değişik yöntemlerle yapabilirsin.
Unsetr kullanımı ise evet yukarıdaki şekilde kullanacaksın.Ancak unutma ki değişkenle işin bittiğinde değil de 200. satırda kullanırsan boşu boşuna 190 satır hafızada yer işgel edecek.Bu senin localde çalışırken etkilemesede ortak bir sunucuda yavaşlama demektir.Tabii kaç kişi dikkat ediyor bunlara o da tartışılır ama neyse.
Umarım yazdıklarım açıklayıcı olmuştur.Eğer olmadıysa her zaman ki gibi buraya sorabilirsin.
Arkadaşım fopen veya fwrite farketmez, ayrıca PHP ile ytaptığın bütün işlemlerde geçerlidir.Zaten bu PHP ile ilgili bir şey değil.bildiğin yeni satır karakteridir. \r\n kullanmamızın sebebi ise
\n sadece linux sistemlerde geçerliyken windows için \r\n geçerlidir.
Diğer sorun için ise direk olarak o şekilde silemezsin bildiğim kadarıyla.Önce istediğin bölümü bir değişkene atıp sonra tekrar yazman gerekir.
Bu mesaja 1 cevap geldi. Cevapları Gizle