PHP/MYSQL: (double) quotes en backticks ???

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2 3

Johan West

Johan West

13/07/2015 09:05:13
Quote Anchor link
- Aar - op 12/07/2015 19:50:48:
Je moet gewoon weten wat je van een functie verwacht, is het een boolean (true/false) of een string of misschien een integer, of zelfs een array.

Om te controleren of iets ingevuld is, gebruik ik dit altijd:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if(trim($var)=='') {
// leeg
}
?>


Okay dus als ik het goed begrijp verwacht je iets met een if conditie. Kan ik dat indelen in een aantal standaard verwachtingen? Jij noemt boolean, string, integer of array. Bedoel je dat ik voor iedere van deze (en evt. andere) een aparte if conditie moet maken? Op welke manier zou dat moeten dan?
 
PHP hulp

PHP hulp

20/04/2024 08:39:19
 
Eddy E

Eddy E

13/07/2015 09:33:13
Quote Anchor link
Ja, kijk hier eens naar:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
// boolean = true of false
if($logged_in == true)
 {

 // string = tekens
 if($mode == "delete")
  {

  // integer = getal, geheel getal zonder komma etc
  if(is_int($id))
   {

   // array = meerdere velden in 1 rij
   if(is_array($woorden))
    {

    // nog een controle, op int (count() telt)
    if(count($woorden) == 2)
     {

     // doe hier iets
     }
    }
   }
  }
 }

?>


gecombineerd, wel elke voorwaarde nieuwe regel
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
if    (
        (
$logged_in == true)
AND     ($mode == "delete")
AND     (is_int($id))
AND     (is_array($woorden))
AND     (count($woorden) == 2)
    )
     {

     // doe hier iets
     }
?>


Of in 1 zin:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if ( ($logged_in == true) AND ($mode == "delete") AND (is_int($id)) AND (is_array($woorden)) AND (count($woorden) == 2) )
     {

     // doe hier iets
     }
?>
 
Johan West

Johan West

13/07/2015 12:30:40
Quote Anchor link
Mag je met 1 x

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if ($_SERVER['REQUEST_METHOD'] == 'POST') {


gegevens uit 2 verschillende formulieren halen?
 
- Ariën  -
Beheerder

- Ariën -

13/07/2015 12:33:38
Quote Anchor link
Een submit-knop triggert alleen de data uit zijn eigen formulierveld, voor zover ik weet.

Anders kan je ook een tweede conditie in je if gebruiken, waarbij je ook (AND) controleert op de [/i]name[/i] van de submitknop.
 
Randy vsf

Randy vsf

13/07/2015 12:57:56
Quote Anchor link
- Aar - op 13/07/2015 12:33:38:
Een submit-knop triggert alleen de data uit zijn eigen formulierveld, voor zover ik weet.


Tenzij je het met javascript oplost
Gewijzigd op 13/07/2015 12:58:09 door Randy vsf
 
Johan West

Johan West

13/07/2015 22:44:15
Quote Anchor link
Ik zal nog een keer een stukje code afdrukken waar het vast loopt

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
If (isset($_POST['linkoms']) && (is_array($_POST['linkoms'])) && ($linkoms = " ") && isset($_POST['linkadd']) && (is_array($_POST['linkadd'])) && ($linkadd = " ")  )
 
    {
            echo "test"; // word geechoed
            var_dump($tab); // wordt afgedrukt
        if ($_SERVER['REQUEST_METHOD'] == 'POST') {
         echo "test"; // word geechoed
        var_dump($tab); // wordt afgedrukt
 if (!isset($_POST['kolom2']) &&  !isset($tab)     ) {
     echo "test"; // niet geechoed bij isset, wel geechoed bij !isset
    $tab = $_POST['kolom2'];              
    var_dump($tab);    // deze dump geeft null zowel bij isset als !isset.
foreach($_POST['linkoms'] as $key => $dummy) {
 $oms = $conn->real_escape_string($_POST['linkoms'][$key]);
 $add = $conn->real_escape_string($_POST['linkadd'][$key]);
 $sql = "INSERT INTO $tab (linkoms, linkadd) VALUES ('$oms', '$add')" ; // het ligt niet aan de manier van schrijven. de foutmelding komt doordat $tab geen waarde bevat.


Ik krijg dus de melding undefined index.

$tab is leeg. Eerder in het script is het wel te echoen of printen. Maar hier niet. Ik heb 2 formulieren in 2 verschillende files om het in te lezen. Je kunt toch met $_POST iets uit een formulier halen zo vaak je wilt indien je action in de html tag heb?


Toevoeging op 14/07/2015 13:40:36:


Het probleem is dat als ik isset gebruik, de variabele niet is ingesteld zodat de code na de { niet wordt uitgevoerd.

Dus gebruik ik !Isset, dan wordt het uitgevoerd, maar helaas is de variabele dan niet ingesteld.

Ik kan me niet voorstellen dat het aan de formulier input ligt.
 
- SanThe -

- SanThe -

14/07/2015 13:51:40
Quote Anchor link
if (!isset($_POST['kolom2']) && !isset($tab) ) {

Dus als die beiden niet bestaan ga jij er mee verder.
Zeer vreemd.
 
Eddy E

Eddy E

14/07/2015 16:24:00
Quote Anchor link
Johan West op 13/07/2015 22:44:15:
Het probleem is dat als ik isset gebruik, de variabele niet is ingesteld zodat de code na de { niet wordt uitgevoerd.

Dus gebruik ik !Isset, dan wordt het uitgevoerd, maar helaas is de variabele dan niet ingesteld.

Ik kan me niet voorstellen dat het aan de formulier input ligt.


Dus als je !isset gebruikt, kijk je of deze nog niet bestaat.
En als hij niet bestaat, ga je verder... maar vind je het gek dat hij niet bestaat?

Hij moet wel bestaan. En zo niet: maak hem aan?




En je gaat dus hier de fout in:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if (!isset($_POST['kolom2']) &&  !isset($tab)     ) {
$tab = $_POST['kolom2'];

/// }
?>


Je zegt dat het aan $tab ligt, maar bestaat $_POST['kolom2'] ? Zo ja, dan gaat dit dus niet.
Wellicht bedoel je dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
if (isset($_POST['kolom2'])) {
$tab = $_POST['kolom2'];
?>
Gewijzigd op 14/07/2015 16:31:50 door Eddy E
 
Johan West

Johan West

14/07/2015 18:05:51
Quote Anchor link
Als ik echter isset gebruik ipv !isset dan wordt de code tussen de { } niet uitgevoerd.

Welke opties heb ik nog over voor if?
 
Ivo P

Ivo P

14/07/2015 18:21:06
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
if (isset($_POST['kolom2'])) {
$tab = $_POST['kolom2'];
?>


alternatief:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$tab
= filter_input(INPUT_POST, 'kolom2');
?>



of als je bijvoorbeeld wilt controleren dat $tab een integer, of een email adres wordt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$tab
= filter_input(INPUT_POST, 'kolom2', FILTER_VALIDATE_INT);
$tab = filter_input(INPUT_POST, 'kolom2', FILTER_VALIDATE_EMAIL);
?>




Bestaat $_POST['kolom2'] niet of kom je niet door de test, dan is $tab FALSE

Nog een variant: probeer er een invoer van te maken die wel voldoet. Bijvoorbeeld van 123abc kun je het getal 123 maken en van [email protected]%&* kun je [email protected] maken
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$tab
= filter_input(INPUT_POST, 'kolom2', FILTER_SANITIZE_NUMBER_INT);
$tab = filter_input(INPUT_POST, 'kolom2', FILTER_SANITIZE_EMAIL);
?>



http://php.net/filter-input
http://php.net/manual/en/filter.filters.validate.php
http://php.net/manual/en/filter.filters.sanitize.php
 
Johan West

Johan West

29/07/2015 11:05:10
Quote Anchor link
Het blijft echt vaag voor me. Het lijkt nu echt alsof je een variabele gewoon helemaal niet kunt gebruiken binnen een conditie.

Zijn er situaties die jullie je kunnen voorstellen of herinneren waarin een variabelen ineens binnen een conditie niet meer werkte?

Welke reden heeft PHP om de werking niet meer bruikbaar te maken?


Dingen echoën kan dus ik zie dat de if conditie werkt, maar zodra ik var_dump gebruik is het resultaat null dus is de mysql query leeg dus heb i k een error melding.
 
Johan West

Johan West

31/07/2015 12:01:51
Quote Anchor link
Ivo P op 14/07/2015 18:21:06:


alternatief:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$tab
= filter_input(INPUT_POST, 'kolom2');
?>



Ik begrijp niet helemaal het doel van het gebruik van filter_input. Ik heb het eens getest en ik ben ineens wel van die vervelende Undefined Variabele meldingen af.

Maar var_dump geeft nog steeds null.

Ik word er helemaal niet blij van en het is niet motiverend.
 
Thomas van den Heuvel

Thomas van den Heuvel

31/07/2015 14:56:04
Quote Anchor link
We zijn nu al 3 pagina's heen en weer aan het communiceren pingelen. Misschien wordt het eens tijd dat we wat overzicht creëren. Daartoe stel ik het volgende voor:

Lever de volgende stukken informatie aan:
1. het script / de code met je formulier
2. het script / de code die het formulier verwerkt
3. de stappen die je doorloopt die leiden tot een bepaald resultaat
4. een omschrijving van wat er daadwerkelijk gebeurt en wat je verwacht dat er zou moeten gebeuren

De hele tijd gaan er flarden van de puzzel heen en weer en dit heeft tot nu toe niet zoveel opgeleverd.

Een onvolledige situatieschets van een probleem analyseren (laat staan oplossen) is nagenoeg onmogelijk.
Gewijzigd op 31/07/2015 15:03:40 door Thomas van den Heuvel
 

Pagina: « vorige 1 2 3



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.