Är det POST-metoden du använder för att skicka formuläret?
Annars kan du testa
if(isset($_POST['submit']) && $_POST['submit'])
Red./ Ser nu att det faktiskt är POST som används...
18 svar · 630 visningar · startad av tanten
Ser inte vad som är fel, kan någon hjälpa mig?
Jag får Undefined index: submit in /home/...on line 95 och det är den första/enda if-satsen i denna kod som är rad 95:
<?php
if($_POST['submit'])
{
$namn= $_POST['namn'];
$besk = $_POST['besk'];
$finnsi = $_POST['finnsi'];
$result=mysql_query("INSERT INTO smultron (nr,namn,besk,finnsi)".
"VALUES ('', '$namn', '$besk', '$finnsi')");
//confirm
echo "Query Finished";
}
else
{
// stänger php för att lägga in html-kod
?>
<h3>Lägg till en plats</h3>
<form method="post" action="socknar.php">
Namn<input type="text" name="namn" />
Beskrivning <textarea name="besk"></textarea>
<input type="hidden" name="finnsi" /><?php $r['ID']?>
<input type="submit" value="submit" name="submit" /></form>
<?php
} //close the else statement
?>
Tabellen ser ut så här:
smultron (
`nr` int(11) NOT NULL auto_increment,
`namn` varchar(200) NOT NULL default '',
`besk` text NOT NULL,
`finnsi` int(11) NOT NULL default '',
PRIMARY KEY (`nr`),
KEY `finnsi` (`finnsi`)
Eftersom jag är ny på detta får ni säga till om ni ser något annat tok också
Är det POST-metoden du använder för att skicka formuläret?
Annars kan du testa
if(isset($_POST['submit']) && $_POST['submit'])
Red./ Ser nu att det faktiskt är POST som används...
ändra din sql sats till
$result=mysql_query("INSERT INTO smultron (namn,besk,finnsi)".
"VALUES ('$namn', '$besk', '$finnsi')");
eftersom nr är autoincrement så ska du inte lägga in något där, det sköts ju automatiskt.
Peter S skrev:
Är det POST-metoden du använder för att skicka formuläret?
Annars kan du testa
if(isset($_POST['submit']) && $_POST['submit'])
Med det försvann index-felet men ingenting matas in i databasen... så det måste finnas något mer fel, men får inget error...
Jag provade med din Pedda också, men fortfarande matas inget in i databasen...
Inget felmeddelande?
lägg till die för att få ett felmeddelande om det är i sql satsen.
annars så verkar du ju inte komma in i if-satsen.
$result=mysql_query("INSERT INTO smultron (namn,besk,finnsi)".
"VALUES ('$namn', '$besk', '$finnsi')") or die(mysql_error()) ;
/red
skrivs "Query Finished" ut när du har postat?
Nej inget felmeddelande... Vid submit hoppar den tillbaka till sidan där man börjar så den verkar inte behålla något av nånting... i vare sig variabler eller arrays. Felet kanske finns någon annan stans. Orkar du se hela koden? Inte så lång
Då kommer du ju inte in i if-satsen.
Testa med endast
if(isset($_POST['submit']))
Funkar inte det så visa mer kod.
Fungerade inte.
<?php
$query = "SELECT *
FROM socknar";
$result = mysql_query($query);
echo "<ul>";
while ($r = mysql_fetch_array($result)) {
echo("<li><a href=\"socknar.php?hid={$r['ID']}\">");
echo($r['namn'] . "</a></li>\n");
}
echo "</ul>";
if (isSet($_GET['hid']) && isDigit($_GET['hid']) && checksocknar($_GET['hid']))
$ID = $_GET['hid'];
else {
echo "<p>Våra socknar, Välj någon</p>";
exit();
}
$query = "SELECT * FROM socknar WHERE ID = $ID";
$result = mysql_query($query);
if ($h = mysql_fetch_array($result)) {
echo "<div id=\"container\" > <h1>{$h['namn']}</h1>";
}
$query = "SELECT *
FROM `smultron`
WHERE finnsi = $ID";
$result = mysql_query($query);
while ($om = mysql_fetch_array($result)) {
echo "<h2>{$om['namn']} </h2>";
echo "<p>{$om['besk']} </p>\n";
}
?>
<?php
if(isset($_POST['submit']))
{
och sedan det jag har skrivit in men med dina ändringar.
Ok, ser nu att du inte skickar med idnummret rätt i ditt hiddenfält för "finnsi"
<input type="hidden" name="finnsi" /><?php $r['ID']?>
ändrar du till
<input type="hidden" name="finnsi" value="<?=$finnsi?>" />
Sen får vi se om det funkar.
/red
jag gjorde lite fel
Nej det fungerar fortfarande inte... men är din senastee ändring rätt, för jag får ingen färgmarkering i min texteditor?
ja, <?=$finnsi?> är en förkortning av <?php echo $finnsi; ?>
Så ska den väl fånga socknarnas ID väl? Har suttit så länge med det här nu att jag börjar bli riktigt trött :-)
Arghh, jag måste vara trött.
$finnsi är ju inte satt när du har formuläret uppe. Det ska ju vara
<input type="hidden" name="finnsi" value="<?=$_GET['hid']?>" />
Sen får vi se om det funkar, för du verkar ju ännu inte komma in i if-satsen.
Nej det vill sig inte. Ska nog sova på saken för nu rullar ögon i kors. Kanske ser man lite klarare efter lite vila... Tack så mycket så här långt :-)
Nu har jag testat din kod och den funkar här hos mig iaf.
Jag blir sååå avundsjuk!...
Klipper jag ut formuläret och kör det ensamt med ett satt ID i det så får jag "Query Finished" men aldeles tomt i databasen.
Kör jag den som den ser ut här med hela koden kommer jag till "Våra socknar, Välj någon", så då fungerar ingenting.
Tar jag bort formuläret och matar in smultron manuellt så fungerar det perfekt... Suck!
Finns det något i formulär-koden som inte fungerar med php 4.1?
Ok, funkade för att jag tog bort alla sql-satser och sånt när jag testade.
Du har koden:
if (isSet($_GET['hid']) && isDigit($_GET['hid']) && checksocknar($_GET['hid']))
$ID = $_GET['hid'];
else {
echo "<p>Våra socknar, Välj någon</p>";
exit();
}
När du postar formuläret så har du ju inte hid i adressfältet vilket gör att du kommer in i din else-sats där du har exit() vilket gör att koden stoppas från vidare exekvering.
Lägg if-satsen där du kollar $_POST['submit'] i en egen fil som körs när formuläret postas istället.
Det fick bli en till fil... Tack så jättemycket Pedda för hjälpen.