Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Kilka zmiennych w "fwrite"
Forum PHP.pl > Forum > Przedszkole
Turson
Otóż kiedy zrobil skrypt na otwieranie, zapisywanie, wpisywaniu do pliku tekstu to jest blad przy wprowadzaniu kilku zmiennych do zapisania.
Moze mi ktos napisac prawidlowego skrypta, aby mozna bylo w fwrite umiescic kilka zmiennych? Bardzo proszę
Foxx
A jaką proponujesz cenę?
Za darmo jest pomoc, np. manual: http://pl.php.net/manual/pl/function.fwrite.php
albo rada: scal łańcuchy do jednej zmiennej przed zapisaniem lub odpal zapisywanie w pętli.
Istalacar
  1. <?php
  2. $zmienna = $zmienna1.$zmienna2.$zmienna3;
  3. fwrite($fp, $zmienna);
  4. ?>

To w takim mocnym skrócie, więcej będzie można napisać jak trochę czytelniej napiszesz w czym problem, podasz jaki błąd wyskakuje i pokażesz kawałek kodu który sprawia problem.
Turson
Mam tak:
  1. <?php
  2.  $nazwapliku = 'indeks.php';
  3.  $title = $_POST['title'];    
  4.  $text = $_POST['text'];
  5.    
  6.  // Najpierw przekonaj się czy plik istnieje i jest zapisywalny.
  7.  if (is_writable($nazwapliku)) {
  8.    
  9.      // W naszym przykładzie otwieramy $nazwapliku w trybie dopisywania.
  10.      // Wskaźnik pliku jest ustawiony na końcu pliku gdzie znajdzie
  11.      // się zawartość $trochetresci po wykonaniu fwrite().
  12.      if (!$uchwyt = fopen($nazwapliku, 'a')) {
  13.           echo "Nie mogę otworzyć pliku ($nazwapliku)";
  14.           exit;
  15.      }
  16.    
  17.      // Zapis $text do naszego otwartego pliku.
  18.      if (fwrite($uchwyt, $text) === FALSE) {
  19.          echo "Nie mogę zapisać do pliku ($nazwapliku)";
  20.          exit;
  21.      }
  22.    
  23.      echo "Sukces, zapisano tekst do pliku ($nazwapliku)";
  24.    
  25.      fclose($uchwyt);
  26.    
  27.  } else {
  28.      echo "Plik $nazwapliku nie jest zapisywalny";
  29.  }
  30.  ?>

Zamiast $text, np. "$text <br>$text2..."
I jesli tak bedzie, to blad mi wyskakuje w linijce 19
Foxx
Czytałeś post Istalacara?
  1. <?php
  2. $text = $_POST['text']." tak się łączy stringi oraz ".$zmienne;
  3. ?>


A Twój przykład:
  1. <?php
  2. $text = $text.'<br>'.$text2;
  3. $text .= '<br>'.$text2; // krócej
  4. ?>
Turson
Sory, ale nie za bardzo rozumiem. Ja zaczynam dopiero przygodę z PHP.
Możesz mi to przerobić na prawidłowy skrypt? Proszę winksmiley.jpg
Foxx
Przecież te przykłady wystarczy wstawić w Twoim skrypcie.
Przeczytaj np. to:
http://wortal.php.pl/wortal/artykuly/php/p...laczenie_ciagow
i wyciągnij wnioski. Skoro zaczynasz przygodę to niech to będzie przygoda a nie nudne proszenie o gotowe rozwiązania smile.gif

A jeżeli i to Ci nic nie powie to czas chyba zająć się podstawami.
maxil
Kod
$zmienna1 = $_POST['zmienna1'];
$zmienna2 = $_POST['zmienna2'];
$zmienna3 = $_POST['zmienna3'];
if (@!$file = fopen('adres pliku', 'w'))
{
echo 'Wpisz tekst jaki będzie wyświetlany jak zapisywanie się nie uda';
}
fwrite($file, '<?php'."\n".
'$zmienna1=\''.$zmienna1."'; \n".
'$zmienna2=\''.$zmienna2."'; \n".
'$zmienna3=\''.$zmienna3."'; \n".
'?>');
echo 'Wpisz tekst jaki będzie wyświetlany gdy zapisywanie przebiegnie pomyślnie';


Proszę bardzo jak byś miał jakieś problemy to pisz
Turson
Udało mi się biggrin.gif
Jaki jest kod na sprawdzanie, czy uzytkownik jest zalogowany?
Foxx
W Symfony to będzie jakoś tak:
  1. <?php
  2. $this->getUser()->isAuthenticated()
  3. ?>

Bo chodzi Ci o Symfony, tak?
Turson
No chyba.
Napisałem skrypt rejestrowania się i zapisuje mi konta do folderu 'accounts'.
No dobra, ale nie za bardzo wiem jak logowanie teraz zrobić, żeby mi wczytywało.
Jakąś podpowiedź proszę rolleyes.gif


Pozdrawiam, aarambo.gif
Foxx
Cytat
No chyba.

No chyba właśnie nie. To był taki sposób powiedzenia Ci, że podałeś zbyt mało informacji.
Cytat
Napisałem skrypt rejestrowania się i zapisuje mi konta do folderu 'accounts'.
No dobra, ale nie za bardzo wiem jak logowanie teraz zrobić, żeby mi wczytywało.

Zrób formularz logowania, po wysłaniu go sprawdzaj czy w pliku accounts znajduje się dany login i hasło. Jeżeli tak to zaloguj użytkownika. Użyj sesji. Wszystko znajdziesz za pomocą wyszukiwarki na forum.
maxil
proponuje użyć też bazy sql.
Wszystko tam masz w jednym miejscu i nie zaśmiecasz sobie serwa lub kompa tysiącami plików o ile masz dużo użytkowników...
Turson
Cytat
Zrób formularz logowania, po wysłaniu go sprawdzaj czy w pliku accounts znajduje się dany login i hasło. Jeżeli tak to zaloguj użytkownika. Użyj sesji. Wszystko znajdziesz za pomocą wyszukiwarki na forum.

A jak zrobić żeby sprawdzało, czy istnieje plik: $nick,$nr,$pass ?
  1. <?php
  2. ?>

To że istnieje, a jesli nie ostnieje?
Foxx
  1. <?php
  2. if(!file_exists('plik.txt')){
  3.  echo 'plik nie istnieje';
  4. } else {
  5.  echo 'plik istnieje';
  6. }
  7. ?>


Cytat
A jak zrobić żeby sprawdzało, czy istnieje plik: $nick,$nr,$pass ?

Zależy jaką masz strukturę danych, czy hasła i loginy są przechowywane w tych plikach, jak się nazywają pliki, podajesz zbyt mało szczegółów.
Do operacji na plikach możesz potrzebować funkcji takich jak preg_match" title="Zobacz w manualu PHP" target="_manual, file_get_contents" title="Zobacz w manualu PHP" target="_manual, może też explode" title="Zobacz w manualu PHP" target="_manual.
Turson
WIęcej szczegółów biggrin.gif
  1. <?
  2.  
  3. function newacc()
  4. {
  5.    require('config.php');
  6.    $nick = $_POST['nick'];
  7.    $nr = $_POST['nr'];
  8.    $pass = $_POST['pass'];
  9.    $nazwa = $_POST['nazwa'];
  10.  
  11.    ($pass != $nick) or die ('Hasło jest takie same jak nick!');
  12.  
  13.    preg_match("/^[a-zA-Z0-9]+$/", $pass) or die ('Hasło zawiera niedozwolone znaki!');
  14.  
  15.    $account_file = "$diraccount/$nick,$nazwa,$pass.xml";
  16.  
  17.    !file_exists($account_file) or die ('Taki nick juz istnieje!');
  18.    !file_exists($account_file) or die ("Takie konto już istnieje!");
  19.  
  20.    $file = fopen($account_file, 'w');
  21.    fwrite($file,
  22. '<?xml version="1.0" encoding="iso-8859-2"?>
  23. <account pass="' . $pass . '>
  24. <nr="' . $nr . '>
  25. <characters>
  26.    <nick="' . $nick . '"/>
  27. </characters>
  28. </account>');
  29.    fclose($file);
  30.  
  31.  
  32.    print "Dziękujemy za rejestrację!<br><u>Twój nick:</u> <b>$nick</b><br><u>Twoje hasło:</u> <b>$pass</b><br><u>Twój nr w dzienniku:</u> <b>$nr</b><br><u>Twoje nazwisko:</u> <b>$nazwa</b><br><br><i>Jeśli konto będzie nieprawidłowe - zostanie usunięte. Turson</i>";
  33. }
  34.  
  35. newacc();
  36. ?>
Foxx
No ale mam to pisać za Ciebie? To co wklejasz to jest funkcja która przeprowadza rejestrację - powiedziałeś, że to gotowe. Zabierz się za logowanie. Podałem Ci przydatne funkcje. Nie rozumiem w czym jest problem.
Turson
  1. <?
  2.  
  3. function newacc()
  4. {
  5.  
  6.    $nick = $_POST['nick'];
  7.    $pass = $_POST['pass'];
  8.    
  9.    if(!file_exists('$nick,$pass.xml')){
  10. echo 'Zły nick lub hasło. <br>Jesli nie masz konta, zarejestruj się <a href="?info=zarejestruj"><b>tutaj</b></a>';
  11. } else {
  12. echo 'Dziękujemy za zalogowanie się. Teraz masz dostęp do wszystkich zakładek.';
  13. }
  14.  
  15. newacc();
  16. ?>

To skrypt logowania, a wyskakuje mi taki oto błąd:
Kod
Parse error: syntax error, unexpected $end in E:\Program Files\WebServ 2.0\httpd\podstrona\zaloguj.php on line 18
mike
Na każdy otwierający nawias musi przypadać nawias zamykający.
Proste, nie? tongue.gif
Spawnm
'$nick,$pass.xml'
jak mają być sczytane zmienne stosuj " zamiast ' .
mike
Twój warunek if() nidy nie będzie spełniony (no chyba że masz plik $user.$pass.xml).
Zapraszam do poczytania podstaw: Strings. Poznasz różnicę pomiędzy ' a " tongue.gif
Turson
Tak, mam plik: $nick,$pass.xml
To coś zmienia?
Spawnm
Cytat(TursoN @ 26.02.2009, 17:34:19 ) *
Tak, mam plik: $nick,$pass.xml
To coś zmienia?


w takim razie skrypt jest bez sensu tongue.gif
po co dane usera skoro plik się nie nazywa jak te dane tylko najzwyczajniej '$nick,$pass.xml' ...

to co dałeś to cały kod ?
Foxx
Ale pod tymi zmiennymi się kryją jakieś wartości, plik się nie nazywa $nick,$pass.xml tylko waldek,123.xml.
Przeczytaj link od mike'a i zwróć uwagę jak to jest w Twoim kodzie. A dokładnie tu:
  1. <?php
  2. if(!file_exists('$nick,$pass.xml')){
  3. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.