[php] If else statement lijkt niet te werken

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • RoRoo
  • Registratie: Mei 2001
  • Laatst online: 30-08 16:13

RoRoo

Certified Prutser

Topicstarter
Ola,

Dit zal vast als een n00b vraag bestempeld worden maar ik stel em toch ff :)

ik wil een item toevoegen en daarin een check doen of het veld voor het uploaden van een bestand leeg of gevuld is. Is tie leeg vul dat alleen de data in de dbase in is tie vol upload de file en schrijf dan weg.

Ik heb het ff werkend gehad door de veldnaam in de form te renamen en de check ook zo te noemen maar dat werkte maar 1 keer..

Dit lijkt mij zowiezo niet al te best maar toch..

Uploaden zelf lukt wel dus het lijkt alsof mijn if statement overgeslagen wordt.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
if(isset($send)) {

    if(empty($title)){
    die("Ga terug. U heeft niet alle velden ingevuld <font color=red>(Titel)</font><br>\n");
}

 if(empty($url)){
     die("Ga terug. U heeft niet alle velden ingevuld <font color=red>(Adres)</font><br>\n");
}
 if ($description == ""){
    die("Ga terug. U heeft niet alle velden ingevuld <font color=red>(Omschrijving)</font><br>\n");
    }
// dit is de check of het veld ingevuld is ja of de nee.
if (empty($upload)){
               mysql_query("INSERT INTO projecten (id, title, url, image, description) VALUES ('','$title','$url', 'nolink.jpg', '$description') ") or die("Fout tijdens invoeren");
                    print"<meta http-equiv=refresh content=0;url=projecten.php>";
}
else {
    $filename = $HTTP_POST_FILES['file']['name'];
        if(!(move_uploaded_file($HTTP_POST_FILES['file']['tmp_name'], $HTTP_SERVER_VARS['DOCUMENT_ROOT'].$imagepath.$filename))) die(" Uploaden niet gelukt. <br>Bestand te groot? <br>Max 2 MB");
        mysql_query("INSERT INTO projecten (id, title, url, image, description) VALUES ('','$title','$url', '$filename', '$description') ") or die("Fout tijdens invoeren");
}
    }


Ik snap het niet meer. boekies erbij gepakt en het lijkt allemaal goed te staan.

Mis ik iets?

Ohja.. veldnaam is upload dus daar zit het em niet in.

spenks en merrie krismus alvast

It's not DNS. There's no way it's DNS. It was DNS. --The Sysadmin haiku


Acties:
  • 0 Henk 'm!

  • RedHat
  • Registratie: Augustus 2000
  • Laatst online: 17-09 20:43
Overgeslagen?

misschien werken met "elseif" ?
Of is dit niet wat je zoekt?

Acties:
  • 0 Henk 'm!

  • RoRoo
  • Registratie: Mei 2001
  • Laatst online: 30-08 16:13

RoRoo

Certified Prutser

Topicstarter
nee volgens mij is elseif niet wat ik zoek.

hij moet de else statement uitvoeren op het moment dat de if statement niet klopt. Dus als die niet leeg is dan voor je de upload uit.

ik vinnut zo vreemd dat het niet werkt.. het staat er toch echt goed... |:(

It's not DNS. There's no way it's DNS. It was DNS. --The Sysadmin haiku


Acties:
  • 0 Henk 'm!

  • Stoffel
  • Registratie: Mei 2001
  • Laatst online: 18-09 10:37

Stoffel

Engineering the impossible

je bedoelt als "if(isset($send))" niet true is?

dan moet je die ook afsluiten voor de else en niet erna, of begrijp ik nou niet wat je bedoelt?

Acties:
  • 0 Henk 'm!

  • RoRoo
  • Registratie: Mei 2001
  • Laatst online: 30-08 16:13

RoRoo

Certified Prutser

Topicstarter
je snapt em niet :)
het heeft te maken met if(empty($upload)) {

maar kheb em al.

blijkt dat het #*$#*$#(* upload veld NOOIT leeg is.. als ie leeg is heeft ie wel als waarde "none" |:(

It's not DNS. There's no way it's DNS. It was DNS. --The Sysadmin haiku


Acties:
  • 0 Henk 'm!

  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

Raar dat else niet werkt ( ben nou ook geen PHP´er maar conditionele statements zijn in principe gelijk aan die in ASP).
Waarom gebruik je anders gewoon geen if als $upload niet empty is?

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


Acties:
  • 0 Henk 'm!

  • Tim
  • Registratie: Mei 2000
  • Laatst online: 04-08 16:29

Tim

Ik weet niet met welke versie van PHP je werkt, maar we horen nu te werken met $_GET en $_POST . Verder staat je indenting wat vreemd, en heb je een } aan het einde teveel. Maar die kan natuurlijk ook ergens anders van zijn :P

En als je script wel wat in de database zet, dan betekend dat dus dat je niet moet controleren of die waarde empty() is, maar op iets anders. Ik zou zeggen, echo hem eens en kijk wat er in staat.

[ Voor 7% gewijzigd door Tim op 24-12-2002 17:31 ]


Acties:
  • 0 Henk 'm!

  • judgem
  • Registratie: December 2001
  • Laatst online: 28-04-2014

judgem

Lord of Metal

effe herschreven:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
if(isset($send)) 
{
    $filename = $HTTP_POST_FILES['file']['name'];

    if($title == '' || $url == '' || $description == '')
    {
        die("<font color=red>Ga terug. U heeft niet alle velden ingevuld </font><br>\n");
    }

    elseif(!(move_uploaded_file($HTTP_POST_FILES['file']['tmp_name'], $HTTP_SERVER_VARS['DOCUMENT_ROOT'].$imagepath.$filename)))
    {
        die(" Uploaden niet gelukt. <br>Bestand te groot? <br>Max 2 MB");
    
        else
        {
            mysql_query("INSERT INTO projecten (id, title, url, image, description) VALUES ('','$title','$url', 'nolink.jpg', '$description') ") or die("Fout tijdens invoeren");
            print"<meta http-equiv=refresh content=0;url=projecten.php>";
        }
    }
}



Doe hij het zo?

- Ik bespreek ook harde waren en dan wel op www.lordsofmetal.nl - en ik draai en programmeer ze in DYNAMO


Acties:
  • 0 Henk 'm!

  • RoRoo
  • Registratie: Mei 2001
  • Laatst online: 30-08 16:13

RoRoo

Certified Prutser

Topicstarter
judgem schreef op 24 december 2002 @ 17:33:
effe herschreven:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
if(isset($send)) 
{
    $filename = $HTTP_POST_FILES['file']['name'];

    if($title == '' || $url == '' || $description == '')
    {
        die("<font color=red>Ga terug. U heeft niet alle velden ingevuld </font><br>\n");
    }

    elseif(!(move_uploaded_file($HTTP_POST_FILES['file']['tmp_name'], $HTTP_SERVER_VARS['DOCUMENT_ROOT'].$imagepath.$filename)))
    {
        die(" Uploaden niet gelukt. <br>Bestand te groot? <br>Max 2 MB");
    
        else
        {
            mysql_query("INSERT INTO projecten (id, title, url, image, description) VALUES ('','$title','$url', 'nolink.jpg', '$description') ") or die("Fout tijdens invoeren");
            print"<meta http-equiv=refresh content=0;url=projecten.php>";
        }
    }
}



Doe hij het zo?
Zo doettie het wel. maar hij blijft (neem ik aan) nolink.jpg inserten in plaats van de eigenlijke image.

ik heb de code nu zover dat ie zonder image doorgaat maar met weer niet |:( ik wor gek.. tis veels te laat voor deze ongein..

* RoRoo wil naar huis kersefees vieren :P

It's not DNS. There's no way it's DNS. It was DNS. --The Sysadmin haiku


Acties:
  • 0 Henk 'm!

  • RoRoo
  • Registratie: Mei 2001
  • Laatst online: 30-08 16:13

RoRoo

Certified Prutser

Topicstarter
ut werkt weer..
:)

It's not DNS. There's no way it's DNS. It was DNS. --The Sysadmin haiku


Acties:
  • 0 Henk 'm!

  • ThaDaNo
  • Registratie: Mei 2002
  • Laatst online: 05-04-2023
Verklaring waarom het niet werkt: Als je een field in een form niet invult, verstuurt je browser het als een lege string. Je kunt beter !$title gebruiken, want php vindt de string niet empty, maar dit werkt wel.
Pagina: 1