RuiAlmeida20 Posted February 16, 2014 at 08:37 AM Report #545446 Posted February 16, 2014 at 08:37 AM Boas, criei este código para um sistema de noticias que eu ando a desenvolver mas sempre que vou inserir a noticia aparece a mensagem de erro "Ocorreu um erro ao adicionar a noticia!" que é quando falha a inserir na mysql.. (Mesmo que eu insira os dados correctos etc..) Alguem me sabe dizer o que está e erro no código? <?php require('config.php'); if (!empty($_POST['submit'])) { $err = array(); if(!$_POST['titulo']) $err[] = "Os campos tem de ser todos prenchidos!!"; if(!$_POST['conteudo']) $err[] = "Os campos tem de ser todos prenchidos!!"; if(!$_POST['autor']) $err[] = "Os campos tem de ser todos prenchidos!!"; if(!count($err)) { $_POST['titulo'] = mysql_real_escape_string($_POST['titulo']); $_POST['categoria'] = mysql_real_escape_string($_POST['categoria']); $_POST['conteudo'] = mysql_real_escape_string($_POST['conteudo']); $_POST['show_new'] = mysql_real_escape_string($_POST['show_new']); $_POST['autor'] = mysql_real_escape_string($_POST['autor']); mysql_query("INSERT INTO web_news(title, text1, cat_id, autor, show_new) VALUES ('".$_POST['titulo']."', '".$_POST['conteudo']."', '".$_POST['categoria']."', '".$_POST['autor']."', '".$_POST['show_new']."', NOW())"); if(mysql_affected_rows($link)==1) { $_SESSION['msg']['success'] = "<div class='sucess'>Noticia adicionada com sucesso!"; header("Location: admin.php?action=shownews"); } else $err[] = "Ocorreu um erro ao adicionar a noticia!"; } if(count($err)) { $_SESSION['msg']['err'] = implode('<br />',$err); } } ?> <html> <head> <link rel="stylesheet" href="./minified/themes/default.min.css" type="text/css" media="all" /> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <script src="./minified/jquery.sceditor.bbcode.min.js"></script> <script> // Source: http://www.backalleycoder.com/2011/03/20/link-tag-css-stylesheet-load-event/ var loadCSS = function(url, callback){ var link = document.createElement('link'); link.type = 'text/css'; link.rel = 'stylesheet'; link.href = url; link.id = 'modern'; document.getElementsByTagName('head')[0].appendChild(link); var img = document.createElement('img'); img.onerror = function(){ if(callback) callback(link); } img.src = url; } $(document).ready(function() { var initEditor = function() { $("textarea").sceditor({ plugins: "xhtml", style: "./minified/jquery.sceditor.default.min.css" }); }; $("#theme").change(function() { var theme = "./minified/themes/modern.min.css"; $("textarea").sceditor("instance").destroy(); $("link:first").remove(); $("#theme-style").remove(); loadCSS(theme, initEditor); }); initEditor(); }); </script> </head> <body> <div id="addnewsbox"> <form method="post" name="addnews" action=""> <?php if($_SESSION['msg']['err']) { echo '<div class="err">'.$_SESSION['msg']['err'].'</div>'; unset($_SESSION['msg']['err']); } if($_SESSION['msg']['sucess']) { echo''.$_SESSION['msg']['sucess'].'</div>'; unset($_SESSION['msg']['sucess']); } ?> Titulo<font color="red">*</font>:<br/> <input name="titulo" id="titulo" type="text"></input> Categoria<font color="red">*</font>: </br><select name='categoria' id='categoria'> <option selected>.:: Escolhe uma Categoria ::.</option> <? $query="select * from web_news_cat order by id_cat"; $rows = mysql_query($query); while($row = mysql_fetch_array($rows)){ $id_cat = $row['id_cat']; $name_cat = $row['name_cat']; ?> <option value="<?echo $id_cat; ?>"><?= $name_cat; ?></option> <?}?> </select><br/> Conteúdo<font color="red">*</font>: <textarea name="conteudo" id="conteudo" style="height:300px;width:600px;"></textarea> Mostrar noticia<font color="red">*</font>: </br><select name='show_new' id='show_new'><option selected value="1">Sim</option><option value="0">Não</option></select><br/> Autor <font color="red">*</font>: <br/><input name="autor" id="autor" type="text"></input> <button class="btnsub" type="submit" value="addnews" name="submit">Adicionar noticia</button> </form> </div> </body> </html> <?php ?>
Devexz Posted February 16, 2014 at 11:33 AM Report #545452 Posted February 16, 2014 at 11:33 AM Troca a linha da tua query com isto e diz o output: mysql_query("tua query") OR die(mysql_error()); Além do mais o erro é facil de descubrir, na query do insert primeiro metes 5 campos mas depois metes para inserir 6 campos. Contador de calorias: caloriaspordia.com
RuiAlmeida20 Posted February 16, 2014 at 12:37 PM Author Report #545457 Posted February 16, 2014 at 12:37 PM resolvi isso, mas não continua na mesma, e não me aperece nenhum erro com a função "mysql_error();" Código: <?php require('config.php'); if (!empty($_POST['submit'])) { $err = array(); if(!$_POST['titulo']) $err[] = "Os campos tem de ser todos prenchidos!!"; if(!$_POST['conteudo']) $err[] = "Os campos tem de ser todos prenchidos!!"; if(!$_POST['autor']) $err[] = "Os campos tem de ser todos prenchidos!!"; if(!count($err)) { $_POST['titulo'] = mysql_real_escape_string($_POST['titulo']); $_POST['categoria'] = mysql_real_escape_string($_POST['categoria']); $_POST['conteudo'] = mysql_real_escape_string($_POST['conteudo']); $_POST['show_new'] = mysql_real_escape_string($_POST['show_new']); $_POST['autor'] = mysql_real_escape_string($_POST['autor']); mysql_query("INSERT INTO web_news(title, text1, cat_id, autor, show_new) VALUES ('".$_POST['titulo']."', '".$_POST['conteudo']."', '".$_POST['categoria']."', '".$_POST['autor']."', '".$_POST['show_new']."')") OR die(mysql_error()); if(mysql_affected_rows($link)==1) { $_SESSION['msg']['success'] = "<div class='sucess'>Noticia adicionada com sucesso!"; header("Location: admin.php?action=shownews"); } else $err[] = "Ocorreu um erro ao adicionar a noticia!"; } if(count($err)) { $_SESSION['msg']['err'] = implode($err); } } ?> <html> <head> <link rel="stylesheet" href="./minified/themes/default.min.css" type="text/css" media="all" /> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <script src="./minified/jquery.sceditor.bbcode.min.js"></script> <script> // Source: http://www.backalleycoder.com/2011/03/20/link-tag-css-stylesheet-load-event/ var loadCSS = function(url, callback){ var link = document.createElement('link'); link.type = 'text/css'; link.rel = 'stylesheet'; link.href = url; link.id = 'modern'; document.getElementsByTagName('head')[0].appendChild(link); var img = document.createElement('img'); img.onerror = function(){ if(callback) callback(link); } img.src = url; } $(document).ready(function() { var initEditor = function() { $("textarea").sceditor({ plugins: "xhtml", style: "./minified/jquery.sceditor.default.min.css" }); }; $("#theme").change(function() { var theme = "./minified/themes/modern.min.css"; $("textarea").sceditor("instance").destroy(); $("link:first").remove(); $("#theme-style").remove(); loadCSS(theme, initEditor); }); initEditor(); }); </script> </head> <body> <div id="addnewsbox"> <form method="post" name="addnews" action=""> <?php if($_SESSION['msg']['err']) { echo '<div class="err">'.$_SESSION['msg']['err'].'</div>'; unset($_SESSION['msg']['err']); } if($_SESSION['msg']['sucess']) { echo''.$_SESSION['msg']['sucess'].'</div>'; unset($_SESSION['msg']['sucess']); } ?> Titulo<font color="red">*</font>:<br/> <input name="titulo" id="titulo" type="text"></input> Categoria<font color="red">*</font>: </br><select name='categoria' id='categoria'> <option selected>.:: Escolhe uma Categoria ::.</option> <? $query="select * from web_news_cat order by id_cat"; $rows = mysql_query($query); while($row = mysql_fetch_array($rows)){ $id_cat = $row['id_cat']; $name_cat = $row['name_cat']; ?> <option value="<?echo $id_cat; ?>"><?= $name_cat; ?></option> <?}?> </select><br/> Conteúdo<font color="red">*</font>: <textarea name="conteudo" id="conteudo" style="height:300px;width:600px;"></textarea> Mostrar noticia<font color="red">*</font>: </br><select name='show_new' id='show_new'><option selected value="1">Sim</option><option value="0">Não</option></select><br/> Autor <font color="red">*</font>: <br/><input name="autor" id="autor" type="text"></input> <button class="btnsub" type="submit" value="addnews" name="submit">Adicionar noticia</button> </form> </div> </body> </html> <?php ?>
Devexz Posted February 16, 2014 at 04:07 PM Report #545479 Posted February 16, 2014 at 04:07 PM tens a ligação da base de dados feita como deve ser? experimenta fazer ouput do sql que é gerado e faz a query directamente na bd para ver se dá erro. Contador de calorias: caloriaspordia.com
RuiAlmeida20 Posted February 16, 2014 at 04:49 PM Author Report #545483 Posted February 16, 2014 at 04:49 PM (edited) Consegui resolver o erro colocando o código assim.. Código: <?php require('config.php'); if (!empty($_POST['submit'])) { $err = array(); if(!$_POST['titulo']) $err[] = "Os campos tem de ser todos prenchidos!!"; if(!$_POST['conteudo']) $err[] = "Os campos tem de ser todos prenchidos!!"; if(!$_POST['autor']) $err[] = "Os campos tem de ser todos prenchidos!!"; if($_POST['categoria'] == 0) $err[] = "Escolhe uma categoria!"; if(!count($err)) { $_POST['titulo'] = mysql_real_escape_string($_POST['titulo']); $_POST['categoria'] = mysql_real_escape_string($_POST['categoria']); $_POST['conteudo'] = mysql_real_escape_string($_POST['conteudo']); $_POST['show_new'] = mysql_real_escape_string($_POST['show_new']); $_POST['autor'] = mysql_real_escape_string($_POST['autor']); $link = mysql_query("INSERT INTO web_news(title, text1, cat_id, autor, show_new) VALUES ('".$_POST['titulo']."', '".$_POST['conteudo']."', '".$_POST['categoria']."', '".$_POST['autor']."', '".$_POST['show_new']."')") OR die(mysql_error()); if(!mysql_affected_rows($link)==1) { $_SESSION['msg']['success'] = "<div class='sucess'>Noticia adicionada com sucesso!"; header("Location: admin.php?action=shownews"); } else $err[] = "Ocorreu um erro ao adicionar a noticia!"; } if(count($err)) { $_SESSION['msg']['err'] = implode($err); } } ?> <html> <head> <link rel="stylesheet" href="./minified/themes/default.min.css" type="text/css" media="all" /> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <script src="./minified/jquery.sceditor.bbcode.min.js"></script> <script> // Source: http://www.backalleycoder.com/2011/03/20/link-tag-css-stylesheet-load-event/ var loadCSS = function(url, callback){ var link = document.createElement('link'); link.type = 'text/css'; link.rel = 'stylesheet'; link.href = url; link.id = 'modern'; document.getElementsByTagName('head')[0].appendChild(link); var img = document.createElement('img'); img.onerror = function(){ if(callback) callback(link); } img.src = url; } $(document).ready(function() { var initEditor = function() { $("textarea").sceditor({ plugins: "xhtml", style: "./minified/jquery.sceditor.default.min.css" }); }; $("#theme").change(function() { var theme = "./minified/themes/modern.min.css"; $("textarea").sceditor("instance").destroy(); $("link:first").remove(); $("#theme-style").remove(); loadCSS(theme, initEditor); }); initEditor(); }); </script> </head> <body> <div id="addnewsbox"> <form method="post" name="addnews" action=""> <?php if($_SESSION['msg']['err']) { echo '<div class="err">'.$_SESSION['msg']['err'].'</div>'; unset($_SESSION['msg']['err']); } if($_SESSION['msg']['sucess']) { echo''.$_SESSION['msg']['sucess'].'</div>'; unset($_SESSION['msg']['sucess']); } ?> Titulo<font color="red">*</font>:<br/> <input name="titulo" id="titulo" type="text"></input> Categoria<font color="red">*</font>: </br><select name='categoria' id='categoria'> <option selected>.:: Escolhe uma Categoria ::.</option> <? $query="select * from web_news_cat order by id_cat"; $rows = mysql_query($query); while($row = mysql_fetch_array($rows)){ $id_cat = $row['id_cat']; $name_cat = $row['name_cat']; ?> <option value="<?echo $id_cat; ?>"><?= $name_cat; ?></option> <?}?> </select><br/> Conteúdo<font color="red">*</font>: <textarea name="conteudo" id="conteudo" style="height:300px;width:600px;"></textarea> Mostrar noticia<font color="red">*</font>: </br><select name='show_new' id='show_new'><option selected value="1">Sim</option><option value="0">Não</option></select><br/> Autor <font color="red">*</font>: <br/><input name="autor" id="autor" type="text"></input> <button class="btnsub" type="submit" value="addnews" name="submit">Adicionar noticia</button> </form> </div> </body> </html> <?php ?> Já agora coloco uma questão, como faço para quando aperece erro o formulário que ele já prencheu não dar reset? Edited February 16, 2014 at 06:11 PM by RuiAlmeida20
yoda Posted February 16, 2014 at 07:04 PM Report #545493 Posted February 16, 2014 at 07:04 PM <textarea name="conteudo" id="conteudo" style="height:300px;width:600px;"><?php echo isset($_POST['conteudo']) ? $_POST['conteudo'] : ''; ?></textarea> before you post, what have you tried? - http://filipematias.info sense, purpose, direction
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now