Analizuję od godziny i nie mogę znaleźć przyczyny, dlaczego wpis nie jest dodawany do bazy, a komunikat się wyświetla.
*Struktura bazy:
wpis: `id` int(11) | `user_id` int(3) | `title` char(50) | `content` text | `data` date
*Połączenie z bazą jest.
*Zmienne post oraz z sesji poprawne
*Błędów żadnych nie wywala
Może ktoś rzuci świeżym okiem i od razu wychwyci (IMG:
style_emoticons/default/smile.gif)
<h3>Dodaj wpis</h3>
<?PHP
function form(){
<div id="wpis_form">
<form action="index.php?page=new" method="post">
<input type="text" name="title" placeholder="Tytuł" required maxlength="30"><br>
<textarea name="content" placeholder="Treść" maxlength="500" required></textarea><br>
<input type="submit" name="sent" value="Dodaj wpis">
</form>
</div>
';
}
class dodajWpis extends Connect{
function Length($title,$content){
return true;
}
}
function ifNotExists($title){
$zap=$this->db->prepare("SELECT id FROM wpisy WHERE title=:title");
$zap->bindValue(':title', $title, PDO::PARAM_STR);
$zap->execute();
if($zap->rowCount()==0){
return true;
}
}
function getId($title){
$zap=$this->db->prepare("SELECT id FROM wpisy WHERE title=:title");
$zap->bindValue(':title', $title, PDO::PARAM_STR);
$zap->execute();
return $zap->fetch()['id'];
}
function dodaj($title,$content,$user_id){
$query = $this->db->prepare("INSERT INTO wpisy VALUES(null, '$user_id', :title, :content, CURDATE()");
$query -> bindValue(':title', $title, PDO::PARAM_STR);
$query -> bindValue(':content', $content, PDO::PARAM_STR);
$query -> execute();
}
}
$o=new dodajWpis();
if(isset($_SESSION["logged"])) {
if(isset($_POST["sent"])) {
$title=trim($_POST['title']); $content=trim($_POST['content']); if($o->Length($title,$content))
{
if($o->ifNotExists($title))
{
$user_id=$_SESSION["user_id"];
$o->dodaj($title,$content,$user_id);
echo '<a href="index.php?page=wpis&id='.$o->getId($title).'">Wpis został dodany.</a>'; }
else{
echo "Wpis o podanym tytule już istnieje!<br>"; form();
}
}
else{
echo "Tytuł i/lub treść są za krótkie!<br>"; form();
}
}
else{
form();
}
}
else{
header('Location:index.php?page=login'); }
?>
Ten post edytował Turson 28.10.2013, 18:12:21