Script lijkt ineens niet meer te werken
Hallo allemaal, ik heb een vraagje over het volgende. Ik gebruikte nu ongeveer een maand lang een php script dat ik online vond om dagelijks een andere quote te tonen:
Hij heeft sowieso enkele weken gewerkt, maar nu ik de site weer bekeek wordt er helemaal niets meer getoond... geen output (bv Quote 1) en ook geen foutmelding. Ik snap niet hoe dat ineens kan, dat het eerst wel werkt en nu niet meer, terwijl ik niets heb veranderd.
Zien jullie hier wellicht een fout in de code? (ookal verklaart dit niet waarom het dan eerder wel werkte) Bedankt alvast voor jullie feedback!
Code (php)
Hij heeft sowieso enkele weken gewerkt, maar nu ik de site weer bekeek wordt er helemaal niets meer getoond... geen output (bv Quote 1) en ook geen foutmelding. Ik snap niet hoe dat ineens kan, dat het eerst wel werkt en nu niet meer, terwijl ik niets heb veranderd.
Zien jullie hier wellicht een fout in de code? (ookal verklaart dit niet waarom het dan eerder wel werkte) Bedankt alvast voor jullie feedback!
Gewijzigd op 08/02/2012 19:46:07 door Daniel Peters
Gesponsorde koppelingen:
Is dit je hele code / array?
Plaats
Eens boven aan je script.
Plaats
Eens boven aan je script.
Ervan uitgaande dat dit niet het gehele script is..
Datums van 1 t/m 9 worden met date('d') 01, 02 enz.
Dus $quote_number mag geen 1 zijn maar 01.
Datums van 1 t/m 9 worden met date('d') 01, 02 enz.
Dus $quote_number mag geen 1 zijn maar 01.
Dat is inderdaad mijn hele code, met als enige verschil dat ik natuurlijk van de "quote 1" een daadwerkelijke quote had gemaakt toen dit script nog werkte. Nu de code niet meer werkt, probeer ik het inderdaad met exact dezelfde code als hierboven.
Als ik de volgende code met jouw deel erbij plaats, dus:
Krijg ik de volgende melding:
Notice: Undefined index: 08 in ....../public_html/randomquote.php on line 10 (NB: hier stond het absolute pad naar het bestand, dat heb ik even weggehaald).
Ik kan helaas zelf geen PHP scripten, daarom ben ik zo afhankelijk van kant en klare scripts online. Ik weet dus ook niet wat bovenstaande foutmelding precies inhoudt.
EDIT: ter info, ik had voor iedere dag van de maand een quote gemaakt, dus in totaal 31 quotes.
Als ik de volgende code met jouw deel erbij plaats, dus:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
function randomquote()
{
$quote_array = array(1 => "Quote 1", "Quote 2", "Quote 3", "Quote 4");
$quote_number = date("d");
echo $quote_array[$quote_number];
}
randomquote(); ?>
ini_set('display_errors', 'On');
error_reporting(E_ALL);
function randomquote()
{
$quote_array = array(1 => "Quote 1", "Quote 2", "Quote 3", "Quote 4");
$quote_number = date("d");
echo $quote_array[$quote_number];
}
randomquote(); ?>
Krijg ik de volgende melding:
Notice: Undefined index: 08 in ....../public_html/randomquote.php on line 10 (NB: hier stond het absolute pad naar het bestand, dat heb ik even weggehaald).
Ik kan helaas zelf geen PHP scripten, daarom ben ik zo afhankelijk van kant en klare scripts online. Ik weet dus ook niet wat bovenstaande foutmelding precies inhoudt.
EDIT: ter info, ik had voor iedere dag van de maand een quote gemaakt, dus in totaal 31 quotes.
Gewijzigd op 08/02/2012 20:12:50 door Daniel Peters
De melding houdt in dat quote 08 niet bestaat, dit kan je oplossen door 0 t/m 9 als 01 enz te nummeren.
Zie reactie van Phoenix
Hartstikke bedankt allebei voor jullie feedback, het scriptje werkt inmiddels weer nu ik de opbouw exact zo heb gemaakt als in het voorbeeld van Phoenix Bird!
Mijn probleem was dat ik 1-9 inderdaad zonder 0 ervoor heb genoemd. Nu snap ik waarom hij enkele weken wel werkte (dagen 11-31) en nu dus niet meer :)
EDIT: Ook zie ik dat de '' om de getallen belangrijk zijn (bv '08'), aangezien het script niet meer werkt als ik deze weghaal. Dat is wel apart, aangezien ik deze eerder ook nooit heb gehanteerd en er toen wel quotes werden getoond.
Mijn probleem was dat ik 1-9 inderdaad zonder 0 ervoor heb genoemd. Nu snap ik waarom hij enkele weken wel werkte (dagen 11-31) en nu dus niet meer :)
EDIT: Ook zie ik dat de '' om de getallen belangrijk zijn (bv '08'), aangezien het script niet meer werkt als ik deze weghaal. Dat is wel apart, aangezien ik deze eerder ook nooit heb gehanteerd en er toen wel quotes werden getoond.
Gewijzigd op 08/02/2012 20:32:53 door Daniel Peters
Veel makkelijker is geen 'd' gebruiken maar 'j'.
d - Day of the month, 2 digits with leading zeros 01 to 31
j - Day of the month without leading zeros 1 to 31
d - Day of the month, 2 digits with leading zeros 01 to 31
j - Day of the month without leading zeros 1 to 31
Daniel Peters op 08/02/2012 20:30:23:
EDIT: Ook zie ik dat de '' om de getallen belangrijk zijn (bv '08'), aangezien het script niet meer werkt als ik deze weghaal. Dat is wel apart, aangezien ik deze eerder ook nooit heb gehanteerd en er toen wel quotes werden getoond.
Dat is het verschil tussen een integer en een string. Met quotes ziet php het als een string en blijft $array['08'] dus ook $array['08']. Zonder quotes is het een integer en dan wordt $array[08] dus weer hetzelfde als $array[8], waardoor het niet werkt.
Basiskennis php data types als je het mij vraagt....
En waarom het eerder wel werkte.... waarschijnlijk omdat je het pas op 10 januari of daarna hebt gestart....?
Gewijzigd op 09/02/2012 09:06:10 door Erwin H



