Gå til innhold

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


Anbefalte innlegg

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
Lenke til kommentar
Videoannonse
Annonse

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
Lenke til kommentar

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/>";
}

}
?>

Lenke til kommentar
  • 2 uker senere...

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

Lenke til kommentar
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.

Lenke til kommentar
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];

Lenke til kommentar

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?

Lenke til kommentar

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.

Lenke til kommentar

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
Lenke til kommentar

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å
×
×
  • Opprett ny...