![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 14.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
Opiszę mój problem jeszcze raz. Próbuję nauczyć się dodawania rekordów do bazy. Nic trudnego ..., ale - nie mogę ich dodać z poziomu WWW. Na początku myślałem, że robię to źle. Poszukałem mnóstwo skryptów na forum: panele administracyjne, pojedyncze kody i nic, zastosowałem kody z książek - nic. Więc zaczęła rodzić się we mnie myśl, że może to z konfiguracją Apache, SQL-a czy czegoś tam (na przykład zły dzień Bila) jest związane - odinstalowałem, zainstalowałem. Też nic.
Wszystko działa niby w porządku z poziomu wiersza poleceń, phpMyAdmin, ale z prostego WWW, dla potencjalnego klienta, nie chce. Teraz przedstawie kod, który tworzy tabelę z pustymi rekordami, nie przekazuje tekstów wpisanych w formularzu. Ten kod powstał przy udziale forumowiczów kilka dni temu. A ja nadal siedzę, zamieniam . ' " - i nic. Może ktoś miał podobny problem, a może to tylko moja niewiedza... Wszelka pomoc pilnie poszukiwana ... [php:1:b2c589d230] <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2"> <title>Add Event</title> </head> <body> <font size="+2"><b>Add Event</b></font><br><br> <?php if ($_POST['action'] == "add") { $host = "localhost"; $user = "janusz"; $haslo = "zywert"; $baza = "phpforflash"; $table = "events"; $id = mysql_connect($host, $user, $haslo); if (!mysql_select_db($baza, $id)) echo mysql_errno($id) . ": " . mysql_error($id). "n"; $query = "INSERT INTO ".$table." (year, month, day, title, event) VALUES ('".$year."', '".$month."', '".$day."', '".$title."', '".$event."')"; if (!$wynik = mysql_query($query)) echo mysql_errno($id) . ": " . mysql_error($id). "n"; } ?> <form action="test.php" METHOD="post"> <table border="1" cellspacing="2" cellpadding="3"> <tr> <td>Date</td> <td><input type="text" name="day" size="50"></td> </tr> <tr> </tr> <td>Month</td> <td><input type="text" name="month" size="50"></td> </tr> <tr></tr> <td>Year</td> <td> <input type="text" name="year" size="50"></td> </tr> <tr> <td>Title</td> <td><input type="text" name="title" size="50"></td> </tr> <tr> <td>Event</td> <td><textarea name="event" cols="50" rows="5"></textarea></td> </tr> <tr> <td colspan="2"> <input type="hidden" name="action" value="add"> <input type="submit" value="WyĹ›lij"> </td> </tr> </table> </form> </body> </html> [/php:1:b2c589d230] |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 853 Pomógł: 25 Dołączył: 27.08.2003 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
wrzuc przed wykonaniem zapytania taka instrukcje :
np. echo"year = $year"; wtedy zobaczysz czy ma w ogole jakas wartosc moze masz register_globals wylaczone? sprobuj zamiast 'normalnych' zmiennych uzyc globalnych tj. zamiast $year to $_POST["year"], zamiast $month $_POST["month"], itp. jakby bylo cos nie tak z konfiguracja to by zapewne wyskakiwal jakis blad. tutaj ewidentnie wyglada, ze zmiennie maja puste wartosci... -------------------- "If debugging is the process of removing bugs, then programming must be the process of putting them in..."
sobstel.org |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 14.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
No tak echo "year = $year" to oczywiście year = ...
Natomiast $_POST["year"] wstawiałem rozmaicie i nic. Jak sprawdzić register_globals jest wyłączone i o czym ono decyduje? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 14.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
No tak - taka prosta sprawa, a tyle godzin zmarnowanych.
Poczatki są beznadziejnie głupie. register_global=On tak trzymac ! |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 853 Pomógł: 25 Dołączył: 27.08.2003 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
ze wzgledow bezpieczenstwa osobiscie polecam jednak uzywac register_globals = off i zmienne w ten sposob $_POST["nazwa_zmiennej"]. sprawsz to w ten sposob dokladnie jeszcze, dziwi mnie ze nie dzialalo...
-------------------- "If debugging is the process of removing bugs, then programming must be the process of putting them in..."
sobstel.org |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 14.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
Tak $_POST["year"] zadziałał na register_global=Off.
A jak to jest na serwerach, czy tam jest dostęp do php.ini i jakie sa ustawienia standartowe? |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 853 Pomógł: 25 Dołączył: 27.08.2003 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
do php.ini zazwyczaj dostepu nie masz. od php 4.2.0 register_globals jest domyslnie wylaczone. zmienne globalne tj $_POST, $_GET i inne dzialaja od wersji 4.1.0 (nawet z wlaczonym register_globals) albo ktorejs wczesniejszej nawet (nie pamietam dokladnie). serwery raczej maja nowsze wersje php, wiec radze pisac od razu z $_POST.
więcej tutaj : [manual:4568fe8fc5]register_globals[/manual:4568fe8fc5] -------------------- "If debugging is the process of removing bugs, then programming must be the process of putting them in..."
sobstel.org |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 14.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
Dziekuje
Wreszcie - po kilku dniach przeklinania stało się :-) Działa |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 09:52 |