script test!

Status
Niet open voor verdere reacties.

headout

Terugkerende gebruiker
Lid geworden
30 okt 2000
Berichten
2.939
(Naar aanleiding van deze topic )

Wie zou dit php bestandje eens willen testen:
PHP:
 <?php
// Twee eenvoudige geïndexeerde arrays maken
$assortiment=array("tafel","kast","bed","nachtkastje","kruk","stoel");
$getallen=array(1,5,884,34,6,12,77,93,21);

// Alle arraywaarden na elkaar weergeven
echo "<b>Arrays ongesorteerd</b><br>";
echo "<b>Assortiment: </b>";
$i=0;
while($assortiment[$i]){
  echo $assortiment[$i] . " ";
  $i++;
}
echo "<br><b>Getallen: </b>";
$i=0;
while($getallen[$i]){
  echo $getallen[$i] . " ";
  $i++;
}
echo "<br><br>";

// Arraywaarden op de posities 2 en 4 teruggeven
echo "<b>Arraywaarde 2 (assortiment):</b> " . $assortiment[2] . "<br>";
echo "<b>Arraywaarde 4 (getallen): </b>" . $getallen[4] . "<br>";
echo "<br>";

// Aantal waarden in de array vaststellen en teruggeven
echo "<b>Aantal arraywaarden: </b><br>";
echo "<b>Assortiment: </b>" . count($assortiment) . "<br>";
echo "<b>Getallen: </b>" . count($getallen) . "<br>";
echo "<br>";

// Arrays oplopend sorteren en dan weergeven
sort($assortiment);
sort($getallen);
echo "<b>Arrays oplopend gesorteerd</b><br>";
echo "<b>Assortiment: </b>";
$i=0;
while($assortiment[$i]){
  echo $assortiment[$i] . " ";
  $i++;
}
echo "<br><b>Getallen: </b>";
$i=0;
while($getallen[$i]){
  echo $getallen[$i] . " ";
  $i++;
}
echo "<br><br>";

// Arrays aflopend sorteren en dan weergeven
rsort($assortiment);
rsort($getallen);
echo "<b>Arrays aflopend gesorteerd</b><br>";
echo "<b>Assortiment: </b>";
$i=0;
while($assortiment[$i]){
  echo $assortiment[$i] . " ";
  $i++;
}
echo "<br><b>Getallen: </b>";
$i=0;
while($getallen[$i]){
  echo $getallen[$i] . " ";
  $i++;
}
echo "<br><br>";

// Maximum en minimum van de arrays bepalen
echo "<b>Maximum assortiment: </b>" . max($assortiment) . "<br>";
echo "<b>Minimum assortiment: </b>" . min($assortiment) . "<br><br>";
echo "<b>Maximum getallen: </b>" . max($getallen) . "<br>";
echo "<b>Minimum getallen: </b>" . min($getallen);
?>
Ik krijg diverse foutmeldingen:
PHP:
 Arrays ongesorteerd
Assortiment: tafel kast bed nachtkastje kruk stoel 
Warning: Undefined offset: 6 in c:\www\apache\htdocs\test2.php on line 15

Getallen: 1 5 884 34 6 12 77 93 21 
Warning: Undefined offset: 9 in c:\www\apache\htdocs\test2.php on line 21


Arraywaarde 2 (assortiment): bed
Arraywaarde 4 (getallen): 6

Aantal arraywaarden: 
Assortiment: 6
Getallen: 9

Arrays oplopend gesorteerd
Assortiment: bed kast kruk nachtkastje stoel tafel 
Warning: Undefined offset: 6 in c:\www\apache\htdocs\test2.php on line 44

Getallen: 1 5 6 12 21 34 77 93 884 
Warning: Undefined offset: 9 in c:\www\apache\htdocs\test2.php on line 50


Arrays aflopend gesorteerd
Assortiment: tafel stoel nachtkastje kruk kast bed 
Warning: Undefined offset: 6 in c:\www\apache\htdocs\test2.php on line 62

Getallen: 884 93 77 34 21 12 6 5 1 
Warning: Undefined offset: 9 in c:\www\apache\htdocs\test2.php on line 68


Maximum assortiment: tafel
Minimum assortiment: bed

Maximum getallen: 884
Minimum getallen: 1
 
ik krijg

Arrays ongesorteerdAssortiment: tafel kast bed nachtkastje kruk stoel Getallen: 1 5 884 34 6 12 77 93 21 Arraywaarde 2 (assortiment): bedArraywaarde 4 (getallen): 6Aantal arraywaarden: Assortiment: 6Getallen: 9Arrays oplopend gesorteerdAssortiment: bed kast kruk nachtkastje stoel tafel Getallen: 1 5 6 12 21 34 77 93 884 Arrays aflopend gesorteerdAssortiment: tafel stoel nachtkastje kruk kast bed Getallen: 884 93 77 34 21 12 6 5 1 Maximum assortiment: tafelMinimum assortiment: bedMaximum getallen: 884Minimum getallen: 1

op Apache/1.3.26 (Unix) PHP/4.3.0

-edit op Apache/1.3.23 (Win32) PHP/4.1.1 gaat ie ook goed.
 
Laatst bewerkt:
Ik begin toch te vermoeden dat het een configuratiefout is.
Onder Windows met apache en php krijg ik dezelfde notices en warnings als headout. On Linux echter, eveneens met php en apache, werkt het foutloos.

Is er soms ergens een optie om notices en warnings uit te zetten??
 
Jazeker kun je dit aangeven in de configuratie van PHP en wel in php.ini. Maar als je daar niet zelf bijkan of je wilt het alleen bij dit script gebruiken, voeg dan boven aan het script het volgende toe:

PHP:
<?php
error_reporting (E_ALL ^ E_NOTICE);
?>

De ^ betekent "behalve". Dus E_ALL behalve E_NOTICE. Notice zijn dus foutmeldingen die eigenlijk niet echt fout zijn maar toch opgemerkt worden. Een groot aantal zal nu verdwijnen.
 
Geplaatst door pcfixer
Jazeker kun je dit aangeven in de configuratie van PHP en wel in php.ini.
En waar kun je dat aangeven eigenlijk? Op zich is zo'n script natuurlijk wel handig, maar als het niet "echt" fout is....
 
Geplaatst door headout
En waar kun je dat aangeven eigenlijk? Op zich is zo'n script natuurlijk wel handig, maar als het niet "echt" fout is....

In je php.ini bestand die bij je installatie zit van PHP. Als het goed is staat die (bij een windows installatie) in de c:\WINDOWS\ map... Je zult ff moeten zoeken in het ini bestand naar de juiste regels maar hij is makkelijk te vinden
 
Works for me! :thumb:

@headout: de php.ini staat in c:\windows. Bij mij althans, maar dat is volgens mij de standaardmap.
Als je door dit bestand heen scrollt dan zie je het vanzelf. Er staan zelfs nog voorbeelden bij. De syntax was bij mij overigens iets anders dan wat pc fixer hier gepost heeft.

Wat mij tot het volgende brengt. Ik heb op internet een paar php tuts gevolgd. Hier werd telkens met $variabelenaam naar variabelen verwezen. Dit werkt bij dus niet. (niet in formulieren althans) Nu stond er op één van de sites dat voor de nieuwere php versies $HTTP_GET_VARS[variabelenaam] gebruikt moet worden. Dat werkt bij mij dan ook wel.
Mijn vraag is nu: werkt dat dan ook bij de oudere php versies?

[edit]pc fixer was me dus net te snel af[/edit]
 
Geplaatst door brutus


Wat mij tot het volgende brengt. Ik heb op internet een paar php tuts gevolgd. Hier werd telkens met $variabelenaam naar variabelen verwezen. Dit werkt bij dus niet. (niet in formulieren althans) Nu stond er op één van de sites dat voor de nieuwere php versies $HTTP_GET_VARS[variabelenaam] gebruikt moet worden. Dat werkt bij mij dan ook wel.
Mijn vraag is nu: werkt dat dan ook bij de oudere php versies?

Ja makkelijk he <_< ... Gewoon $varnaam gebruiken voor variabelen van forms die je verstuurd met post en get.. Ik zie het steeds vaker en dat is absoluut niet de natuurlijke manier om variabelen die afkomstig zijn van forms te gebruiken. De enige echte goede manier is die met $_POST['varnaam']. Want alle objecten in een form worden in een speciale variabele (let op: het is GEEN array! Heel veel (zelfs ik tot voorkort) mensen die behandelen dit als een array maar dat is dus niet zo) $_POST gestopt. Zelfs hetgene wat jij voorsteld, HTTP_GET_VARS[], is niet echt goed, omdat het er binnenkort misschien uit gaat en dan weken je scripts ineens niet meer...

Nu zul je je wel afvragen: waarom zoveel werk met underscores en hoofdletters als ik ook gewoon $varnaam kan gebruiken. Veel hosts hebben register_globals uit staan (hetgeen $varnaam mogelijk maakt) en zo alleen $_POST enz. toelaten. Wil je dus verzekerd zijn dat iedereen je scripts kan gebruiken, gebruik dan de natuurlijke manier!
 
Heel erg bedankt voor deze toelichting. Een duidelijk verhaal. :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan