Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> Przyscisk
neo.priv
post
Post #1





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 27.02.2004

Ostrzeżenie: (10%)
X----


Mam dość proste pytanie:
w jaki sposób odwoałć sie do przycisku typu
Kod
submit
w instrukcji
Kod
if
tak aby wiedzieć czy użytkownik kliknął w przycisk czy nie.

Czy można tak?

[php:1:702ca33277]<?php
<FORM method="POST" name="rejestruj" action="login.php">
Imie:&nbsp;<INPUT TYPE="TEXT" name="imie" align="left" size="10" maxlength="32">
</FORM>
");
if ($_POST[imie] = "imie")
{
echo "on";
}
else
{
echo "off";
}
?>[/php:1:702ca33277]

lub

[php:1:702ca33277]<?php
if ($opcja = $imie)
{
echo "on";
}
else
{
echo "off";
}
?>[/php:1:702ca33277]

Za długo przed kompem i wszystko sie miesza (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
bamboos
post
Post #2





Grupa: Zarejestrowani
Postów: 115
Pomógł: 0
Dołączył: 3.05.2003
Skąd: Łódź

Ostrzeżenie: (0%)
-----


W ten sposób chyba najprościej:
[php:1:e635994b34]<?php
//Przycisk:
echo '<form action="plik.php" method="post">
<input type="submit" name="submit" value="naciśnij mnie" />
</form>';
?>[/php:1:e635994b34]
plik.php:
[php:1:e635994b34]<?php
if($_POST['submit'] == 'naciśnij mnie')
{
//przycisk został naciśnięty
}
else
{
//nie
}
?>[/php:1:e635994b34]
Go to the top of the page
+Quote Post
Yarecki
post
Post #3





Grupa: Zarejestrowani
Postów: 166
Pomógł: 0
Dołączył: 1.04.2004
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


Ja uzywam:
[php:1:e4f3ca6d80]
<?php
if( isset( $_POST['button'] ) )
{
//Nacisniety...
}
?>
[/php:1:e4f3ca6d80]

Z tego co wiem to najpierw powinno sprawdzac sie czy zmienna wogule istnieje, a dopiero pozniej sprawdzac jej zawartosc, a w przypadku przycisku jej zawartosc nas nie obchodzi.
Go to the top of the page
+Quote Post
neo.priv
post
Post #4





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 27.02.2004

Ostrzeżenie: (10%)
X----


Dlugo sie zastanawiałem co w mojej aplikacji nie dziala, a okazuje sie ze wypróbowaniu sposobu Yarecki (który działa i nie mam na celu w jakimkolwiek stopniu tego negowac) u mnie to nie działa.

Okazjue sie ze po nociśnieciu przycisku wyślij, dane w tablicy
[php:1:7384000230]<?php
$_POST[]
?>[/php:1:7384000230]

sa puste.

[php:1:7384000230]<?php
if( isset( $_POST['wyslij'] ) )
{
$DB = new DB;
$DB->sql("insert into rejestracja_konto (login, haslo, email) values ('$login', '$key', '$_POST[email]')");
}
else
{
echo "Błąd!!!";

};

?>[/php:1:7384000230]

Dlaczego tak sie dzieje? Moze ktoś ma na to jakiś sposób, prosze o pomoc?[/b]
Go to the top of the page
+Quote Post
Yarecki
post
Post #5





Grupa: Zarejestrowani
Postów: 166
Pomógł: 0
Dołączył: 1.04.2004
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


To działa czy nie bo trochę dziwnie to napisales :-)
Spróbuj tak:
[php:1:294b1a3bf4]
<?php
$DB->sql("insert into rejestracja_konto(login, haslo, email) values('$login', '$key', '".$_POST['email']."')");
?>
[/php:1:294b1a3bf4]
Go to the top of the page
+Quote Post
mr_therion
post
Post #6





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 25.11.2003

Ostrzeżenie: (0%)
-----


A jak wyglada reszta formularza, moze to błąd w zapisie, przeanalizuj czy masz dobrze powstawiane "" i ' ', bo nie wiem gdzie te dane mogłyby się zagubić po wysłaniu, albo prześlij reszte formularza, tak jak wygląda i co go obsługuje...
Go to the top of the page
+Quote Post
post
Post #7





Grupa:
Postów: 0
Pomógł:
Dołączył: --

Ostrzeżenie: (0%)
-----


Cytat
To działa czy nie bo trochę dziwnie to napisales :-)
Spróbuj tak:
[php:1:f59045bf89]
<?php
$DB->sql("insert into rejestracja_konto(login, haslo, email) values('$login', '$key', '".$_POST['email']."')");
?>
[/php:1:f59045bf89]


Napisałem ze sa puste wiec logiczne ze nie działa, powinienem to wprost napisać.

Reszta danych jest wyświetlana bo mam coś w rodzaju przypomnienia podanych podczas rejestracji danych, oto kod:

[php:1:f59045bf89]<?php
echo " <br>Zostałeś zarejestrowany<br><br>
Twoje dane:<br><br>
Login: ".$_POST[login]."<br>
Hasło: ".$_POST[haslo]."<br><br>

?>[/php:1:f59045bf89]

Jak widac jest tu zmienna
Kod
$_POST[login]

i jest wyswietlana, wszystko działa do momętu wciśnięcia przycisku
Kod
wyślij


Do bazy danych sostaja wysłane puste wartości.

Tak to sie dzieje, troche to dziwne, co o tym sądzicie?

Kod jest wpożadku, wszystko działa, debuger nic nie wykrywa.
Go to the top of the page
+Quote Post
evo
post
Post #8





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 4.02.2003

Ostrzeżenie: (0%)
-----


Cytat
To działa czy nie bo trochę dziwnie to napisales :-)
Spróbuj tak:
[php:1:eb4e497394]
<?php
$DB->sql("insert into rejestracja_konto(login, haslo, email) values('$login', '$key', '".$_POST['email']."')");
?>
[/php:1:eb4e497394]


Dajcie mi adres serwisu ktory uzywa ten kod?


(IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)


Proponuje lektur o SQL injections oraz zaprzestanie podawania bezposrednio do SQL danych odebranych z przegladarki!



Pozdrawiam
evo
Go to the top of the page
+Quote Post
neo.priv
post
Post #9





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 27.02.2004

Ostrzeżenie: (10%)
X----


Sluchaj evo mamy tu problem i myślimy nad rozwiazaniem, laskawie powstrzymaj sie od komentarzy typu

Dajcie mi adres serwisu ktory uzywa ten kod?

Przeczytałes wogóle ci wczesniej napisałem?

Polecam uwżniejsze czytanie.

P.S

Przepraszam mam zly chumro.
Go to the top of the page
+Quote Post
evo
post
Post #10





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 4.02.2003

Ostrzeżenie: (0%)
-----


nie czytalem bo moja wypowiedz tyczy sie do tego kodu ktory przytoczylem w cytacie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

...i nie uwazam by moj komentarz o SQL Injections byl az taki tu zbedny bo wy budujecie serwisy ktore ktos wam rozwali i wy bedziecie sie glowic jak to moglo sie stac wiec lepiej od poczatku uczyc sie pisac bezpiecznie!



Pozdrawaim
evo
Go to the top of the page
+Quote Post
cboot
post
Post #11





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 2.02.2004

Ostrzeżenie: (0%)
-----


@neo.priv
1. Daj cały formularz.
2. Czy w ogóle udaje się jakiekolwiek zapytanie do bazy danych? Może jest coś nie tak z podpięciem do bazy?

@evo
Cytat
Dajcie mi adres serwisu ktory uzywa ten kod?


(IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)


Proponuje lektur o SQL injections oraz zaprzestanie podawania bezposrednio do SQL danych odebranych z przegladarki!

Hmm... to powiedzmy podaj przykład sql injection dla tego zapytania, biorąc pod uwagę oczywiście, że na tym serwerze jest ustawione magic_quotes_gpc :?:
Go to the top of the page
+Quote Post
Zbłąkany
post
Post #12


Administrator serwera


Grupa: Developerzy
Postów: 521
Pomógł: 13
Dołączył: 2.04.2004
Skąd: 52°24' N 16°56' E

Ostrzeżenie: (0%)
-----


Sprawdz czy serwer ma wlaczone register_globals na on (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) probujesz sie odwolac z globali odwolac a jesli one sa wylaczone to nie uda ci sie to (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
neo.priv
post
Post #13





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 27.02.2004

Ostrzeżenie: (10%)
X----


Tak do pozostałych tablel wszystko jest dodawane bez problemu, podejżewam ze przyczyna tkiw w przycisku "wyślij"

Oto kod rejestracja:

[php:1:b92b75b639]<?php
$arrLocale = array( "pl_PL", "polish_pol" );
setlocale( LC_ALL, $arrLocale);
require_once('timer.php');
require_once('lib3.php');
echo "
<body bgcolor="#ffffff" topmargin="0" leftmargin="0">
<div align="center">
<!--LOGO-->
<table border="0" width="600" cellspacing="0" cellpadding="0">
<tr>
<td width="100%">
<p><img border="0" src="../no.gif" width="600" height="60"></td>
</tr>
</table>

<!--NAPIS-->
<table border="0" width="600" cellspacing="0" cellpadding="0">
<tr>
<td width="100%" bgcolor="#FFCC00"><b><font face="Verdana" size="2" color="#000000">Zakładanie konta</font></b></td>
</tr>
</table>
<br>

<!--TABELKA-->
<form method="post" action="pokarz_rejestracja.php" name="rejestracja">
<table align="center" border="0" width="300" cellspacing="3" cellpadding="3">
<tr align="left">
<td><br><b>Użytkownik</b></td>
</tr>
<tr align="left">
<td width="120">
<font face="Verdana" size="2">Login:</font></td>
<td>
<input type="text" name="login" size="15"></td>
</tr>
<tr align="left">
<td>
<font face="Verdana" size="2">Hasło:</font></td>
<td>
<input type="password" name="haslo" size="15"></td>
</tr>
<tr align="left">
<td>
<font face="Verdana" size="2">Potwierdzenie:</font></td>
<td>
<input type="password" name="potwierdzenie" size="15"></td>
</tr>

</table>

<!--TABELKA 2-->

<table align="center" border="0" width="300" cellspacing="3" cellpadding="3">
<tr align="left">
<td><br><b>Dane osobowe</b><br><br></td>
</tr>
<tr align="left">
<td width="120">
<font face="Verdana" size="2">Imię</font></td>
<td>
<input type="text" name="imie" size="15"></td>
</tr>
<tr align="left">
<td>
<font face="Verdana" size="2">Nazwisko</font></td>
<td>
<input type="text" name="nazwisko" size="15"></td>
</tr>
<tr align="left">
<td>
<font face="Verdana" size="2">Adres</font></td>
<td>
<input type="text" name="ul" size="15"></td>
</tr>
<tr align="left">
<td>
<font face="Verdana" size="2">nr. domu</font></td>
<td>
<input type="nrdomu" name="nrdomu" size="15"></td>
</tr>
<tr align="left">
<td>
<font face="Verdana" size="2">nr. mieszkania</font></td>
<td>
<input type="text" name="nrmieszkania" size="15"></td>
</tr>
<tr align="left">
<td >
<font face="Verdana" size="2">Kod pocztowy</font></td>
<td>
<input type="text" maxlength="2" name="kod1" size="1">-<input type="text" maxlength="3" name="kod2" size="1"></td>
</tr>
<tr align="left">
<td>
<font face="Verdana" size="2">Województwo</font></td>
<td>
<input type="text" name="wojewodztwo" size="15"></td>
</tr>
<tr align="left">
<td>
<font face="Verdana" size="2">Miejscowość</font></td>
<td>
<input type="text" name="miejscowosc" size="15"></td>
</tr>
<tr align="left">
<td>
<font face="Verdana" size="2">NIP</font></td>
<td>
<input type="text" name="nip" size="23"></td>
</tr>
<tr align="left">
<td>
<font face="Verdana" size="2">Pesel</font></td>
<td>
<input type="text" name="pesel" size="15"></td>
</tr>
<tr align="left">
<td>
<font face="Verdana" size="2">e-mail</font></td>
<td>
<input type="text" name="email" size="23"></td>
</tr>
</table>
<br>
<!--TABELKA 3-->

Masz firme?&nbsp;tak&nbsp;<input type="checkbox" name="check" value="on"
onClick="document.rejestracja.submit()"".($_POST['check'] == "on" ? " checked" :
"")."><br>";

if ($_POST[check]=="on") {
echo "
<table align="center" border="0" width="300" cellspacing="3" cellpadding="3">
<tr align="left">
<td><br><b>Firma</b><br><br></td>
</tr>
<tr align="left">
<td>
<font face="Verdana" size="2">Nazwa</font>
<input type="text" name="nazwa" size="15"></td>
</tr>
<tr align="left">
<td>
<font face="Verdana" size="2">Adres
<input type="text" name="adres" size="15"></td>
</tr>
<tr align="left">
<td>
<font face="Verdana" size="2">nr. domu</font>
<input type="text" name="nrdomu1" size="5">
<font face="Verdana" size="2">nr. mieszkania</font>
<input type="text" name="nrmieszkania1" size="15"></td>
</tr>
<tr align="left">
<td >
<font face="Verdana" size="2">Kod pocztowy</font>
<input type="text" maxlength="2" name="kod3" size="1">-<input type="text" maxlength="3" name="kod4" size="1"></td>
</tr>
<tr>
<td>
<font face="Verdana" size="2">Województwo</font>
<input type="text" name="wojewodztwo1" size="15"></td>
</tr>
<tr align="left">
<td>
<font face="Verdana" size="2">Miejscowość</font>
<input type="text" name="miejscowosc1" size="15"></td>
</tr>
<tr align="left">
<td>
<font face="Verdana" size="2">Regon</font>
<input type="text" name="regon" size="15"></td>
</tr>
<tr align="left">
<td>
<font face="Verdana" size="2">e-mail</font>
<input type="text" name="email2" size="15"></td>
</tr>
<tr align="left">
<td>
<font face="Verdana" size="2">tel</font>
<input type="text" name="tel" size="15"></td>
</tr>
</table>
";};
echo "
<p align="center"><input type="reset" value="Wyczyść" name="B1" style="font-family: Verdana; font-size: 8pt">
<input type="submit" value="Załóż konto" name="B2" style="font-family: Verdana; font-size: 8pt"></p>
</form>
<p align="center">&nbsp;</p>
</div>
</form>
</body>";

?>[/php:1:b92b75b639]

Kod pokarz_rejestracja:
[php:1:b92b75b639]<?php
require_once('lib3.php');

/*
* Uruchamiam wadlitor
*/
//$check = new Validator ();
/* Sprawdzenie poprawności wpisanych danych */

//if (!$check->is_email($_POST[email])) { echo "Nieprawidłowy e-mailn";};
//if (!$check->strip_letters($_POST[login])) { echo "Nieprawidłowy loginn";};
echo " <br>Zostałeś zarejestrowany<br><br>
Twoje dane:<br><br>
Login: ".$_POST[login]."<br>
Hasło: ".$_POST[haslo]."<br><br>
Imię: ".$_POST[imie]."<br>
Nazwisko: ".$_POST[nazwisko]."<br>
Adres: ".$_POST[ul]."&nbsp;&nbsp;".$_POST[nrdomu]."&nbsp;&nbsp;".$_POST[numermieszkania]."<br>
Kod pocztowy: ".$_POST[kod1]."-".$_POST[kod2]."<br>
Wojewodztwo: ".$_POST[wojewodztwo]."<br>
Miejscowość: ".$_POST[miejscowosc]."<br>
NIP: ".$_POST[nip]."<br>
Pesel: ".$_POST[pesel]."<br>
e-mail: ".$_POST[email]."<br><br>";

if ($_POST[check]=="on") {
echo "
Nazwa: ".$_POST[nazwa]."<br>
Adres: ".$_POST[ul1]."&nbsp;&nbsp;".$_POST[nrdomu1]."&nbsp;&nbsp;".$_POST[numermieszkania1]."<br>
Kod pocztowy: ".$_POST[kod3]."-".$_POST[kod4]."<br>
Wojewodztwo: ".$_POST[wojewodztwo1]."<br>
Miejscowość: ".$_POST[miejscowosc1]."<br>
Regon: ".$_POST[rgon]."<br>
e-mail: ".$_POST[email2]."<br><br>
telefon: ".$_POST[tel]."<br>";
};
echo "<form method="post" action="pokarz_rejestracja.php">
<input type="submit" name="wstecz" value="wstecz" onClick=history.back()>
<input type="submit" name="wyslij" value="wyślij">
";
$login = $_POST[login];
$key = md5 ($_POST[haslo]);
if( isset( $_POST['wyslij'] ) )
{
$DB = new DB;
$DB->sql("insert into rejestracja_konto (login, haslo, email) values ('$login', '$key', '$_POST[email]')");
$DB->sql("insert into rejestracja_osobiste (imie, nazwisko, ul, nr_domu, nr_mieszkania, kod_pocztowy, miejscowosc, wojewodztwo, NIP, pesel)
values ('$_POST[imie]', '$_POST[nazwisko]', '$_POST[ul]', '$_POST[nrdomu]', '$_POST[nrmieszkania]', '$_POST[kod1]-$_POST[kod2]',
'$_POST[miejscowosc]', '$_POST[wojewodztwo]', '$_POST[nip]', '$_POST[pesel]')");
$DB->sql("insert into rejestracja_firmy (nazwa, regon, email, tel, ul, nr_domu, nr_mieszkania, kod_pocztowy, wojewodztwo,miejscowosc) values ('$_POST[nazwa]', '$_POST[regon]', '$_POST[email2]', '$_POST[tel]',
'$_POST[ul1]', '$_POST[nrdomu1]', '$_POST[nrmieszkania1]', '$_POST[kod3]-$_POST[kod4]',
'$_POST[miejscowosc1]', '$_POST[wojewodztwo1]')");


}
else
{
echo "Błąd!!!<br>
$login, $key";
};

?>[/php:1:b92b75b639]

I kod klasy obslugujacej polaczenie:
[php:1:b92b75b639]<?php
setlocale (LC_ALL,"pl_PL");
class DB
{
var $link;
var $sql;

function DB() {
$this->link = mysql_connect('serwer', 'login', 'haslo')
or die('Nie można się połączyć: <br>' . mysql_error());
print ('Połączenie nawiązane<br>');
if (mysql_select_db('baza')) { echo "Wybrano baze:<br>"; }
else { echo "Bląd wyboru bazy<br>"; };
}

function sql($sql)
{

mysql_query($sql, $this->link);

}

function close() {
mysql_close($this->link);
}
};

?>[/php:1:b92b75b639]

To wszystko co napisałem, nic iecej nie mam.
Go to the top of the page
+Quote Post
evo
post
Post #14





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 4.02.2003

Ostrzeżenie: (0%)
-----


Cytat
Hmm... to powiedzmy podaj przykład sql injection dla tego zapytania, biorąc pod uwagę oczywiście, że na tym serwerze jest ustawione magic_quotes_gpc :?:


przykladow jest tyle ile jestes w stanie wymyslec (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Zaczynajac od banalnych kasowan tabelek a konczac na dodaniu usera ktorzy moga sie laczyc z baza z innych hostow!

Wiec nie licz na magic_quotes_gpc bo jest wiele zapytan w ktorych mozna sie obejesc bez ' " czy (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)


Pozdrawiam
evo
Go to the top of the page
+Quote Post
cboot
post
Post #15





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 2.02.2004

Ostrzeżenie: (0%)
-----


@Zbłąkany
Ale on się odwołuje przez tablicę: $_POST[imie], więc register_globals może być off.

@evo
Cytat
przykladow jest tyle ile jestes w stanie wymyslec

To podaj choć jeden :wink:
On ujał zmienną z POST w zapytaniu w apostrofy, więc wszystko co wrzucisz do tej zmiennej będzie traktowane jako łańcuch tekstowy, a że nie możesz użyć ' ani ", to nigdy z tego łańcucha nie wyjdziesz i nie będziesz mógł wstrzyknąć nic do zapytania SQL.
Go to the top of the page
+Quote Post
neo.priv
post
Post #16





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 27.02.2004

Ostrzeżenie: (10%)
X----


Tak mam rejestr globals off, w taki wypadku jak mam sie inaczej odwolac?

Dziwne pokazuje dane wpisane do formularza podczas w pliku pokarz_formularz.php a zapisujac je do bazy danych nie widzi $_POST[login], $_POST[haslo].

Mam tylko puste pola w baize danych.
Go to the top of the page
+Quote Post
Zbłąkany
post
Post #17


Administrator serwera


Grupa: Developerzy
Postów: 521
Pomógł: 13
Dołączył: 2.04.2004
Skąd: 52°24' N 16°56' E

Ostrzeżenie: (0%)
-----


Sprobuj wlaczyc register globals jesli nie pomoze ja bym sie odwolywal do zmienych $_POST[imie] inaczej sprobuj dokleic index tablicy np w taki sposob $_POST['imie'] ale przed tym czym zaczniesz mieszac w kodzie sprawdz te globale (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
neo.priv
post
Post #18





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 27.02.2004

Ostrzeżenie: (10%)
X----


register_globals = Off

tak jest off, dobra zoczacze czy zadziała twoja rada Zbłąkany (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Zbłąkany
post
Post #19


Administrator serwera


Grupa: Developerzy
Postów: 521
Pomógł: 13
Dołączył: 2.04.2004
Skąd: 52°24' N 16°56' E

Ostrzeżenie: (0%)
-----


Z reszta w manualu jest napisane ze $_POST to tablica super globalna 8)
Go to the top of the page
+Quote Post
cboot
post
Post #20





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 2.02.2004

Ostrzeżenie: (0%)
-----


Zbłakany nie siej fermentu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) $_POST jest zawsze globalna, register_globals nie ma na to żadnego wpływu. Poczytaj sobie tutaj
Oczywiście lepiej jest pisać $_POST['imie'] niż $_POST[imie], ale w tej sytuacji i tak i tak zadziała tak samo. Więc zupełnie nie tu błąd.

Aha.. i tak przy okazji to pisze się pokaż, a nie pokarz (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) (to do neo.priv)
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.09.2025 - 17:26