Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] pomoc w latwym programie
tuxyrulez
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 9.06.2008

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


zaczalem sie bawic w php jakies 2 tygodnie temu i chcialem stworzyc skrypt dodajacy dane z formularza w html do bazy danych ktora nastepnie wyswietli

formularz:
  1. <form action="action.php" method="post">
  2. Twoje imię: <input type="text" name="imie" />
  3. Data urodzenia: <input type="text" name="rok" />
  4. <input type="submit" />
  5. </form>


i skrypt action.php
  1. <?php
  2. mysql_connect("localhost", "root", "paanynarsou") or die(mysql_error());
  3. mysql_select_db("phpcake") or die(mysql_error());
  4. $query = "INSERT INTO example VALUES('"$_POST['imie']"', $_POST['rok'])";
  5. $put = mysql_query($query );
  6. or die(mysql_error());
  7. ?>

i blad:
Parse error: syntax error, unexpected T_VARIABLE in /var/www/action.php on line 4

z gory dziekuje za pomoc
nie wiem czemu nie laduja mi sie bloki kodowe
Powód edycji: Dodałem tag. /webdicepl
Go to the top of the page
+Quote Post
ShadowD
post
Post #2





Grupa: Zarejestrowani
Postów: 1 333
Pomógł: 137
Dołączył: 25.03.2008
Skąd: jesteś??

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


Nie możesz napisać '"...

  1. <?php
  2. mysql_connect("localhost", "root", "paanynarsou") or die(mysql_error());
  3. mysql_select_db("phpcake") or die(mysql_error());
  4. $query = "INSERT INTO example VALUES(".$_POST['imie'].", ".$_POST['rok'].")";
  5. $put = mysql_query($query );
  6. ?>


// O bbcode nie słyszałeś?
// ~webdicepl


Ten post edytował ShadowD 9.06.2008, 18:59:10
Powód edycji: Dodałem bbcode. /webdicepl


--------------------
Mój blog - o wszystkim i niczym ale zazwyczaj związane z informatyką! ;-)
Githube

Usługi spawalnicze i monterskie | Park linowy Lublin i Okunince
Go to the top of the page
+Quote Post
webdice
post
Post #3


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Proszę o poprawienie tytułu, aktualny nic nie mówi.

P. S. Przenoszę na Przedszkole.
Go to the top of the page
+Quote Post
LonelyKnight
post
Post #4





Grupa: Zarejestrowani
Postów: 240
Pomógł: 13
Dołączył: 1.06.2007
Skąd: Wrocław

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


  1. <?php
  2. $strImie = mysql_escape_string(strip_tags($_POST['imie']));
  3. $strDataUrodzenia = mysql_escape_string(strip_tags($_POST['rok']));
  4. $query = "INSERT INTO `example` VALUES('$strImie', '$strDataUrodzenia')";
  5. ?>


Poczytaj o SQL Injection, XSS.


--------------------
Good programming is 99% sweat and 1% coffee.
Make it idiot proof and someone will make a better idiot...
Go to the top of the page
+Quote Post
mefjiu
post
Post #5





Grupa: Zarejestrowani
Postów: 313
Pomógł: 5
Dołączył: 22.03.2005

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


Powinno być chyba tak
  1. <?php
  2. mysql_connect("localhost", "root", "paanynarsou") or die(mysql_error());
  3. mysql_select_db("phpcake") or die(mysql_error());
  4. $query = "INSERT INTO example VALUES("$_POST[imie]", "$_POST[rok]")";
  5. $put = mysql_query($query );
  6. or die(mysql_error());
  7. ?>


// Kolejny który na forum jest od dłuższego czasu i nie wie że się stosuje bbcode.
// Poprawiam ostatni raz!
// ~webdicepl
Powód edycji: Dodałem bbcode. /webdicepl
Go to the top of the page
+Quote Post
ShadowD
post
Post #6





Grupa: Zarejestrowani
Postów: 1 333
Pomógł: 137
Dołączył: 25.03.2008
Skąd: jesteś??

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


Cytat(mefjiu @ 9.06.2008, 19:43:26 ) *
Powinno być chyba tak
<?php
mysql_connect("localhost", "root", "paanynarsou") or die(mysql_error());
mysql_select_db("phpcake") or die(mysql_error());
$query = "INSERT INTO example VALUES("$_POST[imie]", "$_POST[rok]")";
$put = mysql_query($query );
or die(mysql_error());
?>


To jest na pewno źle!!
Nie możesz pisać:
  1. <?php
  2. $query = "INSERT INTO example VALUES("$_POST[imie]", "$_POST[rok]")";
  3. ?>

bo cudzysłowie się sprzęga!!

Może być tak:
  1. <?php
  2. $query = "INSERT INTO example VALUES(".$_POST[imie].", ".$_POST[rok].")";
  3. ?>


Ten post edytował ShadowD 9.06.2008, 18:48:41


--------------------
Mój blog - o wszystkim i niczym ale zazwyczaj związane z informatyką! ;-)
Githube

Usługi spawalnicze i monterskie | Park linowy Lublin i Okunince
Go to the top of the page
+Quote Post
mefjiu
post
Post #7





Grupa: Zarejestrowani
Postów: 313
Pomógł: 5
Dołączył: 22.03.2005

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


faktycznie pomyliłem o tak:
  1. <?php
  2. $query = 'INSERT INTO example VALUES("$_POST[imie]", "$_POST[rok]")';
  3. ?>
Go to the top of the page
+Quote Post
webdice
post
Post #8


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Cytat(mefjiu @ 9.06.2008, 19:46:56 ) *
faktycznie pomyliłem o tak:
  1. <?php
  2. $query = 'INSERT INTO example VALUES("$_POST[imie]", "$_POST[rok]")';
  3. ?>


Nie, nie może być tak. Stringi muszą być między apostrofami.
Go to the top of the page
+Quote Post
mefjiu
post
Post #9





Grupa: Zarejestrowani
Postów: 313
Pomógł: 5
Dołączył: 22.03.2005

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


Poskładany gotowiec :-)
  1. <?php
  2. mysql_connect("localhost", "root", "paanynarsou") or die(mysql_error());
  3. mysql_select_db("phpcake") or die(mysql_error());
  4.  
  5. $strImie = mysql_escape_string(strip_tags($_POST['imie']));
  6. $strDataUrodzenia = mysql_escape_string(strip_tags($_POST['rok']));
  7.  
  8. $query = "INSERT INTO `example` VALUES(".$strImie.", ".$strDataUrodzenia.")";
  9. $put = mysql_query($query );
  10. or die(mysql_error());
  11. ?>


Ten post edytował mefjiu 9.06.2008, 18:54:26
Go to the top of the page
+Quote Post
webdice
post
Post #10


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Można sobie mówić... Napisałem Ci wyżej że Twoje zapytanie nie zadziała, ponieważ dodawany tekst nie jest w apostrofach. Powinno być tak:

  1. <?php
  2. $query = "INSERT INTO `example` VALUES('".$strImie."', '".$strDataUrodzenia."')";
  3. ?>


Dodatkowo co to za wymysł?

  1. <?php
  2. $put = mysql_query($query );
  3. ?>


Po co dajesz średnik po mysql_query" title="Zobacz w manualu PHP" target="_manual skoro pod spodem masz or die?
Go to the top of the page
+Quote Post
LonelyKnight
post
Post #11





Grupa: Zarejestrowani
Postów: 240
Pomógł: 13
Dołączył: 1.06.2007
Skąd: Wrocław

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


Taka pierda a tyle postów smile.gif a mój to chyba jakiś niewidoczny jest smile.gif

Jeśli " " to tak:

  1. <?php
  2. $query = "INSERT INTO `example` VALUES ( '$strImie', '$strDataUrodzenia' )";
  3. ?>


Po co łączyć dodatkowo stringi i zmniejszać szybkość? Chyba tylko po to żeby ładnie pokolorowało składnię smile.gif


--------------------
Good programming is 99% sweat and 1% coffee.
Make it idiot proof and someone will make a better idiot...
Go to the top of the page
+Quote Post
v1t4n
post
Post #12





Grupa: Zarejestrowani
Postów: 111
Pomógł: 16
Dołączył: 19.02.2005
Skąd: Dębica

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


nie wiem czy to blad czy nie ale ja zawsze uzywam apostrofow - czudzyslow dla mnie nie istnieje:
  1. <?php
  2. $query = 'INSERT INTO `example` VALUES(''. $_POST['imie'] .''''. $_POST['rok'] .'')';
  3. ?>


--------------------
Psik!! A masz!! ...chamie - Porucznik Borewicz
Go to the top of the page
+Quote Post
LonelyKnight
post
Post #13





Grupa: Zarejestrowani
Postów: 240
Pomógł: 13
Dołączył: 1.06.2007
Skąd: Wrocław

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


Zależy co uznajesz za "błąd" ;-)

Jeśli masz coś w pojedynczych ciapkach to parser PHP nie sprawdza czy w podanym stringu znajdują się jakieś zmienne. Jeśli używasz podwójnych to parser analizuje i sprawdza - teoretycznie działa wolniej. Natomiast jeśli łączysz jakieś stringi, tak jak podałeś w tym kodzie wyżej i są one duże, to różnice w czasie zaczynają być zauważalne.


--------------------
Good programming is 99% sweat and 1% coffee.
Make it idiot proof and someone will make a better idiot...
Go to the top of the page
+Quote Post
erix
post
Post #14





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Po co łączyć dodatkowo stringi i zmniejszać szybkość?

Wiesz, przy krótkich ciągach, to różnica mieści się w granicy błedów statystycznych, ale przy dłuższych stringach/większej ilości, czy większym przeciążeniu, to opłaca się łączyć.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 13:00