Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pomocy!
Forum PHP.pl > Forum > PHP
Mac
Mam pytanie czy da się zrobić coś takiego:
1.Zeby z pliku np. data.dat skrypt php odczytywal jedna linijke i zpisywal ja do jednej zmiennej (jako tekst) potem zeby odczytywal nastepna linijke i zapisywal do nastepnej zmiennej?
2.I czy daloby sie zrobic cos takiego zeby skrypt dziala tak jak ten powyzej tylko zeby czytal co dwie linjki?

Z gory dziekuje za pomoc (dla was moze to latwy skrypt (ale ja jestem poczatkujacy)) smile.gif
castor
1.
Kod
$tab=file(data.dat);

for($i=0;$i<count($tab);$i++){

    $nr=1+$i;

    $zmienna{$nr}=$tab[$i];

}

w zmiennych $zmienna1, $zmienna2, $zmienna3... itd. masz linijki pliku ale to jest bez sensu mozesz pobrac plik w tablice:
Kod
$tab=file(data.dat);


i kazda linie masz pod $tab[0], $tab[1]... itd., wiec po co przypisywac jeszcze to do osobnych zmiennych.

2. a tutaj to juz sam pomys jesli masz tablice w ktorej masz plik gdzie kazda linia to
$tab[0] = pierwsza linia;
$tab[1] = druga linia;
$tab[2] = trzecia inia;
itd.

to juz chyba nie problem pobrac co druga :wink:
Mac
Wielkie dzięki!
Mac
Mam taki skrypt na podstawie tego co poradził castor i tego co sam wymyśliłem:
<?
$host=gethostbyaddr($REMOTE_ADDR);
$tab=file(data.dat);
if ($tab[0]==$host) {
header(location:ban.php);
}
elseif ($tab[1]==$host) {
header(location:ban.php);
}
elseif ($tab[2]==$host) {
header(location:ban.php);
}
?>

Ma on czytać lnijki trzy linijki i porównywać z hostem użytkownika który wszedł na stronę.
A jest taki błąd:
Parse error: parse error in /var/www/html/portal5c/glowna.php on line 103
Co to znaczy? Dlaczego to (skrypt) nie działa?
Z góry dzięki! smile.gif
castor
Cytat
Parse error: parse error in /var/www/html/portal5c/glowna.php on line 103
Co to znaczy? smile.gif


to oznacza ze w pliku glowna.php w lini nr 103 masz jakis blad.
zle napisales nazwe zmiennej lub zapomniales ; lub " sprawdz linie 102 bo jesli zapomniales ; w lini 102 to wyskoczy komunikat
Kod
Parse error: parse error in /var/www/html/portal5c/glowna.php on line 103


przejzyj ten skrypt bo to co tu napisales nie wyglada na 103 linie :wink:
castor
Cytat
<?
$host=gethostbyaddr($REMOTE_ADDR);
$tab=file(data.dat);
if ($tab[0]==$host) {
header(location:ban.php);
}
elseif ($tab[1]==$host) {
header(location:ban.php);
}
elseif ($tab[2]==$host) {
header(location:ban.php);
}
?>
smile.gif


Hej to ma byc :
Kod
header("Location:ban.php");    


pamietaj o :!: cudzyslowiach :!: i Location powinno byc z duzej litery.
moze z malej tez dziala ale powinno byc z duzej biggrin.gif

i przed porownaniem usun znak ENTER z lini chop()

ja to bym to napisal tak

Kod
<?

$host=gethostbyaddr($REMOTE_ADDR);

$ile_lini=3;

$tab=file(data.dat);

for($i=0;$i<$ile_lini;$i++){

  $tab[$i]=chop($tab[$i]);

  if($tab[$i]==$host){

    header("Location:ban.php");

  }

}



?>
Mac
Wielkie dzięki!
Mac
Kurde kolejny błąd:
Warning: Cannot add header information - headers already sent by (output started at /var/www/html/portal5c/glowna.php:8) in /var/www/html/portal5c/glowna.php on line 106
Nie wiem czy to może być związane z tym, że przed tym skryptem zapisuje do pliku (plik przed wykonaniem header zostaje zamknietę)?
Z góry dzięki!
castor
Cytat
Kurde kolejny błąd:
Warning: Cannot add header information - headers already sent by (output started at /var/www/html/portal5c/glowna.php:8) in /var/www/html/portal5c/glowna.php on line 106


z tego wynika ze juz naglowek zostal wyslany!
albo przez ciebie lub przez serwer czyli musiales zaczac generowac dokument html tym ze przeslales juz znaczniki<head></head>

Cytat
Nie wiem czy to może być związane z tym, że przed tym skryptem zapisuje do pliku (plik przed wykonaniem header zostaje zamknietę)?


tu cie nierozumiem smile.gif
Mac
Czyli muszę skrypt wstawić pw head albo caly html wywołać przez php?
np. echo ("<body>"); itd.?
Dzięki, bo ja dopiero zaczynam w php robić strony! smile.gif
Mac
Albo przez np. include("ban_skrypt") na stronę wstawić?
Może być chyba tak nie?
Dzięki!
castor
moze byc!

ale jak juz wspomnialem musisz wstawic to przed wyslanie naglowka.

Nie musisz generowac html przez php jesli tego nie potrzebujesz.

np.:
Kod
<?php

tu jest twoj skrypt lub to include() :D z maglowkiem

?>

<html>

<head>

</head>

<body>  a tu kod html    itd....



<?php

tu moze znowu byc kod php

?>



a tu dalej html



</body>

</html>


a tu masz porade z http://php.faq.pl
do

Cannot add header information - headers already sent by...

Cytat
Oznacza to że przed nagłówkiem wysłano już jakieś dane (np pustą linię przed "<?php" lub coś za pomocą echo, print). Usuń przyczynę błędu lub w php.ini ustaw output_buffering = On
Mac
Już sobie poradziłem "ulepszając" trochę twój skrypt (tzn. dodałem elseif i jeżeli host jest inny niż którakolwieki z lini to włącza stronę dla tych którzy nie mają bana, a jeżeli host zgadza się z banem to włącza stronę dal zbanowanych smile.gif)
Dzięki z pomoc!
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.