Versio

Script lijkt ineens niet meer te werken

Overzicht Reageren

Daniel Peters

Daniel Peters

08/02/2012 19:43:38
Quote Anchor link
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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php function randomquote()
{

    $quote_array = array(1 => "Quote 1", "Quote 2", "Quote 3", "Quote 4");
    $quote_number = date("d");
    echo $quote_array[$quote_number];
}


randomquote(); ?>


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
 
PHP hulp

PHP hulp

17/05/2012 13:14:49
Gesponsorde koppelingen:
BHosted Hosting al vanaf € 1,- per maand

Controleer nu gratis jouw domeinnaam:

  
 
Obelix en Idefix

Obelix en Idefix

08/02/2012 19:58:52
Quote Anchor link
Is dit je hele code / array?
Plaats
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
ini_set('display_errors', 'On');
error_reporting(E_ALL);

Eens boven aan je script.
 
Phoenix Bird

Phoenix Bird

08/02/2012 20:05:50
Quote Anchor link
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.
 
Daniel Peters

Daniel Peters

08/02/2012 20:11:32
Quote Anchor link
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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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(); ?>


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
 
Phoenix Bird

Phoenix Bird

08/02/2012 20:23:19
Quote Anchor link
De melding houdt in dat quote 08 niet bestaat, dit kan je oplossen door 0 t/m 9 als 01 enz te nummeren.

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
<?php
function randomquote()
{

    $quote_array = array(
            '01' => 'Quote 1',
            '02' => 'Quote 2'
            //enz
    );
    $quote_number = date("d");
    echo $quote_array[$quote_number];
}


randomquote();
?>
 
Obelix en Idefix

Obelix en Idefix

08/02/2012 20:23:22
Quote Anchor link
Zie reactie van Phoenix
 
Daniel Peters

Daniel Peters

08/02/2012 20:30:23
Quote Anchor link
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.
Gewijzigd op 08/02/2012 20:32:53 door Daniel Peters
 
- SanThe -

- SanThe -

08/02/2012 21:55:48
Quote Anchor link
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
 
Erwin H

Erwin H

09/02/2012 09:05:20
Quote Anchor link
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
 



Overzicht Reageren

Get Adobe Flash player