Permalänk

form till databas

Hej!
Jag håller på att skapa ett tyck till form till min trolleri sida men när jag skickar det till databasen så kommer det upp Undefined index på alla mina variabler.
Varför???

Här är min kodning:

<?php $name = mysql_escape_string($_POST['Namn']); $foretag = mysql_escape_string($_POST['Foretag']); $adress = mysql_escape_string($_POST['Adress']); $postadress = mysql_escape_string($_POST['Postadress']); $epost = mysql_escape_string($_POST['Mejl']); $nummer = mysql_escape_string($_POST['Nummer']); $show = mysql_escape_string($_POST['Show']); $langd = mysql_escape_string($_POST['Langd']); $pris = mysql_escape_string($_POST['Pris']); $betyg = mysql_escape_string($_POST['Betyg']); $ovrigt = mysql_escape_string($_POST['Ovrigt']); $kampanj = mysql_escape_string($_POST['Kampanj']); $name = htmlspecialchars(stripslashes($name)); $foretag = htmlspecialchars(stripslashes($foretag)); $adress = htmlspecialchars(stripslashes($adress)); $postadress = htmlspecialchars(stripslashes($postadress)); $epost = htmlspecialchars(stripslashes($epost)); $nummer = htmlspecialchars(stripslashes($nummer)); $show = htmlspecialchars(stripslashes($show)); $langd = htmlspecialchars(stripslashes($langd)); $pris = htmlspecialchars(stripslashes($pris)); $betyg = htmlspecialchars(stripslashes($betyg)); $ovrigt = htmlspecialchars(stripslashes($ovrigt)); $kampanj = htmlspecialchars(stripslashes($kampanj)); mysql_connect ("localhost", "", "") or die ('fel: ' . mysqli_error()); mysql_select_db ("nyhetsbrev"); $query = "INSERT INTO tycktill (ID, name, foretag, adress, postadress, epost, nummer, showtyp, langd, pris, betyg, ovrigt, kampanj) VALUES ('NULL','$name','$foretag','$adress','$postadress','$epost','$nummer','$show','$langd','$pris','$betyg','$ovrigt','$kampanj')"; echo $query; mysql_query($query) or die (mysql_error()); //header('Location: ../startsida.php'); ?>

Hälsningar/
Granskog1

Permalänk
Medlem

$_POST är väl case-sensitive, så är du säker på att du kallar dina fomulärfält name="Foretag" och inte name="foretag"?

Visa signatur

The difference between stupidity and genius - the latter has limits

Permalänk
Medlem
Skrivet av granskog1:

Hej!
Jag håller på att skapa ett tyck till form till min trolleri sida men när jag skickar det till databasen så kommer det upp Undefined index på alla mina variabler.
Varför???

Här är min kodning:

<?php $name = mysql_escape_string($_POST['Namn']); $foretag = mysql_escape_string($_POST['Foretag']); $adress = mysql_escape_string($_POST['Adress']); $postadress = mysql_escape_string($_POST['Postadress']); $epost = mysql_escape_string($_POST['Mejl']); $nummer = mysql_escape_string($_POST['Nummer']); $show = mysql_escape_string($_POST['Show']); $langd = mysql_escape_string($_POST['Langd']); $pris = mysql_escape_string($_POST['Pris']); $betyg = mysql_escape_string($_POST['Betyg']); $ovrigt = mysql_escape_string($_POST['Ovrigt']); $kampanj = mysql_escape_string($_POST['Kampanj']); $name = htmlspecialchars(stripslashes($name)); $foretag = htmlspecialchars(stripslashes($foretag)); $adress = htmlspecialchars(stripslashes($adress)); $postadress = htmlspecialchars(stripslashes($postadress)); $epost = htmlspecialchars(stripslashes($epost)); $nummer = htmlspecialchars(stripslashes($nummer)); $show = htmlspecialchars(stripslashes($show)); $langd = htmlspecialchars(stripslashes($langd)); $pris = htmlspecialchars(stripslashes($pris)); $betyg = htmlspecialchars(stripslashes($betyg)); $ovrigt = htmlspecialchars(stripslashes($ovrigt)); $kampanj = htmlspecialchars(stripslashes($kampanj)); mysql_connect ("localhost", "", "") or die ('fel: ' . mysqli_error()); mysql_select_db ("nyhetsbrev"); $query = "INSERT INTO tycktill (ID, name, foretag, adress, postadress, epost, nummer, showtyp, langd, pris, betyg, ovrigt, kampanj) VALUES ('NULL','$name','$foretag','$adress','$postadress','$epost','$nummer','$show','$langd','$pris','$betyg','$ovrigt','$kampanj')"; echo $query; mysql_query($query) or die (mysql_error()); //header('Location: ../startsida.php'); ?>

Hälsningar/
Granskog1

$_POST är case-sensitive. Testa att sätta en liten bokstav som Zevon säger.

Rekommenderar att du använder dig av

mysql_real_escape_string();

istället för

mysql_escape_string();

Visa signatur

ᕦ(ツ)ᕤ

Permalänk

Jag har kollat och de stämmer här är formuläret:

<form name="tycktill" method="post" action="php includes/tycktill.php" enctype="text/plain" >

<p>
Kontrollera de första uppgifterna annars ändra dem här.<br>
Om det öppnas i outlook så kopiera bara allt och klistra in det i den epost hanterare ni vill.<br>
Glöm inte rubrik och till när ni kopiera.<br>
<br>
Namn: <input type="text" name="Namn" /><br>
<br>
Adress: <input type="text" name="Adress" /><br>
<br>
Post adress: <input type="text" name="Postadress" /><br>
<br>
Mejladress: <input type="text" name="Mejl" size="23px" /><br>
<br>
Telefonnummer: <input type="text" name="Nummer" size="10px"/><br>
<br>
Typ av show:<br>
<select name="Show">
<option value="barntrolleri">Barntrolleri</option>
<option value="personalfest">Personalfest</option>
<option value="födelsedagskalas vuxen">Födelsedagskalas vuxen</option>
<option value="Annan typ av fest/kalas">Annan typ av fest/kalas</option>
</select>
<br>Hur var längden på showen:<br>
<select name="Langd">
<option value="På tok för kort">På tok för kort</option>
<option value="Kort">Kort</option>
<option value="Perfekt">Perfekt</option>
<option value="Lång">Lång</option>
<option value="På tok för Lång">På tok för Lång</option>
</select>
<br>Priset:<br>
<select name="Pris">
<option value="På tok för billigt">På tok för kort</option>
<option value="billigt">Billigt</option>
<option value="Perfekt">Perfekt</option>
<option value="Dyrt">Dyrt</option>
<option value="På tok för dyrt">På tok för dyrt</option>
</select>
<br>Helhetsbetyg:<br>
<select name="Betyg">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<br/>Övrigt:<br>
<textarea name="Ovrigt"></textarea>
<br>
<br>Jag godkänner att mina kommentarer används i reklam och kampanj syfte:<br>
<select name="Kampanj">
<option value="Ja">Ja</option>
<option value="Nej">Nej</option>
</select>
<br>
<button type="submit" value="Skicka" class="button_style">Skicka</button>
</form>

Permalänk
Medlem

Din form-action ser ju lite skum ut, försvann något när du klistrade till forumet?

Visa signatur

The difference between stupidity and genius - the latter has limits

Permalänk

inte vad jag ser

Permalänk
Medlem

Hmm, nä är nog bara jag som tänkte fel.. Är så van själv vid att alltid escapa mellanslag så ditt "php includes" kändes bara fel.

Men koden du skrev i första inlägget ligger alltså i "php includes/tycktill.php", och när du trycker skicka på formuläret så skickas du till rätt sida, men du får varningar om undefined index..
Kan du skriva ut hela POST-arrayen och kolla vad du egenteligen får fram:
print_r($_POST)

Visa signatur

The difference between stupidity and genius - the latter has limits

Permalänk

Precis och arrayen blir tom.

Permalänk
Medlem

Ok har hittat felet.
Problemet är din enctype, text/plain går inte att använda med POST, bara med GET.
Ta bort enctype från formuläret så fungerar det.

Visa signatur

The difference between stupidity and genius - the latter has limits

Permalänk

Tack det löste det.

Permalänk
Skrivet av granskog1:

<?php $name = mysql_escape_string($_POST['Namn']); $foretag = mysql_escape_string($_POST['Foretag']); $adress = mysql_escape_string($_POST['Adress']); $postadress = mysql_escape_string($_POST['Postadress']); $epost = mysql_escape_string($_POST['Mejl']); $nummer = mysql_escape_string($_POST['Nummer']); $show = mysql_escape_string($_POST['Show']); $langd = mysql_escape_string($_POST['Langd']); $pris = mysql_escape_string($_POST['Pris']); $betyg = mysql_escape_string($_POST['Betyg']); $ovrigt = mysql_escape_string($_POST['Ovrigt']); $kampanj = mysql_escape_string($_POST['Kampanj']); $name = htmlspecialchars(stripslashes($name)); $foretag = htmlspecialchars(stripslashes($foretag)); $adress = htmlspecialchars(stripslashes($adress)); $postadress = htmlspecialchars(stripslashes($postadress)); $epost = htmlspecialchars(stripslashes($epost)); $nummer = htmlspecialchars(stripslashes($nummer)); $show = htmlspecialchars(stripslashes($show)); $langd = htmlspecialchars(stripslashes($langd)); $pris = htmlspecialchars(stripslashes($pris)); $betyg = htmlspecialchars(stripslashes($betyg)); $ovrigt = htmlspecialchars(stripslashes($ovrigt)); $kampanj = htmlspecialchars(stripslashes($kampanj)); ?>

<?php foreach ($_POST as $name => $value) { $$name = htmlspecialchars(stripslashes(mysql_real_escape_string($value))); // $_POST['Hej'] blir $Hej och $_POST['hej'] blir $hej } ?>

Är snyggare och gör samma sak, på tal om inget.

Lite konstigt dock att du kör real_escape_string() och sedan stripslashes() direkt efter?

Visa signatur

Citera, tack!
Har du läst tråden om strandhögtalare och andra musiklådor?