Foutmelding strlen() expects parameter 1 to be string

Status
Niet open voor verdere reacties.

marleenvossebel

Gebruiker
Lid geworden
16 feb 2011
Berichten
14
Hallo,

Ik hoop dat iemand mij kan helpen!

Op mijn site krijg ik de volgende melding(en) als ik een bestelling af wil ronden:

Warning: strlen() expects parameter 1 to be string, array given in /var/www/g26948/kralenkiosk.nl/HTML/includes/functions/general.php on line 159

Warning: Cannot modify header information - headers already sent by (output started at /var/www/g26948/kralenkiosk.nl/HTML/includes/functions/general.php:159) in /var/www/g26948/kralenkiosk.nl/HTML/includes/functions/general.php on line 29


Nu weet ik dat de tweede melding komt door de eerste... maar ik weet alleen niet hoe ik de eerste melding op moet lossen. Ik ben een leuk op dit gebied, maar weet dat ik via een ftp-programma iets moet wijzigen. Zo heb ik meerde foutmeldingen opgelost. Nu kan ik alleen nergens de oplossing voor deze melding vinden!

Hoop dat iemand mij kan zeggen WAAR ik WAT door DAT moet vervangen ;)
Gr. Marleen
 
"strlen" geeft de lengte van een string weer dus:
PHP:
echo strlen('test');
// 4
Echter wordt aan de functie nu een array meegegeven, dat kan niet.
Waarschijnlijk moet de lengte van de array worden berekent zodat ie later kan worden gebruikt.

Daarvoor kun je "count" gebruiken
PHP:
echo count(array(1,22,33,46));
// 4
 
Dat is onmogelijk te zeggen. Er zit een bug in je code, en ik ga er vanuit dat je de code niet zelf geschreven hebt.

Als je de 10 regels boven en onder de aangegeven regel in die file hierheen kopieert kunnen we em misschien oplossen, maar geen garanties gezien het volgensmij best wel een groot project is en de fout ook heel ergens anders kan zitten.
 
Hoi Frats,

Ik hoop dat je er iets mee kan...
Ik heb geen idee hoe lang deze foutmelding er al is, wel heb ik gisteren een afbeelding gewijzigd op de homepage... Misschien dat het daar iets mee te maken kan hebben???

ALvast bedankt!!!
PHP:
//Dit is regel 149 t/m 169
// Return all HTTP GET variables, except those passed as a parameter
  function tep_get_all_get_params($exclude_array = '') {
    global $HTTP_GET_VARS;

    if (!is_array($exclude_array)) $exclude_array = array();

    $get_url = '';
    if (is_array($HTTP_GET_VARS) && (sizeof($HTTP_GET_VARS) > 0)) {
      reset($HTTP_GET_VARS);
      while (list($key, $value) = each($HTTP_GET_VARS)) {
        if ( (strlen($value) > 0) && ($key != tep_session_name()) && ($key != 'error') && (!in_array($key, $exclude_array)) && ($key != 'x') && ($key != 'y') ) {
          $get_url .= $key . '=' . rawurlencode(stripslashes($value)) . '&';
        }
      }
    }

    return $get_url;
  }
PHP:
//Dit is regel 23 tm 43
   if ( (ENABLE_SSL == true) && (getenv('HTTPS') == 'on') ) { // We are loading an SSL page
      if (substr($url, 0, strlen(HTTP_SERVER)) == HTTP_SERVER) { // NONSSL url
        $url = HTTPS_SERVER . substr($url, strlen(HTTP_SERVER)); // Change it to SSL
      }
    }

    header('Location: ' . $url);

    tep_exit();
  }

////
// Parse the data used in the html tags to ensure the tags will not break
  function tep_parse_input_field_data($data, $parse) {
    return strtr(trim($data), $parse);
  }

  function tep_output_string($string, $translate = false, $protected = false) {
    if ($protected == true) {
      return htmlspecialchars($string);
    } else {
 
Laatst bewerkt door een moderator:
@tha devil

Ik heb écht geen idee hoe ik dat moet doen.
Normaal los ik de foutmelding op door te zoeken in bijv. HTML/includes/functions/general.php naar een tekst die in een voorbeeld aangeven staat en dit vervang ik dan door wat er onder het voorbeeld staat....
Je snapt het al, ik ben ECHT een leek ;) Maar tot nu toe is alles nog wel gelukt! Dus hoop dat het nu met een beetje hulp ook zal lukken!
 
Huh.. wat een vreemde error. Wat is de url die je gebruikt?

En kun je na deze regel:
reset($HTTP_GET_VARS);

Deze regel zetten:
var_dump( $HTTP_GET_VARS );

Dat gaat het probleem niet verhelpen, maar het geeft je als het goed is een stukje informatie dat misschien helpt met het probleem oplossen.

Wie heeft deze code gemaakt? Gebruik je de nieuwste versie? Het lijkt al een vrij oud script te zijn namelijk.
 
Moet ik die nieuwe regel gelijk vooraan beginnen of net als die andere met een aantal spaties ervoor????

Het is idd een "oude" versie. Ik heb destijds iemand betaald om dit voor me op te zetten, maar na een tijdje bleek is hij van de aardbodem verdwenen :(
Ik heb niet het geld om een nieuwe site op te laten zetten, dus moet maar roeien met de riemen die ik heb...

http://www.kralenkiosk.nl/

Waar kan ik zien welke versie het is?
 
Als het een custom script is zal het wel geen versienummer hebben. Je kunt het gewoon aan het begin van de regel zetten als je wilt, en updaten zal lastig worden.

Misschien dat het probleem duidelijk wordt met de informatie van de var_dump... als het goed is zie je dan het een en ander aan code op je scherm verschijnen bovenaan.
 
Heb de regel toegevoegd, maar krijg nu nog meer foutmeldingen, zie http://www.kralenkiosk.nl/index.php?cPath=63_110
Ik weet niet zo goed wat je bedoelt met bovenaan in het scherm... is dat als ik weer een product bestel en dan bij de pagna waar de foutmelding komt, want dat lukt nu niet meer omdat die andere foutmelding er bij is gekomen...

Hoop dat het allemaal goed komt
 
Ik zie geen foutmeldingen op die link? Kun je de fouten kopieren naar het forum?
 
wil je nog een keer kijken.... Had em stiekem even terug gezet om te kijken of dat nog werkte ;) sorry
 
:/

Dat ziet er uit alsof het klopt met het script... ik durf het zo ook niet te zeggen dan. Misschien kijk ik er overheen, of anders zit het misschien dieper in je script. Ik vrees dat je iemand nodig hebt die het voor je uit gaat zoeken helemaal ofzo.
 
hmmm, das minder! Dan haal ik de regel er maar weer uit... mensen kunnen dan in elk geval bestellen! Misschien dat er nog mensen reageren met de gouden tip....

Bedankt voor je tijd!
 
Zijn er nog mensen met DE tip.... ik hoop niet op te moeilijke antwoorden... als het kan in jip en janneke taal wat ik moet doen zodat de melding weg gaat :-)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan