tutorials.de Buch-Aktion 05/2012
Like Tree2Danke
  • 1 Beitrag von ComFreek
  • 1 Beitrag von Raisch
ERLEDIGT
NEIN
ANTWORTEN
8
ZUGRIFFE
219
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    seomaniac seomaniac ist offline Mitglied
    Registriert seit
    Dec 2011
    Beiträge
    18
    Guten Abend meine Guten

    Ich habe wiedermal ein kleines aber sicher lösbares Problem

    Ich möchte einen externer String in eine Funktion laden aber es spuckt leider immer wieder einen Fehler aus.

    hier mein beispielcode:

    PHP-Code:
    $satz = array( '0123456789ABCDEFGHIJKLMNPRSTUVWXYZ''0123456789' );
    $testarray = array( '10''8''6'''$satz[0] );


    function 
    getpass() { //  getpass($satz, $testarray) funktioniert leider auch nicht
    $newpass '';
    /*hier befindet sich der fehler*/$GLOBALS[$laenge] = $testarray[0]; // $laenge = global $testarray[0]; geht ebenfalls nicht
    $GLOBALS[$string] = $testarray[4];

    mt_srand((double)microtime()*1000000);

    for (
    $i=1$i <= $laenge$i++) {
    $newpass .= substr($stringmt_rand(0,strlen($string)-1), 1);
    }

    return 
    $newpass;
    }


    echo 
    getpass(); 
    mein Problem muss in etwa auf diese Weise gelöst werden denn die werte in $testarray haben gewisse Schwankungen.

    Bin natürlich dankbar für jede Antwort

    liebe Grüße, seomaniac
    Geändert von seomaniac (02.01.12 um 18:04 Uhr)
     

  2. #2
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    item: Genauere Fehlerangaben währen gut

    item: Du hast den Ansatz ja bereits drin: $GLOBALS[]
    PHP-Code:
    $GLOBALS[$laenge] = $GLOBALS['testarray'][0]; 
    Nachtrag: Oder mittels global arbeiten
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  3. #3
    Avatar von ComFreek
    ComFreek ComFreek ist gerade online [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.364
    Blog-Einträge
    4
    Hallo seomaniac,

    du musst die Variable zuerst in der Funktion mittels global so verfügbar machen:
    PHP-Code:
    function getpass()
    {
      global 
    $testarray;
      
    // use $testarray!

    Siehe auch dieses Beispiel: http://codepad.org/BMSpu7a9
     
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

  4. #4
    seomaniac seomaniac ist offline Mitglied
    Registriert seit
    Dec 2011
    Beiträge
    18
    PHP-Code:
    function getpass() {
    $newpass '';
    $GLOBALS[$laenge] = $GLOBALS[$testarray[0]; // line 23
    $GLOBALS[$string] = $GLOBALS[$testarray[4]; // auch so mit fehler: $GLOBALS['testarray'][4]

    mt_srand((double)microtime()*1000000);

    for (
    $i=1$i <= $laenge$i++) {
    $newpass .= substr($stringmt_rand(0,strlen($string)-1), 1);
    }

    return 
    $newpass;

    hierbei erscheint nach Ausführung:
    Parse error: syntax error, unexpected ';', expecting ']' in ...php on line 23
    __________
    bei:
    PHP-Code:
    function getpass() {
      global 
    $testarray;
    }{
    $newpass '';
    $laenge$testarray[0];
    $string$testarray[4];
    //$GLOBALS[$laenge] = $testarray[0];
    //$GLOBALS[$string] = $testarray[4];

    mt_srand((double)microtime()*1000000);

    for (
    $i=1$i <= $laenge$i++) {
    $newpass .= substr($stringmt_rand(0,strlen($string)-1), 1);
    }

    return 
    $newpass;

    erschein Knallhart nichts :-/
    selbst wenn ich im Array $testarray[4] die Werte ohne sie nach $satz[0] weiterzuleiten
    definiert habe, da ich Vermutete das es daran liegt.

    Wäre nett wenn ihn mir nochmal einen kleinen Stupser in die richtige Richtung geben könnten

    lg
     

  5. #5
    Avatar von ComFreek
    ComFreek ComFreek ist gerade online [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.364
    Blog-Einträge
    4
    In deinem zweiten Code sehe ich min. eine Klammer direkt hinter galobal $testarray; zu viel.

    Versuche mal das hier:
    PHP-Code:
    function getpass()

      global 
    $testarray

      
    $newpass ''
      
    $laenge$testarray[0]; 
      
    $string$testarray[4]; 
      
      
    mt_srand((double)microtime()*1000000); 

      for (
    $i=1$i <= $laenge$i++)
      { 
        
    $newpass .= substr($stringmt_rand(0,strlen($string)-1), 1); 
      } 
      
      return 
    $newpass

    seomaniac bedankt sich. 
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

  6. #6
    seomaniac seomaniac ist offline Mitglied
    Registriert seit
    Dec 2011
    Beiträge
    18
    Ich verbeuge mich vor Dir

    Vielen vielen Dank,
    Es funktioniert!

    Habe noch viel zu Lernen, die geschwungenen Klammern sind mir noch etwas Suspekt
     

  7. #7
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Und im ersten Beispiel hast du mein Code völlig falsch abgeschrieben

    PHP-Code:
    //Dein falscher Code
    $GLOBALS[$laenge] = $GLOBALS[$testarray[0];

    //Der richtiger Code
    $GLOBALS[$laenge] = $GLOBALS['testarray'][0]; 
    Wobei ich an $GLOBALS[$laenge] zweifle. Es ist Code-mässig richtig, macht aber wahrscheinlich nicht was du willst. Wie wird $GLOBALS[$laenge] später wieder ausgewertet?
    $GLOBALS[$laenge] ergibt ein Eintrag im Array $GLOBALS mit dem Index im Wert von $laenge
    Als Beispiel:
    PHP-Code:
    $länge 15;
    $GLOBALS[$laenge] = 100;
    var_dump($GLOBALS);
    /**
    ergibt:
    array( 15 => 100)
    */ 
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  8. #8
    seomaniac seomaniac ist offline Mitglied
    Registriert seit
    Dec 2011
    Beiträge
    18
    @yaslaw,

    Deinen codeschnipsel habe ich natürlich auch genau wie Geschrieben getestet aber heraus kommt:
    Notice: Undefined variable: laenge in ...php on line 49

    aber halb so Wild, das Global einzubinden wie von Comfreek gezeigt
    find ich kurz und praktischer.

    vielen Dank euch beiden für die Hilfestellung
     

  9. #9
    Avatar von Raisch
    Raisch Raisch ist offline extraordinary bit
    Registriert seit
    Aug 2011
    Ort
    Berlin
    Beiträge
    333
    Zitat Zitat von seomaniac Beitrag anzeigen
    @yaslaw,

    Deinen codeschnipsel habe ich natürlich auch genau wie Geschrieben getestet aber heraus kommt:
    Notice: Undefined variable: laenge in ...php on line 49

    ...
    Ist ja auch kein wunder...

    $länge = 15;
    $GLOBALS[$laenge] = 100;

    Gruß
    Yaslaw bedankt sich. 

Ähnliche Themen

  1. Funktion innerhalb einer Funktion aufrufen
    Von Atalión im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 31.01.10, 17:32
  2. Antworten: 8
    Letzter Beitrag: 18.01.08, 12:11
  3. EventHandler onClick innerhalb einer Funktion aufrufen
    Von messmar im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 28.07.07, 10:37
  4. Antworten: 4
    Letzter Beitrag: 09.07.05, 00:19
  5. Antworten: 2
    Letzter Beitrag: 02.12.02, 16:59