Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: przekazywanie danych - problem
Forum PHP.pl > Forum > PHP
zuro
witam mam taki problem,
robie ksiege gosci i chce zeby obok autora i wpiu byl jeszcze numerek IP autora danego wpisu. I nie moge dojsc jak obok danych z formularza przekazac jeszcze zmienna z adresem IP ;(
sivyer
Ksiega gosci bedzie oparta o pliki txt czy baze? W sumie bez wiekszej roznicy, przy wypelnianiu formularza mozesz dodac pole typu "hidden":
[php:1:5767a7d9a3]
<input type="hidden" name="ip" value="<?=$_SERVER['REMOTE_ADDR']?>">
[/php:1:5767a7d9a3]
i po przeslaniu tego formularza bedziesz mial dostepna zmienna $_POST['ip'] (albo $_GET['ip'] w zaleznosci ktora metoda bedzie przesylany formularz).

Teraz wystarczy tylko to IP dodac albo do odpowiedniego pola w bazie danych przy danym wpisie, albo jako kolejny kawalek wpisu w pliku txt.
adwol
Cytat
Ksiega gosci bedzie oparta o pliki txt czy baze? W sumie bez wiekszej roznicy, przy wypelnianiu formularza mozesz dodac pole typu "hidden":
[php:1:cbd697f460]
<input type="hidden" name="ip" value="<?=$_SERVER['REMOTE_ADDR']?>">
[/php:1:cbd697f460]
i po przeslaniu tego formularza bedziesz mial dostepna zmienna $_POST['ip'] (albo $_GET['ip'] w zaleznosci ktora metoda bedzie przesylany formularz).

Łoo rany! A po co wsadzać ten IP-ik w hiddenie? Chyba tylko po to żeby można go było łatwiej sfałszować. Przecież skrypt odbierający dane też ma go dostępnego więc można go wyciągnąć bezpośrednio podczas zapisywania danych od klienta w księdze.
zuro
Zrobilem tak:
1. Przekazalem z formularza dane do pliku add.php i wyglada on tak:

[php:1:7734c1d3c0]<?php
<?
$url="http://localhost/guest";
$base="data.php";
$date=date("d-m-Y");
$data="$nick*|*$email*|*$gg*|*$www*|*$tekst*|*$date*|*$_POST['ip']";
$data=eregi_replace("n", "<br>", $data);
$data="$datan";
$f=fopen($base, a);
flock($f, 2);
fputs($f, $data);
flock($f, 3);
fclose($f);
echo "Wpis został dodany...<br><a href=$url>Pokaż wpisy</a>";
echo "<br>Dodano wpis z tego IP: ";
print($_POST['ip']);
?>
?>
?>[/php:1:7734c1d3c0]

2. Nastepnie do pliku index.php dodalem plik guest.php ktory wyglada tak:

[php:1:7734c1d3c0]<?php
<?
$base="guest/data.php";
$table=file($base);
$max=count($table);
echo "<center><H1>Księga Gości</H1></center><br><br>";
echo "<p align=right><a href=guest/form.htm>dodaj wpis</a></p>";
for ($i=0; $i<$max; $i++) {
$data=explode ("*|*", $table[$i]);
echo "<b>Dodano:</b> $data[5]<br><b>Autor:</b> <a href=mailto:$data[1]>$data[0]<br></a><b>Gadu gadu:</b>$data[2] <br><b>Strona www: </b><a href=$data[3]>$data[3]</a><br><br><b>Wpis: </b>$data[4]<br><hr size=1>";
}
echo "<p align=right><a href=guest/form.htm>dodaj wpis</a></p>";
?>
?>[/php:1:7734c1d3c0]

Ale wkoncu jak wyswietlam juz wpisy to wszystko mam oprocz tego nieszczesnego IP i nei wiem gdzie blad robie sad.gif please o pomoc smile.gif
?>[/php]
Nitro
[php:1:7e3ab57599]$data="$nick*|*$email*|*$gg*|*$www*|*$tekst*|*$date*|*$_SERVER['REMOTE_ADDR']";[/php:1:7e3ab57599]
Jak pisał adawol, nie potrzebujesz przekazywać IP poprzez pole hidden.
zuro
dzieki, ale mam ejszcze jeden problemik, w pliku guset.php ktory wypisuje wpisy nie wypisuje mi IP podaje kod pliku:

[php:1:fd8823bbc1]<?php
<?
$base="guest/data.php";
$table=file($base);
$max=count($table);
echo "<center><H1>Księga Gości</H1></center><br><br>";
echo "<p align=right><a href=guest/form.htm>dodaj wpis</a></p>";
for ($i=0; $i<$max; $i++) {
$data=explode ("*|*", $table[$i]);
echo "<b>Dodano:</b> $data[5]<br><b>Autor:</b> <a href=mailto:$data[1]>$data[0]<br></a><b>Gadu gadu:</b>$data[2] <br><b>Miejscowosc</b>$data[6]<br><b>IP: </b>$data[7]<b>Strona www: </b><a href=$data[3]>$data[3]</a><br><br><b>Wpis: </b>$data[4]<br><hr size=1>";
}
echo "<p align=right><a href=guest/form.htm>dodaj wpis</a></p>";
?>
?>[/php:1:fd8823bbc1]
zuro
wg pliku add.php
[php:1:26778a302f]<?php
$data="$nick*|*$email*|*$gg*|*$www*|*$tekst*|*$date*|*$_SERVER['REMOTE_ADDR']";
?>[/php:1:26778a302f]
wnosikuje ze $data[7] to adres IP, $data[6] to data dodania wpisu itd. dobrze kapuje czy cos nie tak smile.gif hehe questionmark.gif
Nitro
Źle. Zaczynasz od 0, czyli:
data[0] = nick
...
data[5] = czas
data[6] = ip
zuro
ok wzystko dziala ale jak dam do IP $data[6] to nic nie wypisuje, to chyba gdzieindziej jest blad w innym miejscu
Nitro
A do pliku zapisuje Ci nr IP poprawnie?
zuro
nie, nie zapisuej IP wogole, ale wypisuje mi dobry IP przy komunikacie ze wpis zostal dodany
zuro
[php:1:5ad0bc76f3]<?php
$data="$nick*|*$email*|*$gg*|*$www*|*$tekst*|*$date*|*$_SERVER['REMOTE_ADDR']";
?>[/php:1:5ad0bc76f3] tu cos musi byc zle, bo zapisuje wszystko oprocz ostatniego, czyli IP
Nitro
Pokaż plik odpowiedzialny za zapisywanie danych do pliku.
zuro
[php:1:793575e460]<?php
<?
$url="http://www.kubajablonski.com/ksieggga/guest/index.php";
$base="data.php";
$date=date("d-m-Y");
$data="$nick*|*$email*|*$gg*|*$www*|*$tekst*|*$date*|*$_SERVER['REMOTE_ADDR']";
$data=eregi_replace("n", "<br>", $data);
$data="$datan";
$f=fopen($base, a);
flock($f, 2);
fputs($f, $data);
flock($f, 3);
fclose($f);
echo "Wpis został dodany...<br><a href=$url>Pokaż wpisy</a>";
echo "<br>Dodano wpis z tego IP: ";
//print($_POST['ip']);
print($_SERVER['REMOTE_ADDR']);
?>
?>[/php:1:793575e460]
Nitro
[php:1:5b66b8c20e]$data="$nick*|*$email*|*$gg*|*$www*|*$tekst*|*$date*|*$_SERVER[REMOTE_ADDR]";[/php:1:5b66b8c20e]
Tak powinna wyglądać ta linia i wtedy IP jest zapisywany do pliku:
*|**|**|**|**|*04-09-2003*|*127.0.0.1
zuro
Nitro wielkie dzieki za cierpliwosc, juz wszystko dziala super !!! jeszcze raz wielkie dzieki, ale poczatki zawsze sa trudne smile.gif
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.