webForumDet fria alternativet

Input problem

PHP

10 svar · 242 visningar · startad av freddelito

Medlem sedan jan. 20056 inlägg
Frågan#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.

Medlem sedan juni 20034 013 inlägg
#2

Ändra

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

till

if (!isset($_POST)) {

Medlem 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.

Medlem sedan jan. 20056 inlägg
#4

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

Medlem 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.

Medlem sedan sep. 20021 655 inlägg
#6

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

Medlem 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");
}
}
?>

Medlem sedan sep. 20021 655 inlägg
#8

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

Medlem 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");
}

?>

Medlem 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

Medlem sedan sep. 20021 655 inlägg
#11

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

259 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)