13-7-2018

Beste phpHelpdeskers,

Ik ben klant van Mijndomein. Mijndomein heeft een aantal dagen geleden mijn website rspp.nl overgezet naar een nieuw platform php vs 7.1. Mijn phpscripts ondersteunen dat nog niet. Er is een mogelijkheid bij Mijndomein om het platform terug te zetten naar vs 5.6, wat ik ook heb gedaan. Begin 2019 komt PHP 5.6 te vervallen.
Wat ik nu niet begrijp is dat ik ineens die foutmelding(en) krijg ná het vernieuwen van het platform. Het script is sinds twee jaar niet gewijzigd en werkte uitstekend.
Sinds het nieuwe platform er is, stonden er drie fouten op mijn website die inmiddels zijn opgelost. Daarna kreeg stond er weer eentje welke ik niet kan oplossen.

•Notice: Undefined variable: weg in /home/public/sites/www.rspp.nl/library/puchfunctions.php on line 336

Het betreft een voorwaardelijke uitdrukking if ($weg == 0)
Is hier een andere vergelijking voor in php5.6?

Misschien dat u mij hierbij verder kan helpen? Alvast hartelijk bedankt.

Met vriendelijke groet,

Margot Schuitemaker
off-topic
- Ariën - op 01/10/2018 00:27:57

Hostnames veranderen juist minder vaak dan een IP-adres. Een domein (nou ja, hostname) is juist bedoeld om IP-adressen te vergeten. Als we DNS nooit hadden gehad hadden we alle IP-adressen moeten intypen, zoals 217.196.36.11 voor Telegraaf en 172.217.19.206 voor Google.


Stel je dan voor dat je deze van ip6 moet onthouden:)
google: 2a00:1450:400e:808::200e
Ja grote kans dat het aan de hosting ligt inderdaad, maar dan is het nog steeds zaak dat je precies nagaat wat er is gebeurd/veranderd. Dat kan dus vervolgens ook inhouden dat gebruikers aanpassingen moeten doorvoeren omdat je hostingpartij iets veranderd heeft.

Het constateren dat zij op een of andere manier nalatig zijn geweest repareert niet ineens automagisch de problemen die nu optreden.
Dag mannen,

Idd heeft Mijndomein onze hostname gewijzigd zonder dat ik op de hoogte ben gesteld. Mijn man zijn website werkt weer!

Ik heb een hele boze brief naar [email protected] gemaild. Dat het geen stijl is om geen antwoord te geven om mijn diverse hulpvragen en dat diverse super aardige mensen van phphulp 4 lange avonden hebben meegedacht over het probleem.

Het ging goed met het aanpassen van mijn php-scripts en checkte dat telkens met mijn website tot er ineens mijn website eruit lag. Ik vond het wel heel abrubt gaan en dacht in 1ste instantie dat het aan mijndomein lag, maar ja, het kon natuurlijk even goed aan mij liggen.

Heel veel dank weer, Margot

[size=xsmall]Toevoeging op 01/10/2018 15:40:51:[/size]

Ik volg jullie adviezen graag op :)
Beste Thomas,

Jij had het er in een eerdere alinea over dat ik de mengvorm van <? naar <?php (echo) . . moest wijzigen.
Daar ben ik mee bezig, dat gaat goed totdat ik bij het checken van de wijzigingen in het script zag dat het in de <input type-regel wellicht niet goed gaat.

Het php-statement in die regel is namelijk niet rood gekleurd. Dat staat in het backup script ook niet rood gekleurd. Klopt dat?

Dag, Margot
Misschien ligt het aan je editor? Werkt het script verder wel?
Even ter verduidelijking, PHP heeft een verkorte schrijfwijze van tags die alleen werkt wanneer de instelling short_open_tag op true staat. Deze heeft twee smaken:
#1 een normale (korte) openingstag
<?
// ...
?>

#2 een korte tag, gevolgd door een =-teken
<?= $something; ?>

Het aan- of afwezig zijn van dit =-teken verandert de werking aanzienlijk.

Het equivalent van #1 zonder korte tags is:
<?php
// ...
?>


Het equivalent van #2 zonder korte tag is:
<?php echo $something; ?>

Je zou dus alleen een echo moeten toevoegen in de gevallen waarin een =-teken aanwezig was, en anders niet.

Ik geloof niet dat ik ergens heb gezegd dat je:
<?
// ...
?>

Zou moeten omzetten naar:
<?php
echo ...;
?>

Kijk dus even naar het origineel (je hebt hopelijk een backup gemaakt?) en loop even na wat alles zou moeten zijn.

Editors geven niet altijd de juiste kleurtjes weer, dit wil niet altijd zeggen dat iets fout is. Maar als het verdere verloop na zo'n twijfelachtige regel ook niet klopt dan is er waarschijnlijk iets niet helemaal in orde.
Ja, volgens mij wel. Het deed het altijd wel, ben nu bezig met wijzigen vandaar dat ik het ineens zag. Ik gebruik editor dreamweaver cs3

Ik zag dit op de site van w3schools "In HTML, the <input> tag has no end tag"

Voorbeeld w3chools <input type="text" name="name" value="<?php echo $name;?>">

Browsers support yes bij input

Note: The <input> element is empty, it contains attributes only.

Tip: Use the <label> element to define labels for <input> elements.

Zou ik onderstaand statement moeten wijzigen?

&#224; <?php echo maakeuros($prijs);?><br>
<strong>Voorradig: <?php echo $voorraad;?></strong>
<input type="hidden" name="artikel<?php echo $i;?>" value="<?php echo $art_id;?>" id="artikel<?php echo $i;?>"</INPUT>
<input type="hidden" name="prijslijst<?php echo $i;?>" value="<?php echo $prijs;?>" id="prijslijst<?php echo $i;?>"</INPUT>
<input type="hidden" name="voorraad<?php echo $i;?>" value="<?php echo $voorraad;?>" id="voorraad<?php echo $i;?>"</INPUT>
<input type="hidden" name="algeladen" value="1" id="algeladen"</INPUT></td>
Kijk eens goed:
er staat

"

in plaats van

">

Die sluitingshaak ( > ) is de sluitingshaak van het PHP-blok, niet van de input-tag.

En </input> of <input .../> (self closing tag) lijkt mij niet nodig, tenzij je terug wilt naar strict HTML :p.

Bij twijfel: haal het door de validator.
Ik heb </input verwijderd en alleen > laten staan en het php-statement is rood gekleurd in het script :)

[size=xsmall]Toevoeging op 03/10/2018 15:24:56:[/size]

Ja, dank je !

[size=xsmall]Toevoeging op 03/10/2018 15:35:11:[/size]

Thomas, wat mij ook opvalt is dit:
1 quote en 2 quote-jes bij input in mijn scripts?
voorbeelden:

<td><input name='inlogpassword' type='password' size='25' maxlength=45 value='<?php echo $inlogpassword;?>'></input></td></tr></table>


<form method="post" name="inlogform" action="<?php echo $paginanaam;?>?<?=$doorgeven;?>">

Ik gebruik altijd de dubbele quotes in HTML, en als dit in een echo staat gebruik ik daarvoor een string met enkele-quote echo.

Reageren