Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] pomoc w latwym programie
Forum PHP.pl > Forum > Przedszkole
tuxyrulez
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
ShadowD
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
webdice
Proszę o poprawienie tytułu, aktualny nic nie mówi.

P. S. Przenoszę na Przedszkole.
LonelyKnight
  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.
mefjiu
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
ShadowD
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. ?>
mefjiu
faktycznie pomyliłem o tak:
  1. <?php
  2. $query = 'INSERT INTO example VALUES("$_POST[imie]", "$_POST[rok]")';
  3. ?>
webdice
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.
mefjiu
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. ?>
webdice
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?
LonelyKnight
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
v1t4n
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. ?>
LonelyKnight
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.
erix
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ć.
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.