Meydan okuma - Dosya ve oturum
Dosya yazma/okuma ve oturumla basit bir not defteri uygulaması yazarsın.
Meydan okuma - Dosya ve oturum
Bu meydan okumada basit bir not defteri uygulaması yazacaksın. saveNote(string $note): void fonksiyonu notu bir dosyaya yazar; readNotes(): string fonksiyonu dosyanın tüm içeriğini döndürür. Oturum açan kullanıcının adını $_SESSION süper globalinde tutarsın.
Dosyaya yazmak için file_put_contents, okumak için file_get_contents kullanırsın. FILE_APPEND bayrağı her yeni notu dosyanın sonuna ekler; bu bayrak olmadan her yazma dosyanın üzerine yazar. session_start her çıktıdan önce çağrılır.
file_put_contents ve file_get_contents
file_put_contents üç temel argüman alır: dosya yolu, yazılacak metin ve isteğe bağlı bayrak. FILE_APPEND ile ekleme modunu açar; bu bayrak olmadan fonksiyon dosyayı sıfırlar. Her notu yeni satırla bitirerek aralarını ayırırsın.
file_get_contents dosyanın tüm içeriğini tek dize olarak döndürür. Dosya yoksa false döner; bu yüzden ?: "" ile boş dize varsayılanı vermek güvenlidir. session_start çağrısı sayfanın başında yapılır.
Uygulama saveNote ve readNotes fonksiyonlarını yaz
Önce session_start() çağrısı yap. saveNote(string $note): void fonksiyonunu tanımla; file_put_contents("notes.txt", $note . "\n") çağrısıyla notu dosyaya yazsın. readNotes(): string fonksiyonunu tanımla; file_get_contents("notes.txt") ?: "" ile dosyayı okusun. Sonra $_SESSION["user"] = "Ayşe" ata, saveNote("Toplantı notu") çağır ve echo $_SESSION["user"] . ": " . readNotes() ile çıktı ver.
Örnek çözümü göster
session_start'ı en başa çağır; iki fonksiyonu tanımla; $_SESSION["user"]'a değer verip echo ile yaz.
Örnek çözüm:
<?php
// saveNote ve readNotes fonksiyonlarını yaz
session_start();
function saveNote(string $note): void {
file_put_contents("notes.txt", $note . "\n");
}
function readNotes(): string {
return file_get_contents("notes.txt") ?: "";
}
$_SESSION["user"] = "Ayşe";
saveNote("Toplantı notu");
echo $_SESSION["user"] . ": " . readNotes();
Kendini test et
-
session_start() ne zaman çağrılmalı?
- Her çıktıdan önce
- Sayfanın en sonunda
- Her echo'dan sonra
- Yalnızca hata durumunda
Cevabı göster
Her çıktıdan önce — Doğru. session_start() çıktıdan önce çağrılır; oturum çerezi bir HTTP başlığı olarak gönderilir.
-
FILE_APPEND bayrağını ekle
file_put_contents("notes.txt", $note . "\n", ____);Cevabı göster
file_put_contents("notes.txt", $note . "\n", FILE_APPEND); -
Fonksiyonları görevlerine eşle
- file_put_contents
- dosyaya yazar
- file_get_contents
- dosyadan okur
- session_start
- oturumu başlatır
- $_SESSION
- oturum verisi tutar