Gå til innhold

feil i script, men får ingen error..


Anbefalte innlegg

Skrevet (endret)

jeg holder på å lage et bestillingsskjema for skjorter. Infoen som skrives inn i skjemaet skal sendes i mail. Jeg har bruke et kontakt-skjemascript som utgangspunkt..Problemet er at inegnting skjer nå jeg trykker på submit...ikke så mye som en error en gang..

 

 

 

bestill.php

<h1>Bestillingsskjema - T-skjorte</h1>
<br/>
<form action="bestilling.php" method="post">

<label>Fornavn</label><br/>
<input type="text" name="navn" size="50"/><br/>

<label>Etternavn</label><br/>
<input type="text" name="navn" size="50"/><br/>

<label>E-mail</label><br/>
<input type="text" name="email" size="50"/><br/>

<label>Antall</label><br/>
<input type="text" name="antall" value="1" size="2"/><br/>

<label>Størrelse</label><br/>
<select name='storrelse'>
<option value='0' selected='selected'>--</option>
<option value='S'>S</option>
<option value='M'>M</option>
<option value='L'>L</option>
<option value='XL'>XL</option>
</select><br/>

<label>Postnummer</label><br/>
<input type="text" name="postnr" size="5"/><br/>

<label>Gateadresse</label><br/>
<input type="text" name="gateadr" size="50"/><br/>

<input name="send" type="submit" value="Send E-mail"/> 

<input type="reset" value="Slett"/>

</form>

<p>Alle felter må fylles ut.</p>

 

bestilling.php

<?php
include"config2.php";

$email = $_POST['email'];

if (!$_POST['fornavn']){
$feil = 1;
echo "<i>Du har glemt å fylle inn navnet ditt!</i><br/>";
}

if (!$_POST['etternavn']){
$feil = 1;
echo "<i>Du har glemt å fylle inn din e-mail!</i><br/>";
}

if (!$_POST['email']){
$feil = 1;
echo "<i>Du har glemt å fylle inn din e-mail!</i><br/>";
}

if (!empty($email) && !ereg("^[^@ ()$#><;%*?&+='\{}æøåÆØÅ]+@[^@ ()$#><;%*?&+='\{}æøåÆØÅ]+\.[^@ ()$#><;*%?&+='\{}æøåÆØÅ\.]+$", $email)) {
$feil = 1; 
echo "<i>Feil format på mailadresse!</i><br/>";
}

if (!$_POST['antall']){
$feil = 1;
echo "<i>Du må skrive inn hvor mange skjorter du vil bestille!</i><br/>";
}

if(10 < $_POST['antall']){
echo"Er du sikker på at du vil bestille mer enn 10 skjorter?<br/>";
}

if (!$_POST['postnr']){
$feil = 1;
echo "<i>Du har glemt å fylle inn postnummer!</i><br/>";
}

if (!$_POST['gateadr']){
$feil = 1;
echo "<i>Du har glemt å fylle din gateadresse!</i><br/>";
}

if ($_POST['storrelse'] = 0){
$feil = 1;
echo "<i>Du må velge størrelse på skjorten!</i><br/>";
}

$result = mysql_query("SELECT poststed FROM postadr WHERE postnr ='{$_POST['postnr']}'");

$row = mysql_fetch_row($result) 

if (!$result) {
echo"postnummeret du skrev inn eksisterer ikke!";
}

if($feil !=1){

$fornavn = $_POST['fornavn'];
$etternavn = $_POST['fornavn'];
$antall = $_POST['antall'];
$storrelse = $_POST['storrelse'];
$postnr = $_POST['postnr'];
$gateadr = $_POST['gateadr'];

$mail = "[email protected]";
$subject = "Bestilling - T-skjorte";

if(mail("$mail", "$subject", "

Navn: $fornavn $etternavn
E-mail: $email.
Antall skjorter: $antall
Størrelse: $storrelse: 
Adresse: $gateadr
Postnummer: $postnr
Poststed: $result
Senders IP: $REMOTE_ADDR


", "From: $navn<$email>\nReturn-path: $email")){

echo "<p><b>Bestillingen din ble sendt og vil bli behandlet så fort som mulig.</b></p>";
}

else{
echo"<b>Noe gikk galt og mailen ble ikke sendt. Vennligst prøv igjen senere. Hvis dette problemet fortsetter, ta kontakt med webmaster.</b><br/>";
}

}
?>

Endret av Tha_Zaynt
Videoannonse
Annonse
Skrevet

I bestill.php så kaller du både fornavn og etternavn navn i textfeltet, mens i bestilling.php så bruker du $_POST['fornavn'] og $_POST['etternavn']. Tror nok det er der feilen ligger. ;)

Skrevet (endret)

fikset på bestill.php nå, emn ingen forskjell..

 

<h1>Bestillingsskjema - T-skjorte</h1>
<br/>
<form action="bestilling.php" method="post">

<label>Fornavn</label><br/>
<input type="text" name="fornavn" size="50"/><br/>

<label>Etternavn</label><br/>
<input type="text" name="etternavn" size="50"/><br/>

<label>E-mail</label><br/>
<input type="text" name="email" size="50"/><br/>

<label>Antall</label><br/>
<input type="text" name="antall" value="1" size="2"/><br/>

<label>Størrelse</label><br/>
<select name='storrelse'>
<option value='0' selected='selected'>--</option>
<option value='S'>S</option>
<option value='M'>M</option>
<option value='L'>L</option>
<option value='XL'>XL</option>
</select><br/>

<label>Postnummer</label><br/>
<input type="text" name="postnr" size="5"/><br/>

<label>Gateadresse</label><br/>
<input type="text" name="gateadr" size="50"/><br/>

<input name="send" type="submit" value="Send E-mail"/> 

<input type="reset" value="Slett"/>

</form>

<p>Alle felter må fylles ut.</p>

 

Hmm...når jeg lastet opp scriptet til kontoen min på start.no fikk jegfaktisk frem error. Hvordan kan det ha seg at jeg ikke får frem error på kontoen min som er hostet av dailyhosting.net da tro?

 

merket forresten at jeg manglet en ; i linje 52 i bestilling.php...

Endret av Tha_Zaynt
Skrevet

Prøv disse da:

 

bestill.php

<h1>Bestillingsskjema - T-skjorte</h1>
<br />
<form action="bestilling.php" method="post">

<label>Fornavn</label><br/>
<input type="text" name="fornavn" size="50"/><br/>

<label>Etternavn</label><br/>
<input type="text" name="etternavn" size="50" /><br/>

<label>E-mail</label><br/>
<input type="text" name="email" size="50" /><br/>

<label>Antall</label><br/>
<input type="text" name="antall" value="1" size="2" /><br/>

<label>Størrelse</label><br/>
<select name='storrelse'>
<option value='0' selected='selected'>--</option>
<option value='S'>S</option>
<option value='M'>M</option>
<option value='L'>L</option>
<option value='XL'>XL</option>
</select><br/>

<label>Postnummer</label><br/>
<input type="text" name="postnr" size="5"/><br/>

<label>Gateadresse</label><br/>
<input type="text" name="gateadr" size="50"/><br/>

<input name="send" type="submit" value="Send E-mail"/>

<input type="reset" value="Slett"/>

</form>

<p>Alle felter må fylles ut.</p>

 

 

bestilling.php

<?php

include "config2.php";

$email = $_POST['email'];

if (!$_POST['fornavn']){
$feil = 1;
echo "<i>Du har glemt å fylle inn navnet ditt!</i><br/>";
}

if (!$_POST['etternavn']){
$feil = 1;
echo "<i>Du har glemt å fylle inn din e-mail!</i><br/>";
}

if (!$_POST['email']){
$feil = 1;
echo "<i>Du har glemt å fylle inn din e-mail!</i><br/>";
}

if (!empty($email) && !ereg("^[^@ ()$#><;%*?&+='\{}æøåÆØÅ]+@[^@ ()$#><;%*?&+='\{}æøåÆØÅ]+\.[^@ ()$#><;*%?&+='\{}æøåÆØÅ\.]+$", $email)) {
$feil = 1;
echo "<i>Feil format på mailadresse!</i><br/>";
}

if (!$_POST['antall']){
$feil = 1;
echo "<i>Du må skrive inn hvor mange skjorter du vil bestille!</i><br/>";
}

if(10 < $_POST['antall']){
echo "Er du sikker på at du vil bestille mer enn 10 skjorter?<br/>";
}

if (!$_POST['postnr']){
$feil = 1;
echo "<i>Du har glemt å fylle inn postnummer!</i><br/>";
}

if (!$_POST['gateadr']){
$feil = 1;
echo "<i>Du har glemt å fylle din gateadresse!</i><br/>";
}

if ($_POST['storrelse'] = 0){
$feil = 1;
echo "<i>Du må velge størrelse på skjorten!</i><br/>";
}

$result = mysql_query("SELECT poststed FROM postadr WHERE postnr ='{$_POST['postnr']}'");

$row = mysql_fetch_row($result)

if (!$result) {
echo "postnummeret du skrev inn eksisterer ikke!";
}

if($feil !=1){

$fornavn = $_POST['fornavn'];
$etternavn = $_POST['etternavn'];
$antall = $_POST['antall'];
$storrelse = $_POST['storrelse'];
$postnr = $_POST['postnr'];
$gateadr = $_POST['gateadr'];

$mail = "[email protected]";
$subject = "Bestilling - T-skjorte";

if(mail("$mail", "$subject", "

Navn: $fornavn $etternavn
E-mail: $email.
Antall skjorter: $antall
Størrelse: $storrelse:
Adresse: $gateadr
Postnummer: $postnr
Poststed: $result
Senders IP: $REMOTE_ADDR

", "From: $navn<$email>\nReturn-path: $email")){

echo "<p><b>Bestillingen din ble sendt og vil bli behandlet så fort som mulig.</b></p>";
}

else{
echo"<b>Noe gikk galt og mailen ble ikke sendt. Vennligst prøv igjen senere. Hvis dette problemet fortsetter, ta kontakt med webmaster.</b><br/>";
}

}
?>

Skrevet

mailen blir sendt nå men et par feil dukker opp:

 

Størrelse: 0

Poststed: Resource id #4

 

skjønner ikke hvorfor selcctmenyen min bare sendre valuen 0, men den andre er sikker bare en dum query-feil..

  • 2 uker senere...
Skrevet

hmmm...ingen som har peil? jeg har sett på koden litt nå men skjønner fortsatt ikke hvorfor valuen på selectmenyen blir 0 uansett hvilkrn størrelse du velger eller hvorfor Poststed blir til

 

Poststed: Resource id #4

 

med queryen:

 

$result = mysql_query("SELECT poststed FROM postadr WHERE postnr ='{$_POST['postnr']}'");

$row = mysql_fetch_row($result);

Poststed: $result

Skrevet

Hmm... Prøv å bytte ut

<option value='0' selected='selected'>--</option>

Med

<option selected value='0'>--</option>

Tviler på at det funker, men det er verdt er forsøk.

Skrevet
Hmm... Prøv å bytte ut

<option value='0' selected='selected'>--</option>

Med

<option selected value='0'>--</option>

Tviler på at det funker, men det er verdt er forsøk.

hjalp nok ikke det nei...nå er siden valodert (X)HTML 1.0 Scrict også, men det funker fortsatt ikke.

Skrevet
hmmm...ingen som har peil? jeg har sett på koden litt nå men skjønner fortsatt ikke hvorfor valuen på selectmenyen blir 0 uansett hvilkrn størrelse du velger eller hvorfor Poststed blir til

 

Poststed: Resource id #4

 

med queryen:

 

$result = mysql_query("SELECT poststed FROM postadr WHERE postnr ='{$_POST['postnr']}'");

$row = mysql_fetch_row($result);

Poststed: $result

Du skriver jo ut $result... Du mener vel sikkert å skrive ut $row, slik:

 

prøv med echo "poststed:".$row[0];

Skrevet (endret)

ahh...selfølgelig :blush: Nå funker i alle fall det...men jeg har fortsatt problemer med den select-menyen...

 

EDIT; Fant feilen. Nå funker alt som det skal. Takker så meget for hjelpen!

Endret av Tha_Zaynt
Skrevet

Et lite spm til:

hvordan får jeg alle feilmeldingene inn i ett array istedet for å ha det slik:

 

f (!$_POST['fornavn']){
$feil = 1;
echo "<i>Du har glemt å fylle inn navnet ditt!</i><br/>";
}

if (!$_POST['etternavn']){
$feil = 1;
echo "<i>Du har glemt å fylle inn din e-mail!</i><br/>";
}

if (!$_POST['email']){
$feil = 1;
echo "<i>Du har glemt å fylle inn din e-mail!</i><br/>";
}

if (!empty($email) && !ereg("^[^@ ()$#><;%*?&+='\{}æøåÆØÅ]+@[^@ ()$#><;%*?&+='\{}æøåÆØÅ]+\.[^@ ()$#><;*%?&+='\{}æøåÆØÅ\.]+$", $email)) {
$feil = 1;
echo "<i>Feil format på mailadresse!</i><br/>";
}

if (!$_POST['antall']){
$feil = 1;
echo "<i>Du må skrive inn hvor mange skjorter du vil bestille!</i><br/>";
}

if(10 < $_POST['antall']){
echo "Er du sikker på at du vil bestille mer enn 10 skjorter?<br/>";
}

if (!$_POST['postnr']){
$feil = 1;
echo "<i>Du har glemt å fylle inn postnummer!</i><br/>";
}

if (!$_POST['gateadr']){
$feil = 1;
echo "<i>Du har glemt å fylle din gateadresse!</i><br/>";
}

if ($_POST['storrelse'] = 0){
$feil = 1;
echo "<i>Du må velge størrelse på skjorten!</i><br/>";
}

osv.

 

noen som har peiling?

Skrevet

ingen som har peiling på hvordan jeg putter alle error'ene inn i ett array altså? Grunnen til at jeg vil gjøre det, er for det første at koden kommer til å se penere og mer rydding ut. For det andre blir det da lettere å en slags error-side..

 

Jeg har prøvd å sett litt på php.net for å se om jeg fant noe nytting info der, men jeg må innrømme at jeg skjønte pent lite av det som stod om arrays.

Skrevet (endret)

jeg fikk det til...jeg satt meg ned og leste noen tutorialer om arrays og fant ut at jeg kunne gjøre det slik:

 

if(is_numeric($storrelse)){
$array[0] = "Du må velge en størrelse på skjorten!";
}

if (!$_POST['fornavn']){
$array[1] = "Du har glemt å fylle inn navnet ditt!";
}

if (!$_POST['etternavn']){
$array[2] = "Du har glemt å fylle inn ditt etternavn!";
}

if (!$_POST['email']){
$array[3] = "Du har glemt å fylle inn din e-mail!";
}

if (!empty($email) && !ereg("^[^@ ()$#><;%*?&+='\{}æøåÆØÅ]+@[^@ ()$#><;%*?&+='\{}æøåÆØÅ]+\.[^@ ()$#><;*%?&+='\{}æøåÆØÅ\.]+$", $email)) {
$array[4] = "Feil format på mailadresse!";
}

if (!$_POST['antall']){
$array[5] = "Du må skrive inn hvor mange skjorter du vil bestille!";
}

if(10 < $_POST['antall']){
$array[6] = "Er du sikker på at du vil bestille mer enn 10 skjorter?";
}

if (!$_POST['postnr']){
$array[7] = "Du har glemt å fylle inn postnummer!";
}

if (!$_POST['gateadr']){
$array[8] = "Du har glemt å fylle din gateadresse!";
}

$result = mysql_query("SELECT poststed FROM postadr WHERE postnr ='{$_POST['postnr']}'");

$row = mysql_fetch_row($result);

if (!empty($_POST['postnr']) and empty($row[0])) {
$array[9] = "postnummeret du skrev inn eksisterer ikke!";
}

if(!empty($array)){

foreach ($array as $value){
echo "<em>$value</em><br/>";
}
echo"<a href=\"javascript:history.back()\">Tilbake</a>";
}

elseif(empty($array)){

Endret av Tha_Zaynt

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...