Autor | Zpráva | ||
---|---|---|---|
začátečník Profil * |
#1 · Zasláno: 24. 8. 2014, 17:49:22
Dobrý den,
poradil by mi někdo proč uvedený script mi nic nezapisuje do db? <?php session_start(); ob_start(); // cachujeme vystup if(isset($_POST['sent'])){ // pokud byl odeslan formular pokracuj timto $name=$_POST['name']; $adr=$_SERVER["REMOTE_ADDR"]; $datum=date("Y-m-d"); $artist=$_POST['artist']; $cover=$_POST['cover']; $website=$_POST['website']; $year=$_POST['year']; $region=$_POST['region']; $pas=$_POST['pas']; $nick=$user->jmeno ; if($name=="" or $artist=="" or $cover=="" or $website=="" or $year=="" or $region=="" or $pas=""){ // pokud nebylo vyplněno něco z toho, co je povinné, dáme vědět a skript ukončíme echo "Nebylo povinně vyplněno vše!!<br /><br />"; }else{ // povinné udaje vyplněny vsechny require "./settings.php"; // pripojime se k databazi $VlozData=mysql_query("INSERT INTO `user_post`(`name`, `adr`, `datum`, `artist`, `cover`, `website`, `year`, `region`, `pas`, `nick`) VALUES ($name,$adr,$datum,$artist,$cover,$website,$year,$region,$pas,$nick)") or die (mysql_error()); // Vlozim do tabulky hodnoty - prvni je ID - nevyplnim, tvori se samo. // Jako posledni hodnota je "0", to jsou ty prava uzivatele. $backlink="user_post.php"; // presmerovani s hlaskou ze je vse OK } }else{ $backlink='user_files.php'; } // pokud pouzijete HEADER LOCATION tak by pred nim nemelo byt zadne platne ECHO //echo "<a href='index.php'>index</a>"; // samozrejme zde muze byt presmerovani na jinou stranku pomoci header ("Location: $backlink"); ob_end_flush(); ?> Děkuji za radu, jsem začátečník a nedokáži si s tím sám poradit. |
||
Tori Profil |
#2 · Zasláno: 24. 8. 2014, 17:51:41
Do databáze vkládáte řetězce, takže je musíte zapsat do uvozovek:
$sql = "INSERT ... VALUES ('$name', '$adr', '$datum', ...";
|
||
začátečník Profil * |
#3 · Zasláno: 24. 8. 2014, 17:55:31
Ani po této opravě se do db nic nezapsalo.
Přikládám pro jisotu ještě formulář: <form class="f" action="add_user_post.php" method="post"> <fieldset id="user-details"> <label>Alb name / Název alba:</label> <input class="f" type="text" name="name" value="" /> <label>Artist / Interpret:</label> <input class="f" type="text" name="artist" value="" /> <label>Cover / Obal:</label> <input class="f" type="url" name="cover" value="http://" onfocus="if(this.value==this.defaultValue){this.value=''}" onblur="if(this.value==''){this.value=this.defaultValue}" /> <label>Link / Odkaz na stažení:</label> <input class="f" type="url" name="website" value="http://" onfocus="if(this.value==this.defaultValue){this.value=''}" onblur="if(this.value==''){this.value=this.defaultValue}" /> </fieldset> <!--end user-details--> <fieldset id="year"> <label>Year:</label> <select class="f" id="year" name="year"> <option value='0'>...</option> <option value='2005'>2005</option> <option value='2004'>2004</option> <option value='2003'>2003</option> <option value='2002'>2002</option> <option value='2001'>2001</option> </select> <br class="cleared"> <label>České, Slovenské / Czech, Slovak:</label> <input class="f" type="radio" name="region" value="czech"> <label>Zahraniční / Foreign: </label> <input class="f" type="radio" name="region" value="foreign"> <label>Password / Heslo:</label> <input class="f" type="text" name="pas" value="" /> </fieldset> <!--end year--> <fieldset id="user-message"> <label>Tracklist:</label> <textarea name="tracklist" rows="0" cols="0"> </textarea> <input class="f" type="submit" name="send" value="Odeslat / Send" class="submit" /> </fieldset> <!-- end user-message --> </form> |
||
weroro Profil |
začátečník:
Riadok 4 if(isset($_POST['sent'])){ je potrebné zmeniť na if(isset($_POST['send'])){
|
||
začátečník Profil * |
#5 · Zasláno: 24. 8. 2014, 18:01:30
Děkuji, chybička se vloudila :D
|
||
lionel messi Profil |
#6 · Zasláno: 24. 8. 2014, 18:06:45
začátečník:
Ešte doplním: vkladať do db surové neescapované dáta je nebezpečné, treba použiť radšej: $name=mysql_real_escape_string($_POST['name']); $adr=$_SERVER["REMOTE_ADDR"]; $datum=date("Y-m-d"); $artist=mysql_real_escape_string($_POST['artist']); $cover=mysql_real_escape_string($_POST['cover']); $website=mysql_real_escape_string($_POST['website']); $year=mysql_real_escape_string($_POST['year']); $region=mysql_real_escape_string($_POST['region']); $pas=mysql_real_escape_string($_POST['pas']); viď: Obrana proti SQL Injection. Vždy treba očakávať neočakávané. |
||
začátečník Profil * |
#7 · Zasláno: 24. 8. 2014, 18:08:06
lionel messi:
Ano děkuji, doopravím to |
||
Časová prodleva: 10 let
|
0