» Poradna » Web a internet

PHP nezobrazuje user data

 |   |  Microsoft Windows 7 Chrome 34.0.1847.131

Zdravím, předem upozorňuji, že co se týče PHP, jsem naprostý začátečník, proto se taky ptám zde. Googlit jsem zkoušela, ale neúspěšně. Můj problém je následující: Mám funkční template návštěvní knihy a formuláře, který uživateli webu odesílá e-mail od uživatele. Obojí je v PHP. Pro návštěvní knihu je v SQL databázi vytvořená tabulka. Při procesu zapsání do knihy mi PHPko nevyhodí žádný error, ale ve výsledku se mi v návštěvní knize objeví pouze údaje předvyplněné od PHPka (datum) nebo databáze (ID). Údaje od usera (jméno, příspěvek..) jsou prázdné. Zkoušela jsem kontrolovat nastavení proměnných podle tabulky atd. ale chybu jsem nenašla. Zároveň, když vlezu do správy databáze a najdu si ten konrétní záznam v databázi s chybějícími údaji a ručně je v administraci doplním, na webu se mi potom ukáží na správném místě. Konkrétně se na to můžete podívat tady: http://ludekmach.soskolin.eu/guestbookPHP kód zde: <?php$host="localhost"; // Host name $username="ludek.mach"; // Mysql username $password="*****"; // Mysql password $db_name="database"; // Database name $tbl_name="guestbook"; // Table name // Connect to server and select database.mysql_connect("$host", "$username", "$password")or die("cannot connect server "); mysql_select_db("$db_name")or die("cannot select DB"); $datetime=date("y-m-d h:i:s"); //date time $sql="INSERT INTO $tbl_name(name, email, comment, datetime)VALUES('$name', '$email', '$comment', '$datetime')";$result=mysql_query($sql); //check if query successful if($result){echo "Successful";echo "<BR>"; Ukázat celý příspěvek

Odpovědi na otázku

 |   |  Microsoft Windows 7 Firefox 35.0

Nechce se mi to detailně zkoumat, ale vypadá to na chybý INSERT. Jelikož tam nemáš zobrazení chyby, tak se ti (logicky) žádná chyna nezobrazí.Ke všem "mysql_query" si nejdříve doplň "die" a uvidíš.A ještě lépe, při ladění si před "mysql_query" nechej v vypsat ten QSL dotaz, ať vidíš co databázi vlastně posíláš.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Firefox 35.0

Ne "QSL", ale "SQL dotaz".

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 8.1 Chrome 40.0.2214.111

Nevšiml jsem si nikde toho, kde načítáte z POSTu data, která zadal návštěvník, který odeslal formulář.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 34.0.1847.131

K tomu je druhý PHPkový soubor. :) A to následující. <table width="400" border="0" align="center" cellpadding="3" cellspacing="0"><tr><td><strong>View Guestbook | <a href="guestbook.php">Sign Guestbook</a> </strong></td></tr></table><br> <?php $host="localhost"; // Host name $username="ludek.mach"; // Mysql username $password="*****"; // Mysql password $db_name="database"; // Database name $tbl_name="guestbook"; // Table name // Connect to server and select database.mysql_connect("$host", "$username", "$password")or die("cannot connect server "); mysql_select_db("$db_name")or die("cannot select DB");$sql="SELECT * FROM $tbl_name";$result=mysql_query($sql);while($rows=mysql_fetch_array($result)){?> <table width="400" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC"><tr><td><table width="400" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF"><tr><td>ID</td><td>:</td><td><? echo $rows['id']; ?></td></tr><tr><td width="117">Name</td><td width="14">:</td><td width="357"><? echo $rows['name']; ?></td></tr><tr><td>Email</td><td>:</td><td><? Ukázat celý příspěvek

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 8.1 Chrome 40.0.2214.111

Stále neřeší problém, který jsem psal :)

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 34.0.1847.131

V tom případě vůbec nevím. :D

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 8.1 Firefox 35.0

1) Chybí tam dost podstatná věc, a to je formulář (FORM) - bez té se tak nějak ta data, která uživatel zadá, nikam nepošlou2) Chybí tam zachytávání toho formuláře (zpracování $_POST), aby se ta odeslaná data zase zpracovala na něco, s čím se dá pracovat...Až si tyhle věci nastuduješ, zkus to znovu...

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 34.0.1847.131

Díky, mrknu na to. :)

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Firefox 35.0

Jde to všechno řešit jediným souborem (skript se podle vstupních parametrů rozbočí), nebo třemi soubory : 1. formulář editoru (načte editovaný záznam z DB nebo naplní pole formu defaultními hodnotami), data pošle pomocí <form method="post" action="skript_2"> nebo je před odesláním přechroustá javascript (action="" onsubmit="skript", ten přez action nastaví skript_2 a provede return) - třeba šifrování hesel, kontrola vyplnění povinných polí a podobně,2. skript který data čte z $_POST["jmenopole"], provede potřebné úpravy (stripslashes, náhrady různých uvozovek a podobné legrace) a nakonec data uloží do SQL databáze a pokud je vše OK, přez Header("Location:... (což by mělo zabránit uživateli omylem pomocí back tlačítka zopakovat vložení příspěvku, tenhle skript se nezapíše do historie prohlížeče) odešle uživatele na zobrazovací skript 3, případná chybová hlášení se dají poslat přez $_SESSION proměnnou a zpracovat v dalším skriptu3. zobrazovač s případnými odkazy na editaci, přidání odpovědi v diskusi a podobně.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 40.0.2214.115

Také děkuji. :))

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 40.0.2214.115

Dobrý denzřejmě je problém v přenášení údajů které se zadávají do prohlížeče, a které se mají přenést do vaší DTB. Musíte pořádně prostudovat způsob přenášení údajů z webové stránky do databáze. Zdroj je např. zde:http://www.tvorba-webu.cz/php/pocitadlo_navstev.phpa popřípadě zde:http://www.jakpsatweb.cz/html/formulare.html

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 34.0.1847.131

Děkuji. :)

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 IE 11.0

Já bych problém viděl v register globals - na webserveru je to už vypnutý a v kódu se pracuje jen proměnnými nikoliv s polem $_POST. Navíc v kódu chybí jakékoliv ošetření vstupních dat!!!

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Firefox 35.0

Já bych problém viděl v tom, že úplný začátečník přecenil své síly a pokouší se upravovat stažené skripty, kterým vůbec nerozumí. Jestliže se to chce naučit musí postupovat od jednoduchého ke složitějšímu:- tvorba formuláře- zpracování formuláře PHP skriptem- základy databáze- cvičné pokusy na databázi: alespoň select a insert- zkombinování formuláře a databáze- odeslání vytáhnutách dat na email (toto už je z toho to nejjednodušší)

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows XP Firefox 35.0

die (chyba DB!)

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 40.0.2214.115

Petře, však to jsem tu psala. Vím, že je to nad moje síly a ano, právě proto se ptám. Snažím se někomu pomoci a vzhledem k tomu, že jde o časový press, nemohu se PHP učit od začátku a právě proto jsem přistoupila k šabloně. PHP mám v plánu se naučit a je snad jasné, že v takovém případě budu postupovat od základů, ostatně tak, jako to vyžaduje jakékoliv jiné učení. :) Takže děkuji za kousavou radu, ale toto mi bylo jasné předem. Mimochodem, děkuji všem přispívajícím za cenné rady, oba problémy jsem už vyřešila.

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: Thank You, Naprostý začátečník


Určitě si přečtěte

Velká datová loupež. Proč mají disky nižší kapacitu, než uvádějí?

Velká datová loupež. Proč mají disky nižší kapacitu, než uvádějí?

** Na disk nikdy neuložíte tolik dat, jak tvrdí výrobce ** Ajťáci si vymysleli vlastní jednotky jako mebibajt ** Zmatky vznikají i kvůli různým výjimkám

Lukáš Václavík | 110

Podívejte se na Windows z roku 1990. Před 30 lety přišly Windows 3.0 a líbily se nám

Podívejte se na Windows z roku 1990. Před 30 lety přišly Windows 3.0 a líbily se nám

** 22. května 1990 uvedl Microsoft Windows 3.0 ** Systém z Microsoftu definitivně udělal lídra na desktopu ** Tehdejší Windows byly vlastně grafickou nadstavbou nad MS-DOS

Jakub Čížek | 75

Čím nahradit Total Commander: 11 správců souborů nejen pro profíky

Čím nahradit Total Commander: 11 správců souborů nejen pro profíky

** Total Commander je fernomén mezi správci souborů ** Našli jsme 11 povedených alternativ ** Zvládnou to samé a ke všemu jsou většinou zadarmo

Karel Kilián | 87

Je lepší hrát na PC, či na konzolích? Nebo jsou i jiné možnosti?

Je lepší hrát na PC, či na konzolích? Nebo jsou i jiné možnosti?

** Jaké jsou výhody a nevýhody hraní na počítači? ** Co mají společného a v čem se liší Xbox One, PS4 a Switch? ** Na čem hrát, když nemáte výkonné PC ani konzoli?

Lukáš Václavík | 122


Aktuální číslo časopisu Computer

Megatest: nejlepší notebooky do 20 000 Kč

Test 8 levných IP kamer

Jak vybrat bezdrátová sluchátka

Testujeme Android 11