Autor Zpráva
havran99
Profil
Dobrý deň, zapisujem IP adresy do suboru takto:
<form method="post" action="./zpracovat.php" accept-charset="utf-8"> 
<table> 
<tr> 
<td>IP:</td> 
<td><input type="text" name="ip" size="20" maxlength="15"></td> 
</tr>  
</table> 
<br> 
<input type="submit" value="Uložit IP">  
</form>
<br> 
<body bgcolor="#FFFFFF" text="#000000">
<font face="Arial CE, Arial" size="2">
<?php
$data = file ("./news.txt");
for ($i = 0; $i < Count ($data); $i++) echo "$data[$i]<br>";
?>
</font>

zpracovat.php:
<?php
$ip = htmlspecialchars($_POST["ip"]);
$fp = FOpen ("./news.txt", "a");
$ip = $ip."\n";
FPutS( $fp, $ip);
FClose($fp);
header("location: ./vip.php");
?>

toto všetko mi ide, ale potrebujem ešte porovnať IP adresu či uz tam nieje taka istá a aby mi ju nezapisalo, ďalej potrebujem spraviť aj výmaz IP adries cez tlacitko ale toto už neviem, budem rád ak mi niekto pomôže. Ďakujem.
peta
Profil
Forum Prace zakazky se zabyva tematem udelejte za mne.

for ($i = 0; $i < Count ($data); $i++) echo "$data[$i]<br>";
Ten to vypise, ze jo? Takze stejnym cyklem s pomoci if lze porovnat $data[$i] se stringem. Vyhledavani vyreseno.
Smazani by se melo pak asi vyresit pres unset($data[$i]), bez cyklu. (ale to jsem teda nikdy nezkousel, teoreticky by to melo ulozit spravne).
Tori
Profil
Případně když už ten soubor s IP adresami načítáte jako pole, tak můžete vyhledat zadanou IP funkcí array_search. To vám vrátí klíč (tj. číslo řádku), podle toho to smažete. Na přepsání souboru po smazání IP bych použila implode($data) + file_put_contents.
havran99
Profil
Som len začiatočník v tomto smere, tak sa nehnevajte na mňa, pomáham si ako môžem a kedže si už z tým neviem rady, tak som sa prišiel o radu opýtať sem. Ak by mohol niekto polopate vysvetliť čo mám kde pridať budem rád. Ďakujem.
havran99
Profil
tak pokúšam sa pridať to overovanie ale akosi mi to nejde:
<?php
$ip = htmlspecialchars($_POST["ip"]);
$data = file ("./news.txt");
for ($i = 0; $i < Count ($data); $i++)
{
if ($data[$i][1] == $ip)
{
echo "uz je";
}
else
{
$fp = FOpen ("./news.txt", "a");
echo $fp;
$ip = $ip."\n";
FPutS( $fp, $ip);
FClose($fp);
header("location: ./vip.php");
}
}
?>
Tori
Profil
Funkce file vrací jednotlivé řádky včetně znaků pro zalomení řádku (tady \n), odstraníte je na ř.6 např. funkcí trim. Při nalezení můžete použít break;, aby se už zbytečně neprocházel zbytek souboru. Htmlspecialchars na ř.1 je asi zbytečné.
havran99
Profil
nejde mi to, stale mozem pridat tu istu ip.

<?php
$ip = $_POST["ip"];
$data = file ("./news.txt");
for ($i = 0; $i < Count ($data); $i++)
{
$trimed = trim($data[$i], "\n");
if ($trimed[1] == $ip)
{
echo "uz je";
break;
}
}
$fp = FOpen ("./news.txt", "a");
echo $fp;
$ip = $ip."\n";
FPutS( $fp, $ip);
FClose($fp);
header("location: ./hm.php");
?>
Tori
Profil
Proč na ř.7 porovnáváte IP s druhým znakem té uložené ($trimed[1])? imho by stačilo ty dva řádky spojit: if (trim($data[$i]) == $ip){
havran99
Profil
Tak overovanie už som poriešil, ďakujem, ešte my ostáva ten výmaz ip adries.
OK mam už vyriešené aj výmaz ip.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0