Vollstndige Version anzeigen : Hilfe: Fatal error
RedPartisan
02-02-2004, 12:32
Fatal error: [] operator not supported for strings in ...file.php on line 73
die gemeinte line sieht so aus:
$array[] = $wert;
Was kann ich tun?
feuervogel
02-02-2004, 12:43
bitte immer alles posten was das problem betrifft.
<?php
$wert = "fnf";
$array[] = $wert;
?>
luft einwandfrei.
eventuell ist $array ein string, also du hast irgendwo vorher mal geschrieben $array = "blubb";
falls dich blubb an der stelle nicht mehr interessiert, schreib $array = array(); vor deine zeile mit dem fehler.
RedPartisan
02-02-2004, 12:52
naja, das ganze script so aus:
for($ii=0;$ii<=$anz;$ii++){
$ges_code = "";
for($i=1;$i<=$len;$i++){
srand((double)microtime()*10000000000000);
if($i % 2 == 0){
$sr = rand(97,122);
}
else{
$sr = rand(48,57);
}
$zeichen = chr($sr);
$ges_code = $ges_code . $zeichen;
}
$ges_code = strtoupper($ges_code);
$codes[] = "$ges_code";
$zaehle = array_count_values($codes);
while(list($key, $val) = each($zaehle)){
if($val >= 2){
$codes = array_pop($codes);
$anz++;
}
}
}
und das soll wie gezeigt passwrter erstellen. falls ein passwort schon einmal vorkommt, wird es gelscht...
wenn ich aber nur 4-stellige passwrter brauche (also $len=4), und das aber in einer groen menge (zb. $anz = 100), dann tritt der oben genannte fehler auf...
woran liegz?
feuervogel
02-02-2004, 12:56
das ganze script kann gar nicht so aussehen, da fehlen die <?php und ?>
</besserwissermodus>
aber ich schaus mir gleich mal an...
Initialisiere mal vor der gesamten Schleifenstruktur:
unset ($codes);
$codes = array ();
Ich hab die Befrchtung, dass irgendwo vorher der Variablen $codes schonmal ein String zugewiesen wurde.
feuervogel
02-02-2004, 13:13
bitte immer alles posten was das problem betrifft.
bitte, wenn sich hier jemand schon die mhe macht, das script testen zu wollen, dann bitte ALLES posten...es hat keine sinn rumzuraten...
$anz und $len sind bei mir undefined...
feuervogel
02-02-2004, 13:16
also so gehts prima:
$codes = array();
$codes[] = $ges_code;
kann es sein, dass irgendwo vorher steht:
$codes = "bla"; ??? in diesem script...?
feuervogel
02-02-2004, 13:39
so, hab den fehler gefunden...du hast deine for schleife mit dem $ii...
die wird $anz mal wiederholt.
und bei der wiederholung passiert das:
$codes = array_pop($codes);
http://de2.php.net/array_pop
da wird $codes zum string, weil der rckgabe wert von array_pop ein string ist...und beim erneuten schleifendurchlauf tritt der fehler auf...
RedPartisan
02-02-2004, 14:31
also kurz:
aus
$code = array_pop($code);
wird:
array_pop($code);
P.s.: Sorry, wegen $anz und $len... das sind natrlich variablen, die von einem Formular kommen !!!
vBulletin v3.0.7, Copyright ©2000-2006, Jelsoft Enterprises Ltd.