Problém se zápisem – MySQL – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Problém se zápisem – MySQL – Fórum – Programujte.comProblém se zápisem – MySQL – Fórum – Programujte.com

 

cenda5850
Duch
30. 8. 2016   #1
-
0
-

Dobrý den,

mám problém... Odesílám přes POST data do tabulky... kod mam nejspíš dobře, celé to proběhne a vypíše mi to že se zapsaly potřebná data, ale v tabulce je již nevidím.

$vlozeni="INSERT INTO uzivatele(ID_USER,nick,heslo,opravneni) VALUES ('NULL','$nick','$heslo','$opravneni')";
$zapisto=mysql_query($vlozeni);

Nevíte co s tím? Budu rád za každou pomoc.

Děkuji.

Nahlásit jako SPAM
IP: 213.168.181.–
Kit+15
Guru
30. 8. 2016   #2
-
0
-

#1 cenda585
NULL nesmí být v apostrofech.

Nejlépe však uděláš, když ze závorek vyhodíš sloupec ID_USER i NULL.

Zahoď mysql_query(), v PHP7 už nefunguje. Nauč se používat PDO, ať to nemáš děravé.

Nahlásit jako SPAM
IP: 194.228.13.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
cenda5850
Duch
30. 8. 2016   #3
-
0
-

#2 Kit
Ahoj, díky za radu.

Ale mě spíš jde o to že mi to nezapisuje do databáze... Ale když si nasázím ručně v php my admin data do db a snažím si je zavolat tak mi to vypisuje....

Nahlásit jako SPAM
IP: 213.168.181.–
Kit+15
Guru
30. 8. 2016   #4
-
+1
-
Zajímavé

#3 cenda585
Opravil sis to podle mého návodu? 

$vlozeni = "INSERT INTO uzivatele (nick, heslo, opravneni) VALUES ('$nick', '$heslo', '$opravneni')";
Nahlásit jako SPAM
IP: 194.228.13.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
cenda5850
Duch
30. 8. 2016   #5
-
0
-

#4 Kit
Opravil a díky zapisuje to konečně :) Fakt supr :) Ale nalezl jsem problém že ikdyž to přes post posílám jako type password tak mi to v db figuruje jen jako normalni text... Nevíš co s tím?

Nahlásit jako SPAM
IP: 213.168.181.–
Kit+15
Guru
30. 8. 2016   #6
-
+1
-
Zajímavé

#5 cenda585
Musíš to heslo před uložením do databáze zašifrovat.

Nezapomeň si ošetřit SQL Injection, které tam máš. Jinak ti tu databázi rozbourá kdejaký pocestný.

Také se nauč číst chyby, které ti ta databáze hlásí. Když je budeš ignorovat jako nyní, tak se stále budeš divit, že ti něco nefunguje.

Nahlásit jako SPAM
IP: 194.228.13.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
cenda5850
Duch
30. 8. 2016   #7
-
0
-

#6 Kit
Ok, děkuji za pomoc moc mi to pomohlo :)

Nahlásit jako SPAM
IP: 213.168.181.–
peter
~ Anonymní uživatel
4014 příspěvků
31. 8. 2016   #8
-
+1
-
Zajímavé

<input type=password> je normalni textovy input, ktery jen zobrazuje hvezdicky. Obcas byva na strankach zaskrtavatko Zobrazit heslo, ktere meni type na text, aby se zobrazilo heslo bez hvezdicek, coz je uzitecne, kdyz treba mas preplou anglickou/ceskou klavesnici nebo caps-lock. Formular to odesila jako nesifrovany text.
Cili, https pred logovaci strankou by melo celou komunikaci zasifrovat a problem vyresit.

Nahlásit jako SPAM
IP: 2001:718:2601:26c:b975:f6...–
peter
~ Anonymní uživatel
4014 příspěvků
31. 8. 2016   #9
-
+1
-
Zajímavé

Teda, jako, nevyresi to ukladani hesla do db. To si delas sam. Jenom zasifruje prenos hesla, aby ho nemohl precist hacker, pokud odchytava wifi signal z tveho pc nebo u serveru.

Nahlásit jako SPAM
IP: 2001:718:2601:26c:b975:f6...–
cenda5850
Duch
31. 8. 2016   #10
-
0
-

#9 peter
Diky :) vyřešil jsem to takto:

$vlozeni="INSERT INTO uzivatele(nick,heslo,opravneni) VALUES ('$nick',PASSWORD('$heslo'),'$opravneni')";

Nahlásit jako SPAM
IP: 213.168.181.–
Kit+15
Guru
31. 8. 2016   #11
-
0
-

#10 cenda585
To není zrovna ideální řešení. Představ si situaci, že si databáze loguje prováděné SQL dotazy. To heslo se v logu normálně zobrazí.

A jako vždy: Máš v tom SQL Injection.

Nahlásit jako SPAM
IP: 194.228.13.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
cenda5850
Duch
1. 9. 2016   #12
-
0
-

#11 Kit
Ahoj, díky :) ale nějak nechci tam vymýšlet zbytečné fintičky. Musím to hlavně obhájit ve škole. Ale narazil sem pro změnu opět na další problém...

Zapisuji neshody a opět mi proběhne skript a opět to nezapíše... Mohl bych poprosit o pomoc?

$datum=$_POST['Datum'];
$vyroba=$_POST['Vyroba'];
$kusy=$_POST['Pocet_neshod'];
$duvod=$_POST['Duvod'];
$serizovac=$_POST['Serizovac'] ;
$obsluha=$_POST['Obsluha'];
$zavineno=$_POST['Zavineno'];
$opzach=$_POST['Operace_zachyceni'];
$strojzach=$_POST['Stroj_zachyceni'];
$opvznik=$_POST['Operace_vzniku'];
$strvznik=$_POST['Stroj_vzniku'];
$hlaseni=$_POST['Hlaseni'];
$rozmer=$_POST['Rozmer'];
$vypor=$_POST['Vyporadani'];
$kontr=$_POST['Kontrolor'];
$smena=$_POST['Smena'];


$zapis = "INSERT INTO kniha (Datum,Vyroba,Pocet_neshod,Duvod,Serizovac,Obsluha,Zavineno,Operace_zachyceni,Stroj_zachyceni,Operace_vzniku,Stroj_vzniku,Hlaseni,Rozmer,Vyporadani,Kontrolor,Smena) VALUES('.$datum.','.$vyroba.','.$kusy.','.$duvod.','.$serizovac.','.$obsluha.','.$zavineno.','.$opzach.','.$strojzach.','.$opvznik.','.$strvznik.','.$hlaseni.','.$rozmer.','.$vypor.','.$kontr.','.$smena.')";
$zapisto=mysql_query($zapis); 

Nahlásit jako SPAM
IP: 213.168.181.–
Kit+15
Guru
2. 9. 2016   #13
-
0
-

#12 cenda585
Dej za to tyto řádky: 

if ($errno = mysql_errno()) {
    echo $errno . ": " . mysql_error();
}
Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:cde6:...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
peter
~ Anonymní uživatel
4014 příspěvků
2. 9. 2016   #14
-
0
-

1. osetreni chyb a zbaveni se tech prepisu
foreach ($_POST as $key=>$value) {$$key = preg_replace("/[^a-zA-Z0-9]+/", "", $value);
2. nebo bych to nechal v tom poli a jen si z toho vyfiltroval ve spravnem poradi, co potrebuji 

$rows = 'Datum,Vyroba,Pocet_neshod,Duvod,Serizovac,Obsluha,Zavineno,Operace_zachyceni,Stroj_zachyceni,Operace_vzniku,Stroj_vzniku,Hlaseni,Rozmer,Vyporadani,Kontrolor,Smena'; // ve spravnem poradi pro INSERT
$rows_arr = explode(',',$rows);
$data = array();
foreach ($rows_arr as $key)
  {
  $str = isset($_POST[$key]) ? $_POST[$key] : ''; // jestli existuje v POST
  $str = preg_replace("/[^a-zA-Z0-9]+/", "", $str); // ochrana, odstraneni znaku
  $str = mysql_real_escape_string($str); // ochrana, konverze pro sql
  $data[$key] = "'".$str."'"; // pridani apostrofu pro sql
  }

$query  = "INSERT INTO kniha (".$rows.") VALUES(".implode('',$data).")";
$result = mysql_query($query); 
Nahlásit jako SPAM
IP: 2001:718:2601:26c:4192:ab...–
peter
~ Anonymní uživatel
4014 příspěvků
2. 9. 2016   #15
-
0
-

Nebo, jak pise Kit, dej si tam vypsat chybu
$result = mysql_query($query) or die(mysql_error());

Urcite v tom zapise mas chybu, apostrov, jmeno slopce a pod, kdyz to nic neuklada. mysql_error() ti vypise chybu posledniho sql dotazu. echo $query ti zas pivyse cely dotaz a muzes ho pak zkopirovat a pouzit treba v phpmyadminovi, ten ti vypise taky chybu.

Nahlásit jako SPAM
IP: 2001:718:2601:26c:4192:ab...–
peter
~ Anonymní uživatel
4014 příspěvků
2. 9. 2016   #16
-
0
-

ups, ne $rows, ale cols je to anglicky :) jako columns, sloupce tabulky
 

Nahlásit jako SPAM
IP: 2001:718:2601:26c:4192:ab...–
Kit+15
Guru
2. 9. 2016   #17
-
0
-

#15 peter
Už jsem skoro zapomněl, že nějaký die() existuje. Také řešení.

Nahlásit jako SPAM
IP: 194.228.13.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 13 hostů

Podobná vlákna

Problém se zápisem fopen — založil ProTom

Problém se zápisem Xml v C# — založil Petr.Hribal

Problemy se zapisem do db — založil silent

Problémy se zápisem do db — založil kropac

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý