PHP5.3 PHP7.0 Is deze CLASS zo in orde.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Top Low-Code Developer Gezocht!

Bedrijfsomschrijving Unieke Kansen, Uitstekende Arbeidsvoorwaarden & Inspirerend Team Wij zijn een toonaangevende, internationale organisatie die de toekomst van technologie vormgeeft door het creëren van innovatieve en baanbrekende oplossingen. Ons succes is gebaseerd op een hecht en gepassioneerd team van professionals die altijd streven naar het overtreffen van verwachtingen. Als jij deel wilt uitmaken van een dynamische, vooruitstrevende en inspirerende werkomgeving, dan is dit de perfecte kans voor jou! Functieomschrijving Als Low-Code Developer ben je een cruciaal onderdeel van ons team. Je werkt samen met collega's uit verschillende disciplines om geavanceerde applicaties te ontwikkelen en te optimaliseren met behulp van Low-code

Bekijk vacature »

Wim van de Wetering

Wim van de Wetering

01/01/2016 14:28:49
Quote Anchor link
Hallo,
ter validatie van gegevens heb ik het onderstaande lopend op PHP5.3 Maar in 5.5 werkt er helemaal niets meer wat met dit script te maken heeft. Als je tips hebt... graag. Toe nu toe weigert alles en een foute openingstag.... geeft als broncode JOUW php-code vrij inclusief inloggegevens.

De vraag, is de aanroep "validator::onlyDigits($aantal)"op deze manier toegestaan in PHP7
MOET er de instructie "$test= new validator" bijgezet worden?
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
<?php
//required

 class validator
 {

//Alleen cijfers
     public static function onlyDigits( $pDigits )
     {


         return ( preg_match( "/^[0-9]+$/", $pDigits ) );

     }
 

}
//einde class
?>


//prog
require_once ('validator.class.php');

if (validator::onlyDigits($aantal))
{
$goeie = "ok";

}
else
{
$errormessage = "Foutje in AANTAL";

}
 
PHP hulp

PHP hulp

23/11/2024 21:38:03
 
- Ariën  -
Beheerder

- Ariën -

01/01/2016 14:55:03
Quote Anchor link
Zet je error_reporting en display_errors eens aan.
 
Wim van de Wetering

Wim van de Wetering

01/01/2016 16:41:13
Quote Anchor link
het hele setje staat als volgt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
error_reporting(-1);
?>

Er komt compleet niets. Nul,Nul broncode. Ik ga gewoon van een formuliertje naar de formulierverwerker. De variabelen zijn goed en al lezend in alle migrating literatuur kom ik op preg_replace. Die mag géén /e meer hebben. Heb ik ook niet maar ik denk dat het daar mis gaat. Als ik die betreffende bestanden include..... komt er geheel niets.
 
- Ariën  -
Beheerder

- Ariën -

01/01/2016 17:08:30
Quote Anchor link
Isoleer het probleem eens? Haal je preg_match() bijvoorbeeld eens tijdelijk weg.
 
Ozzie PHP

Ozzie PHP

01/01/2016 17:10:38
Quote Anchor link
>> Er komt compleet niets. Nul,Nul broncode.

Je toont ook niks.

Typ BOVEN deze regel

return ( preg_match( "/^[0-9]+$/", $pDigits ) );

eens:

echo 'TEST';
 
Thomas van den Heuvel

Thomas van den Heuvel

01/01/2016 21:55:12
Quote Anchor link
public static is volgens mij de goede volgorde, weet je zeker dat je dat in je eigen code / class niet per ongeluk hebt omgedraaid ofzo?

Zet anders de code voor het rapporteren + weergeven van fouten eens helemaal aan het begin van het eerste script dat wordt uitgevoerd (index.php?). Mogelijk gaat er ergens eerder al iets fout.
 
Daan Slagter

Daan Slagter

02/01/2016 09:38:32
Quote Anchor link
Verander het onderste gedeelte van je code in dit:
Dan werkt het bij mij gewoon op PHP7.0

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
if(validator::onlyDigits($aantal)){
    echo("ok");
}
else{
    echo("Foutje in AANTAL");
}

Zoals ozzie al zei je toont niks.
Gewijzigd op 02/01/2016 09:39:52 door Daan Slagter
 
Ward van der Put
Moderator

Ward van der Put

02/01/2016 11:42:13
Quote Anchor link
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
<?php
class Validator
{
     /**
      * Alleen decimale cijfers
      *
      * @param mixed $var
      * @return bool
      */

     public static function onlyDigits($var)
     {

         return ctype_digit($var);
     }
}


// Tests
var_dump( Validator::onlyDigits('abc') ); // Moet FALSE zijn
var_dump( Validator::onlyDigits('123') ); // Moet TRUE zijn
?>

Dit werkt in PHP 5.3.21 t/m 7.0.1: https://3v4l.org/W2A93
 
Wim van de Wetering

Wim van de Wetering

02/01/2016 22:12:21
Quote Anchor link
Alle pregz weggehaald en met ctype en sanitize rechtstreeks ingetoetst. Bij een ander script werkten de BBcodes ook al niet met de pregz. Ook hier alles uit gezet en werkend gekregen. Bij een andere class wordt er eerst een instructie
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php "$txt = new TXT();"?>
Dat is bij die validator class niet het geval. Daar was eigenlijk de vraag over: hoe roep ik ze aan? Dat gaat in ieder geval goed alhoewel ik wel een paar haakjes miste maar het heeft altijd gewerkt!!!!
Nou dit formulier. Ik werd er gek van. Ik heb nu telkens een stukje script, eerst groot en daarna steeds kleiner weggehaald en getest.
Toch een openingstag niet voorzien van php
Erg vervelend. Ik had al eens alle php-broncode in de browsercode gezien door het vergeten van de juiste php openingtag tag
Dank voor jullie support. Nou nog even stoeien met de BBcodes.
Gewijzigd op 02/01/2016 22:13:53 door Wim van de Wetering
 



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.