Premiär! Fyndchans i SweClockers Månadens Drop

Problem med att lägga till "event" i PHP/MySQL

Permalänk
Medlem

Problem med att lägga till "event" i PHP/MySQL

När jag ska lägga till ett event så händer inget, det skriver inte ut någon text alls (inget felmedelande eller något sånt). Vad är det som är fel?

if(isset($_GET['addevent'])) { ?> Lägg till ett nytt event<br /> <form action='news.php?addevent&add' id='add' method='post'> <b>Vart:</b><br /> <input type='text' name='vart' /><br /> <b>När:</b><br /> <input type='text' name='date' /><br /> <b>Info:</b><br /> <textarea name='info' cols='30' rows='10'></textarea><br /> <input type='submit' value='Lägg till event' /> </form> <?php //Då ?addevent=$id&add står i adressfältet kommer följande kod att laddas if(isset($_GET['add'])) { //SQL kod för att lägga in i databasen mysql_query("INSERT INTO event (vart, date, info) values ('" .$_POST['vart']. "', '" .$_POST['date']. "', '" .$_POST['info']. "')") or exit(mysql_error()); //Skickar dig vidare till det inskrivna efter location: header('location: event.php'); } }

Permalänk
Medlem

Lite självklar fråga men har du aktiverat felmeddelanden i php? annars gör du detta med error_reporting(E_ALL);

Är det när du trycker på "Lägg till event" som det blir blankt eller ser du aldrig formuläret? Jag antar att du inser att du måste fråga eftersidan med urlen: "http://.../news.php?addevent" för att formuläret ska laddas.
För att utsluta att det inte är något mysql-fel kan du testa att kommentera ut mysql_query-raden. Om du skickas vidare till event.php när du skickar formuläret är det kontakten med databasen som är fel.

Permalänk
Medlem

Den laddar formuläret men när jag trycker på "Lägg till event" så skriver den inget, när jag kommenterar bort mysql_query så händer samma sak. Felmedelande är även aktiverat för det har skrivits ut tidigare.

Permalänk
Medlem

Det är inte så att det är i event.php som felet ligger?

Permalänk
Medlem

Det är så att detta är en del av event.php här är hela dokumentet:

<?php session_start(); ob_start(); require_once '../database.php'; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> <title>Untitled 1</title> <link href="../style.css" rel="stylesheet" type="text/css" media="screen" /> </head> <body> <?php if(!isset($_SESSION['logged_in'])) { header("Location: index.php"); exit(); } ?> <div id="wrapper"> <div id="head"> </div> <div id="top_image"> <img src="../images/style/top.gif" /> </div> <div id="content"> <div id="meny"> <ul> <li><a href="news.php">Nyheter</a></li> <li><a href="comments.php">Komentarer</a></li> <li><a href="music.php">Music</a></li> <li><a href="event.php">Events</a></li> <li><a href="picture.php">Picture</a></li> </ul> </div> <div id="edit"> <?php //Kod för att lägga till genom ett forumlär if(isset($_GET['addevent'])) { ?> Lägg till ett nytt event<br /> <form action='news.php?addevent&add' id='add' method='post'> <b>Vart:</b><br /> <input type='text' name='vart' /><br /> <b>När:</b><br /> <input type='text' name='date' /><br /> <b>Info:</b><br /> <textarea name='info' cols='30' rows='10'></textarea><br /> <input type='submit' value='Lägg till event' /> </form> <?php //Då ?addevent=$id&add står i adressfältet kommer följande kod att laddas if(isset($_GET['add'])) { //SQL kod för att lägga in i databasen mysql_query("INSERT INTO event (vart, date, info) values ('" .$_POST['vart']. "', '" .$_POST['date']. "', '" .$_POST['info']. "')") or exit(mysql_error()); //Skickar dig vidare till det inskrivna efter location: header('location: event.php'); } } //Kod för att ändra en nyhet med vald ID if(isset($_GET['editevent'])) { //Denna kod hämtar ut informationen som vi ska ändra på $qevent = mysql_query("SELECT * FROM event WHERE eventid=".$_GET['editevent']) or exit(mysql_error()); $sevent = mysql_fetch_array($qevent); //Följande kod är ett forumlär med dess respektive information i sig ?> Lägg till en nyhet<br /> <form action='event.php?editevent=<?php echo $sevent['eventid']; ?>&update' id='edit' method='post'> <b>Vart:</b><br /> <input type='text' name='vart' value='<?php echo $sevent['vart']; ?>' /><br /> <b>När:</b><br /> <input type='text' name='date' value='<?php echo $sevent['date']; ?>' /> j/n-y H:i <a href='http://se.php.net/manual/sv/function.date.php' target='_blank'>Date()-funktionen</a><br /> <b>Info:</b><br /> <textarea name='info' cols='50' rows='15'><?php echo $sevent['info']; ?></textarea><br /> <input type='submit' value='Ändra event' /> </form> <?php //Då ?editevent=$id&update står i adressfältet kommer följande kod att laddas if(isset($_GET['update'])) { //SQL kod för att uppdatera en vald nyhet mysql_query("UPDATE event SET vart = '" .$_POST['vart']. "', info = '" .$_POST['info']. "', date = '" .$_POST['date']. "' WHERE eventid=".$_GET['editevent']) or exit(mysql_error()); //Skickar dig vidare till det inskrivna efter location: header('location: event.php'); } } //Kod för att ta bort en nyhet if(isset($_GET['deletenews'])) { //Först hämtar vi information om den nyheten vi vill ta bort, vilket vi gjorde med denna kod $qdelete = mysql_query("SELECT * FROM event WHERE eventid=".$_GET['deleteevent']) or exit(mysql_error()); $sdelete = mysql_fetch_array($qdelete); //En bekräftningsfråga om du vill ta bort nyheten echo "Är du säker på att du vill ta bort nyheten med rubriken <b><i>"; echo $sdelete['vart']; echo "</i></b> <b><i>"; echo $sdelete['date']; echo "</i></b>? - <a href='event.php?deleteevent="; echo $sdelete['id']; echo "&delete'>Ja</a> / <a href='event.php'>Nej</a>"; //Då ?deletenews=$id&delete står i adressfältet kommer följande kod att laddas if(isset($_GET['delete'])) { mysql_query("DELETE FROM event WHERE eventid=".$_GET['deleteevent']) or exit(mysql_error()); //Skickar dig vidare till det inskrivna efter location: header('location: event.php'); } } //Om QUERY_STRING är tom laddas denna text, kolla under resurser och Server variablar för mer information if(empty($_SERVER['QUERY_STRING'])) { ?> <table cellpadding='0' cellspacing='0'> <tr> <td><a href='event.php?addevent'>Lägg till event</a></td> </tr> <tr> <td width='200'><b>Vart</b></td> <td width='150'><b>När</b></td> <td></td> </tr> <?php //Här hämtar vi ut all information om alla nyheter och loopar ut dem, dvs skriver ut alla nyheter efter varandra $qevent = mysql_query("SELECT * FROM event ORDER BY date DESC"); while($sevent = mysql_fetch_array($qevent)) { ?> <tr> <td><a href='event.php?editevent=<?php echo $sevent['eventid']; ?>'><?php echo $sevent['vart']; ?></a></td> <td><?php echo $sevent['date']; ?></td> <td><a href='event.php?deleteevent=<?php echo $sevent['eventid']; ?>'>Ta bort</a></td> </tr> <?php } echo "</table>\n"; } ?> </div> <hr /> </div> <div id="bottom_image"> <img src="../images/style/bottom.gif" /> </div> <div id="foot"> </div> </div> </body> </html> <?php ob_end_flush(); ?>

Permalänk
Medlem

Jag begriper mig inte riktigt på din kod, om det du postat är event.php, varför länkar formuläret i fråga till news.php?addevent&add ? bör den inte rimligvis länka till event.php?addevent&add. När jag testar koden får jag i alla fall inga syntax fel eller liknande.

Permalänk
Medlem

Tack, jag hatar sånna här fel, jag har samma kod för att lägga till nyheter så jag bara ändrade det som behövde ändras trodde jag...