| 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: 12 let
|
|||
0