webForumDet fria alternativet

Input problem

10 svar · 242 visningar · startad av freddelito

freddelitoMedlem sedan jan. 20056 inlägg
#1

Hej mina små fjöl.

Nu är det så att jag har precis börjat koda php och vill ha lite hjälp.
Jag försöker göra ett nyhetscript. Men problemet ligger i inputen till tablen.
Jag har en input och sedan en insert som ska sätta in texten jag skrivit i databasen.

Inputen ser hur på följande vis.

<form method="post" action="insert.php">
<input type="text" name="Name"> <br /> <br />
<textarea name="nyheten" rows="15" cols="45"></textarea> <br />
<input type="submit" name="submit" value="submit" />
</form>

Och insert ser hur så här.

<?php
if(!isset($_GET['post'])) {
echo "Oh no you dont!";
} else {

if($_POST['Name'] == "" OR $_POST['Nyheten'] == "") {
echo "Rubriken eller Nyheten Kan inte vara tomt! Fy.";
} else {

include('data.php');

mysql_connect("$dbhost","$dbuser","$dbpass")
or die(mysql_error());
mysql_select_db("$dbname")
or die(mysql_error());

$query = "INSERT INTO $dbtable(name, nyheten) ";
$query .= "VALUES('".$_POST['name']."', '".$_POST['nyheten']."')";

mysql_query($query);

header("Location: nyheter.php");
}
}
?>

Problemet jag får är att det står när jag postat min text kommer Oh no you dont! fram på sidan.

Så jag undrar vad som är fel?
Det är inte jag som gjort inserten helt.
Men jag har ändrat efter det jag tror jag ska ändra efter (!)
Fälten i tabellen heter följande.

Nyheten
Name

Tack för hjälp.

tydalMedlem sedan juni 20034 013 inlägg
#2

Ändra

if (!isset($_GET['post'])) {

till

if (!isset($_POST)) {

dectgapMedlem sedan sep. 20021 655 inlägg
#3

Eller t.o.m.

if (empty($_POST)) {

eftersom $_POST alltid finns, även om man inte skickar några POST-variabler, om jag inte missminner mig.

freddelitoMedlem sedan jan. 20056 inlägg
#4

Vad ska jag ändra till? :| Vem ska jag lita på.

freddelitoMedlem sedan jan. 20056 inlägg
#5

NU ser den ut så här.

<?php
if (empty($_POST)) {
echo "Oh no you dont!";
} else {

if($_POST['Name'] == "" OR $_POST['Nyheten'] == "") {
echo "Rubriken eller Nyheten Kan inte vara tomt! Fy.";
} else {

include('data.php');

mysql_connect("$dbhost","$dbuser","$dbpass")
or die(mysql_error());
mysql_select_db("$dbname")
or die(mysql_error());

$query = "INSERT INTO $dbtable(name, nyheten) ";
$query .= "VALUES('".$_POST['name']."', '".$_POST['nyheten']."')";

mysql_query($query);

header("Location: nyheter.php");
}

Problemet blir :

Notice: Undefined index: Nyheten in C:\Program\Apache Group\Apache2\htdocs\nyheter\insert.php on line 6
Rubriken eller Nyheten Kan inte vara tomt! Fy.

dectgapMedlem sedan sep. 20021 655 inlägg
#6

$_POST['Nyheten'] ska vara $_POST['nyheten']

freddelitoMedlem sedan jan. 20056 inlägg
#7

Parse error: parse error, unexpected T_ECHO in C:\Program\Apache Group\Apache2\htdocs\nyheter\insert.php on line 7

På kod

<?php
if (empty($_POST)) {
echo "Oh no you dont!";
} else {

if($_POST['name'] == "" || $_POST['nyheten'] ==
echo "Rubriken eller Nyheten Kan inte vara tomt! Fy.";
} else {

include('data.php');

mysql_connect("$dbhost","$dbuser","$dbpass")
or die(mysql_error());
mysql_select_db("$dbname")
or die(mysql_error());

$query = "INSERT INTO $dbtable(name, nyheten) ";
$query .= "VALUES('".$_POST['name']."', '".$_POST['nyheten']."')";

mysql_query($query);

header("Location: nyheter.php");
}
}
?>

dectgapMedlem sedan sep. 20021 655 inlägg
#8

Försöker du själv?
Ta en titt på rad 6.

freddelitoMedlem sedan jan. 20056 inlägg
#9

Okej. Jag hittade lite små fel.

Nu har jag tagit bort den där delen.
Bara krånglade.

Nu får jag felmeddelandet.

Notice: Undefined index: name in C:\Program\Apache Group\Apache2\htdocs\nyheter\insert.php on line 14

Warning: Cannot modify header information - headers already sent by (output started at C:\Program\Apache Group\Apache2\htdocs\nyheter\insert.php:14) in C:\Program\Apache Group\Apache2\htdocs\nyheter\insert.php on line 18

Med koden :

<?php
if (empty($_POST)) {
echo "Oh no you dont!";
} else {

include('data.php');

mysql_connect("$dbhost","$dbuser","$dbpass")
or die(mysql_error());
mysql_select_db("$dbname")
or die(mysql_error());

$query = "INSERT INTO $dbtable(name, nyheten) ";
$query .= "VALUES('".$_POST['name']."', '".$_POST['nyheten']."')";

mysql_query($query);

header("Location: nyheter.php");
}

?>

oHLLeMedlem sedan nov. 2002302 inlägg
#10

Byt ut $_POST['name'] mot $_POST['Name'] i din query. Du kallar ju textfältet för Name och inte name

dectgapMedlem sedan sep. 20021 655 inlägg
#11

Var konsekvent med VERSALER/gemener i fältnamn, så undviker du sådana slarvfel.

129 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)