abonnement Unibet Coolblue
pi_110363466
quote:
0s.gif Op zondag 15 april 2012 19:38 schreef cablegunmaster het volgende:

[..]

Antwoord staat er al tussen om post met standaard bericht te voorkomen.
De Isset is overbodig inderdaad. :P kan beter !empty zijn :).
isset is wel mooier, anders krijg je een warning bij error_reporting(E_ALL);
  zondag 15 april 2012 @ 20:15:45 #252
260431 drumminggod
Ik zeg: Doen!
pi_110364232
Oke. Ik heb nu iets. Alleen als ik nu mijn naam NIET heb ingevuld. Of een bericht niet. Dan moet er eigenlijk een foutmelding komen... Alleen nu plaatst hij gewoon lege vakken in mijn db.. Zal wel iets kleins zijn maar voor mij onvindbaar op ww3schools
Mijn piek is kwijt
pi_110364817
quote:
7s.gif Op zondag 15 april 2012 20:15 schreef drumminggod het volgende:
Oke. Ik heb nu iets. Alleen als ik nu mijn naam NIET heb ingevuld. Of een bericht niet. Dan moet er eigenlijk een foutmelding komen... Alleen nu plaatst hij gewoon lege vakken in mijn db.. Zal wel iets kleins zijn maar voor mij onvindbaar op ww3schools
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
If(!empty($_POST['VELDNAAM']))
{
  
$error "Er is geen BLABLABLABLA ingevuld";
}

//Om je query heen invullen.
if(!isset($error)){
  
// Insert Query uitvoeren. 
}

//bij je formulier.
if(!empty($error)){
 echo 
$error;
}
?>
Redacted
pi_110366361
quote:
0s.gif Op zondag 15 april 2012 20:24 schreef cablegunmaster het volgende:

[..]
[ code verwijderd ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$errorlog 
= array();

if ( empty(
$_POST['veldnaam']) === false )
{
    
$errorlog[] = "<li>error omschrijving</li>";
}

if ( 
count($errorlog) == )
{
    
// do database work
}
else
{
    echo 
"<ul>" join(""$errorlog) . "</ul>";
}
?>

Zo kun je meerdere velden checken :)
pi_110370578
Ik zou geen empty gebruiken. Dan werkt een spatie alleen ook :) Doe een betere check met strlen ;)
pi_110394352
Weet iemand nog een goede tool om php code mee te analyseren? Bv om ongebruikte variable/functies, foutieve opmaak etc mee te detecteren. Het liefst eentje met een webinterface (geen cli). :s)
..///
pi_110397139
Ik zou gewoon iets als NuSphere of PHPstorm gebruiken.
pi_110414490
quote:
0s.gif Op zondag 15 april 2012 21:44 schreef totalvamp het volgende:
Ik zou geen empty gebruiken. Dan werkt een spatie alleen ook :) Doe een betere check met strlen ;)
Een string met alleen een spatie is niet empty.
pi_110423579
quote:
0s.gif Op maandag 16 april 2012 21:17 schreef Light het volgende:

[..]

Een string met alleen een spatie is niet empty.
Nee dat is mijn punt. Je moet dus een adequate check doen op je POST. strlen() + trim() + weetikveel()
pi_110424305
quote:
0s.gif Op maandag 16 april 2012 23:53 schreef totalvamp het volgende:

[..]

Nee dat is mijn punt. Je moet dus een adequate check doen op je POST. strlen() + trim() + weetikveel()
Maar voordat je iets gaat doen met een post-variable, moet je wel controleren of de variable bestaat. Dat voorkomt notices, en ook die moet je niet willen.
pi_110424632
quote:
0s.gif Op dinsdag 17 april 2012 00:13 schreef Light het volgende:

[..]

Maar voordat je iets gaat doen met een post-variable, moet je wel controleren of de variable bestaat. Dat voorkomt notices, en ook die moet je niet willen.
Daarvoor gebruik je isset() niet empty. Zoals eerder aangegeven, maar alleen een isset is natuurlijk niet voldoende, net als empty dat niet is.
pi_110424865
quote:
0s.gif Op dinsdag 17 april 2012 00:23 schreef totalvamp het volgende:

[..]

Daarvoor gebruik je isset() niet empty. Zoals eerder aangegeven, maar alleen een isset is natuurlijk niet voldoende, net als empty dat niet is.
Yep. Volgens mij bedoelen we hetzelfde maar omschrijven we het anders.
pi_110427237
quote:
0s.gif Op dinsdag 17 april 2012 00:13 schreef Light het volgende:

[..]

Maar voordat je iets gaat doen met een post-variable, moet je wel controleren of de variable bestaat. Dat voorkomt notices, en ook die moet je niet willen.
Dit is inderdaad een belangrijk punt, tevens kun je controleren of je formulier wel goed over komt. Je kunt dus andere acties ondernemen als ze niet ge-set zijn. Dit kan betekenen dat er met het formulier is gerommeld.
  dinsdag 17 april 2012 @ 10:31:27 #264
260431 drumminggod
Ik zeg: Doen!
pi_110430194
quote:
0s.gif Op zondag 15 april 2012 20:47 schreef Pakspul het volgende:

[..]
[ code verwijderd ]

Zo kun je meerdere velden checken :)
Bedankt! Het werkt!

nog 1 resterend probleempje... Bij het herladen van mijn pagina verstuurd hij mijn berichtje net zo vaak als dat f5 wordt ingedrukt. Ik heb deze code:

1<input type="submit" value="Toevoegen" onClick=<a href="javascript:location.reload(true)" />
maar als ik op toevoegen heb geklikt en druk op f5 komt hij dus twee keer! (of meerdere malen)

Wat is er fout? Ik dacht aan buffer legen... alleen geen idee hoe dat netjes moet.

[ Bericht 19% gewijzigd door drumminggod op 17-04-2012 10:39:24 ]
Mijn piek is kwijt
pi_110432303
quote:
0s.gif Op maandag 16 april 2012 13:58 schreef wipes66 het volgende:
Weet iemand nog een goede tool om php code mee te analyseren? Bv om ongebruikte variable/functies, foutieve opmaak etc mee te detecteren. Het liefst eentje met een webinterface (geen cli). :s)
Wat is er mis mee? Dat je een tool nodig bent? :P
Redacted
pi_110432464
quote:
7s.gif Op dinsdag 17 april 2012 10:31 schreef drumminggod het volgende:

[..]

Bedankt! Het werkt!

nog 1 resterend probleempje... Bij het herladen van mijn pagina verstuurd hij mijn berichtje net zo vaak als dat f5 wordt ingedrukt. Ik heb deze code:
[ code verwijderd ]

maar als ik op toevoegen heb geklikt en druk op f5 komt hij dus twee keer! (of meerdere malen)

Wat is er fout? Ik dacht aan buffer legen... alleen geen idee hoe dat netjes moet.
Na het schrijven naar de database de gebruiker doorsturen naar de goede pagina header("Location xxx"); ?
pi_110432502
quote:
7s.gif Op dinsdag 17 april 2012 10:31 schreef drumminggod het volgende:

[..]

Bedankt! Het werkt!

nog 1 resterend probleempje... Bij het herladen van mijn pagina verstuurd hij mijn berichtje net zo vaak als dat f5 wordt ingedrukt. Ik heb deze code:
[ code verwijderd ]
maar als ik op toevoegen heb geklikt en druk op f5 komt hij dus twee keer! (of meerdere malen)
Wat is er fout? Ik dacht aan buffer legen... alleen geen idee hoe dat netjes moet.
1. Simpelste oplossing is een redirect :). Dan stuurt hij door naar de volgende pagina en dan mogen ze zo veel F5 drukken als ze willen maar dan herhaalt hij niet.

2. een Check inbouwen dat als de text precies zo al voorkomt dat hij niet meer een Insert uitvoert maar doorgaat met redirecten.
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
function esc($string){
return 
mysql_real_escape_string($string);
}

//Dit eronder ff opzoeken hoe je het aanpakt maar het generale idee is er wel :).
$test $db->fetchAssoc($db->query("Select * from table where text = ".esc($_POST['text']).""));
if(empty(
$test[0]['text']))
{
 
// execute insert query.
}
redirect("pagina.php");
?>

quote:
0s.gif Op dinsdag 17 april 2012 11:39 schreef Pakspul het volgende:

[..]

Na het schrijven naar de database de gebruiker doorsturen naar de goede pagina header("Location xxx"); ?
Headers mogen geen output daarvoor hebben dus een reeks html + vervolgens de header kan tot fouten leiden.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
//==== Redirect... Try PHP header redirect, then Java redirect, then try http redirect.:
function redirect($url){
    if (!
headers_sent()){    //If headers not sent yet... then do php redirect
        
header('Location: '.$url); exit;
    }else{                    
//If headers are sent... do java redirect... if java disabled, do html redirect.
        
echo '<script type="text/javascript">';
        echo 
'window.location.href="'.$url.'";';
        echo 
'</script>';
        echo 
'<noscript>';
        echo 
'<meta http-equiv="refresh" content="0;url='.$url.'" />';
        echo 
'</noscript>'; exit;
    }
}
//==== End -- Redirect
Prefereer daarom liever Redirect :P

[ Bericht 11% gewijzigd door cablegunmaster op 17-04-2012 11:46:47 ]
Redacted
pi_110433689
quote:
0s.gif Op dinsdag 17 april 2012 11:40 schreef cablegunmaster het volgende:

[..]

1. Simpelste oplossing is een redirect :). Dan stuurt hij door naar de volgende pagina en dan mogen ze zo veel F5 drukken als ze willen maar dan herhaalt hij niet.

2. een Check inbouwen dat als de text precies zo al voorkomt dat hij niet meer een Insert uitvoert maar doorgaat met redirecten.
[ code verwijderd ]

[..]

Headers mogen geen output daarvoor hebben dus een reeks html + vervolgens de header kan tot fouten leiden.
[ code verwijderd ]

Prefereer daarom liever Redirect :P
Liever gewoon code waarbij er niks wordt getoond tot op het einde als alles verwerkt is ;) dan heb je die problemen ook niet :)
pi_110435321
quote:
0s.gif Op dinsdag 17 april 2012 12:09 schreef totalvamp het volgende:

[..]

Liever gewoon code waarbij er niks wordt getoond tot op het einde als alles verwerkt is ;) dan heb je die problemen ook niet :)
Dit, tussen door stukken al in elkaar zetten en op het laatste even layoutje er omheen rammen en er uit gooien. Dan kun je er zelf voor kiezen of er uberhaupt iets geprint moet worden en kun je veilig omgaan met header functies.
pi_110445199
Hallo even een simpel vraagje waar ik toch al een tijdje mee zit

Stel ik heb een categorie lijstje.
1 Appels
2 Peren
3 Bananen

En nu wil ik ze opschuiven naar boven en naar beneden, hoe switch ik ze van ID? :P
Ik zat te denken met tussen variabele. Stel ik wil Appels op 2 hebben.
Dan moet 1 naar 2 toe en 2 op 1, Hoe kan ik dit aanpassen zonder dat ik problemen krijg in de DB? Of moet ik dan denken aan een Tussen variabele ? :P

Na enig nadenken kom ik uit dat ik eerst moet kijken naar wat +1 met de ID doet daarvan het selecteer als er niks in zit kan ik het met een insert ernaar toe kopieren en anders als er wel iets inzit het pakken en met elkaar verwisselen. :P

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
//pseudo code. om +1 te krijgen.
function Switch_ID($id)
{
$sourceid $db->Assocfetch($db->query("select * from categorie where id = " '.esc($id) .' " limit 1 " ));
$id++;
$target $db->Assocfetch($db->query("select * from categorie where id = " '.esc($id) .' " limit 1" ));

if(!isset(
$target))
{
  return 
false;
}else{
 
$db->query("Update categorie set Variables  = $sourceid[0] where id = " '.$id.' " limit 1" );
$id--;
 
$db->query("Update categorie set Variables  = $target[0] where id = " '.esc($id).' " limit 1" );
}
}
?>

En nu nog nadenken hoe ik de subgroepen ga doen van deze klasses :s)
Bah , nu update hij ook de rest :') zit nog een fout in.

Kan ik een tussenupdate met 0 gebruiken? Of is dit niet aan te raden? :P

[ Bericht 9% gewijzigd door cablegunmaster op 17-04-2012 17:01:41 ]
Redacted
pi_110448406
Gebruik een order kolom. Haal eerst oude order nummer op en zet die in de nieuwe nummer kun je berekenen door de richting.
pi_110448620
quote:
0s.gif Op dinsdag 17 april 2012 17:51 schreef Pakspul het volgende:
Gebruik een order kolom. Haal eerst oude order nummer op en zet die in de nieuwe nummer kun je berekenen door de richting.
Is dat niet het probleem opschuiven? :{ Want dan zit je met een orderkolom met 1,2,3,4
en als je een groot aantal hebt. dan heb je dat probleem alsnog.

ff nadenken :P

Dan heb ik een ID_order kolom en daarop kan ik het continue laten veranderen.
Dus dan krijg ik een update die 1-2-3-4 met elkaar kan veranderen. Op basis van het ID van de rij :). Dus 1-2-3-4 en als er iets nieuws bijkomt pakt hij de vorige ID_order++; als leeg dan niks.

Moet te doen zijn , alleen wat insert querys aan passen :P

[ Bericht 12% gewijzigd door cablegunmaster op 17-04-2012 18:05:24 ]
Redacted
pi_110449222
quote:
0s.gif Op dinsdag 17 april 2012 17:57 schreef cablegunmaster het volgende:

[..]

Is dat niet het probleem opschuiven? :{ Want dan zit je met een orderkolom met 1,2,3,4
en als je een groot aantal hebt. dan heb je dat probleem alsnog.

ff nadenken :P
opschuiven maakt toch niet uit, dan sorteer je toch gewoon op die kolom en heb je het allemaal goed. Als je ID nummers gaat veranderen dan begrijp je het idee van een primary key niet helemaal.
pi_110510149
Ah leuk, PHP forum, kan af en toe wel helpen bij vragen denk ik zo.
pi_110513115
quote:
0s.gif Op dinsdag 17 april 2012 11:40 schreef cablegunmaster het volgende:

[..]

1. Simpelste oplossing is een redirect :). Dan stuurt hij door naar de volgende pagina en dan mogen ze zo veel F5 drukken als ze willen maar dan herhaalt hij niet.

2. een Check inbouwen dat als de text precies zo al voorkomt dat hij niet meer een Insert uitvoert maar doorgaat met redirecten.
[ code verwijderd ]

[..]

Headers mogen geen output daarvoor hebben dus een reeks html + vervolgens de header kan tot fouten leiden.
[ code verwijderd ]

Prefereer daarom liever Redirect :P
Daarom moet je pas output richting browser sturen nadat alle logica is geweest. Dan heb je daar geen last van.
En als je toch die redirect-functie gebruikt, zoek dan eerst het verschil tussen Java en JavaScript op.
abonnement Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')