[php] formularz pomocy

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
fizyk
Posty: 16
Rejestracja: sob maja 07, 2005 8:56 am
Lokalizacja: radom

[php] formularz pomocy

Post autor: fizyk »

Wiatm, nie moge sobie poradzić ze skryptem, mam baze danych, chcialem wstawić do niej dane przy użyciu formularza, ale mi nie wychodzi, wyświetla formularz, dane wklepuje, klikam wyslij, aon powraca do formularza, nie wiem w czym problem, pomóżcie..
oto kod:
// <?

if ($nazwa && $opis && $ulica && $miasto && $kod && $telefon && $dzial) {

mysql_connect ("localhost", "uzytkownik", "haslo") or
die ("Nie można połączyć się z MySQL");
mysql_select_db ("nazwa bazy danych") or
die ("Nie można połączyć się z bazą");
$query = "INSERT INTO wedd (nazwa, opis, ulica, miasto, kod, telefon, dzial) VALUES ('$nazwa', '$opis', '$ulica',
'$miasto', '$kod', '$telefon', '$dzial');";
$wynik = mysql_query ($query);
print "<H3>Dziękujemy</H3>Dziękujemy za zgłoszenie. Dane zostaną ".
"dołączone do serwisu po zaakceptowaniu przez administratora.";

} else {
print "<H3>Dodaj własna firmę</H3>";

print "<FORM METHOD=post ><B>Nazwa firmy</B><BR>";

print "<INPUT TYPE=\"text\" NAME=\"nazwa\" VALUE=\"$nazwa\" ";
print "SIZE=60><BR> ";

print "<B>Opis firmy: </b><BR><textarea NAME=\"opis\" ";
print "rows=2 COLS=60>$opis</TEXTAREA><br>" ;


print "<B>Ulica</B><BR><INPUT TYPE=\"text\" ";
print "NAME=\"ulica\" VALUE=\"$ulica\" SIZE=30><BR>";
print "<B>Kod</B><BR><INPUT TYPE=\"text\" ";
print "NAME=\"kod\" VALUE=\"$kod\" SIZE=7><BR>";
print "<B>Telefon</B><BR><INPUT TYPE=\"text\" ";
print "NAME=\"telefon\" VALUE=\"$telefon\" SIZE=20><BR>";

print "<B>miasto</B><BR><INPUT TYPE=\"text\" ";
print "NAME=\"miasto\" VALUE=\"$miasto\" SIZE=25><BR>";

print "<B>dzial</B><BR><SELECT NAME=\"dzial\" VALUE=\"$dzial\" >";

echo "<OPTION>Lokale</OPTION>";
echo "<OPTION>Moda dla Pań</OPTION>";
echo "<OPTION>Moda dla Panów</OPTION>";
echo "<OPTION>Fotograf</OPTION>";
echo "<OPTION>Wideo</OPTION>";
echo "<OPTION>Fryzjer</OPTION>";
echo "<OPTION>Kwiaty</OPTION>";
echo "<OPTION>Auto</OPTION>";
echo "<OPTION>Uroda</OPTION>";
echo "<OPTION>Zespoły</OPTION>";
echo "<OPTION>Catering</OPTION>";
echo "<OPTION>Jubilerzy</OPTION>";
echo "<OPTION>Dekoracje</OPTION>";
echo "<OPTION>Cukiernie</OPTION>";
echo "<OPTION>Podróże</OPTION>";


echo "</select><br>";


print "<INPUT TYPE=\"submit\" VALUE=\"Wyślij\">";

print "</FORM>";
}
?>


czy tam trzeba coś konfigurować, dane do bazy moge dodac, poleceniem insert
bez formularzy, a z formularzami nie dziabie i juz, jak mozecie pomozcie z gory dzieki... :roll:
FanFataL
Nowy
Nowy
Posty: 113
Rejestracja: pn lut 28, 2005 1:33 am
Lokalizacja: Kraków / Katowice / Bydgoszcz
Kontakt:

Re: [php] formularz pomocy

Post autor: FanFataL »

<FORM METHOD=post >
nie masz parametru action=""

Daj na początku skryptu [manual]error_reporting[/manual](E_ALL); i jak wyskoczy błąd to powinno sie wszystko wyjaśnić.
I zamiast zmiennych globalnych używaj lepiej predefiniowanych tablic ;] $_POST['ulica'];

Pozdrawiam :wink:
...
fizyk
Posty: 16
Rejestracja: sob maja 07, 2005 8:56 am
Lokalizacja: radom

dzieki

Post autor: fizyk »

dzięki śliczne popróbuje
fizyk
Posty: 16
Rejestracja: sob maja 07, 2005 8:56 am
Lokalizacja: radom

pytanko

Post autor: fizyk »

spróbowałem, ale nic nie działa, nic się nie pokazuje
Jeśli mógłbyś mi poprawić ten kod będę wdzięczny:

<?

error_reporting(E_ALL);

if ($nazwa && $opis && $ulica && $miasto && $kod && $telefon && $dzial) {

mysql_connect ("localhost", "nazwa", "haslo") or
die ("Nie można połączyć się z MySQL");
mysql_select_db ("xxx") or
die ("Nie można połączyć się z bazą");
$query = "INSERT INTO nazwa (nazwa, opis, ulica, miasto, kod, telefon, dzial) VALUES ('$nazwa', '$opis', '$ulica',
'$miasto', '$kod', '$telefon', '$dzial');";
$wynik = mysql_query ($query);
print "<H3>Dziękujemy</H3>Dziękujemy za zgłoszenie. Dane zostaną ".
"dołączone do serwisu po zaakceptowaniu przez administratora.";

} else { // Wyświetlenie formularza
print "<H3>Dodaj własna firmę</H3>";

print "<FORM METHOD=post Action="http://www.slub.radom.pl/index.php"><B>Nazwa firmy</B><BR>";

print "<INPUT TYPE=\"text\" NAME=\"nazwa\" VALUE=\"$nazwa\" ";
print "SIZE=60><BR> ";

print "<B>Opis firmy: </b><BR><textarea NAME=\"opis\" ";
print "rows=2 COLS=60>$opis</TEXTAREA><br>" ;


print "<B>Ulica</B><BR><INPUT TYPE=\"text\" ";
print "NAME=\"ulica\" VALUE=\"$ulica\" SIZE=30><BR>";
print "<B>Kod</B><BR><INPUT TYPE=\"text\" ";
print "NAME=\"kod\" VALUE=\"$kod\" SIZE=7><BR>";
print "<B>Telefon</B><BR><INPUT TYPE=\"text\" ";
print "NAME=\"telefon\" VALUE=\"$telefon\" SIZE=20><BR>";

print "<B>miasto</B><BR><INPUT TYPE=\"text\" ";
print "NAME=\"miasto\" VALUE=\"$miasto\" SIZE=25><BR>";

print "<B>dzial</B><BR><SELECT NAME=\"dzial\" VALUE=\"$dzial\" >";

echo "<OPTION>Lokale</OPTION>";
echo "<OPTION>Moda dla Pań</OPTION>";
echo "<OPTION>Moda dla Panów</OPTION>";
echo "<OPTION>Fotograf</OPTION>";
echo "<OPTION>Wideo</OPTION>";
echo "<OPTION>Fryzjer</OPTION>";
echo "<OPTION>Kwiaty</OPTION>";
echo "<OPTION>Auto</OPTION>";
echo "<OPTION>Uroda</OPTION>";
echo "<OPTION>Zespoły</OPTION>";
echo "<OPTION>Catering</OPTION>";
echo "<OPTION>Jubilerzy</OPTION>";
echo "<OPTION>Dekoracje</OPTION>";
echo "<OPTION>Cukiernie</OPTION>";
echo "<OPTION>Podróże</OPTION>";


echo "</select><br>";


print "<INPUT TYPE=\"submit\" VALUE=\"Wyślij\">";

print "</FORM>";
}
?>
Asit
Zaczyna działać
Zaczyna działać
Posty: 402
Rejestracja: ndz lis 28, 2004 9:17 pm
Kontakt:

Re: [php] formularz pomocy

Post autor: Asit »

nie wczytywalem sie dokladnie ale wedlug mnie jak wysylasz cos z formularza metoda POST to potem pole 'nazwa' bedzie odbierana przez $_POST['nazwa'] a nie $nazwa.
fizyk
Posty: 16
Rejestracja: sob maja 07, 2005 8:56 am
Lokalizacja: radom

nie działa

Post autor: fizyk »

słuchajcie nie działa, wykonałem dwa pliki jeden z formularzem, drugi ma wyswietlić tylko dane na stronie,

pierwszy:
<HTML>
<HEAD>
</HEAD>
<BODY>

<FORM ACTION="formik.php" METHOD=GET><B>Nazwa </B><BR>

<INPUT TYPE="Text" NAME="nazwa">

<INPUT TYPE="SUBMIT" VALUE="Wyslij">

</FORM>
</BODY>
</HTML>


drugi

<HTML>
<HEAD></HEAD>
<BODY>

<?
error_reporting(E_ALL);

if ($nazwa) {

print "twoja nazwa $nazwa";
}
else {
print "dane nie zostały przesłane";

}

?>
</BODY>
</HTML>

Formularz się wyświetla, wpisuje dane przechodzi do drugiego pliku i
wyświetla "dane nie zostały przesłane": dlaczego?, co źle robię?
pomóżcie, napiszcie poprawki czy co? będę wdzięczny, a z tym post to nie wiem o co chodzi..
fizyk
Posty: 16
Rejestracja: sob maja 07, 2005 8:56 am
Lokalizacja: radom

jeszcze raz

Post autor: fizyk »

słuchajcie, a trzeba jakies inne skrypty dorzucać na konto, żeby formularze działały w php, na dysku mam php i wszystko mi działa, natomiast jak wrzucam skrypty najprostsze na serwer, który obsługuje php skrypty nie działają, wartości zmiennych nie sa przekazywane. jak juz wpisze dane do bazy danych to sa puste wartości.. co tu zrobić...
Stig
Administrator
Posty: 938
Rejestracja: pn paź 04, 2004 10:52 am

Re: [php] formularz pomocy

Post autor: Stig »

Możliwe, że zmienne globalne są wyłączone. Przeczytaj uważnie poprzednie posty :twisted:.
FanFataL
Nowy
Nowy
Posty: 113
Rejestracja: pn lut 28, 2005 1:33 am
Lokalizacja: Kraków / Katowice / Bydgoszcz
Kontakt:

Re: [php] formularz pomocy

Post autor: FanFataL »

index.php

Kod: Zaznacz cały

<html>
<head></head>
<body>
<form action="form.php" method="post">
Wpisz swoje imie: <input type="text" name="name" /><br />
<input type="submit" value="Dalej" />
</form>
</body>
</html>
form.php
[php]<?php
error_reporting(E_ALL);
if(isset($_POST['name'])) {
echo 'Twoje imie to: '.$_POST['name'];
}
else {
echo 'FAILED !!';
}
?>[/php]

Poczytaj sobie to: http://pl.php.net/manual/pl/language.va ... ternal.php

Pozdrawiam :wink:
...
fizyk
Posty: 16
Rejestracja: sob maja 07, 2005 8:56 am
Lokalizacja: radom

dzięki

Post autor: fizyk »

pomogliscie mi dzieki, działa, teraz muszę to przerobić żeby działało z bazą danych, apropo jak włączyc zmienne globalne, abym mógł w przyszłości korzystać z takich metod jak wyżej..

dzięki :-D
Stig
Administrator
Posty: 938
Rejestracja: pn paź 04, 2004 10:52 am

Re: [php] formularz pomocy

Post autor: Stig »

Nie poleca się włączania zmiennych globalnych. Ale jak już bardzo chcesz to w php.ini musisz zmienić wartość "register_globals" na "on".
ODPOWIEDZ