php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 07.05.2009, 17:41  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard [Erledigt] Mehere Arrays und nur 2 Werte aus jedem auslesen

Hallo Leute,

ich versuche mich mal wieder in der OOP und will dafür ein OOP Basiertes Captcha machen, nicht für den Produktiveinsatz, einfach nur zur Übung.
Dazu habe insgesamt 4 Arrays erstellt.

1. Array für Kleinbuchstaben
2. Array für Großbuchstaben
3. Array für Zahlen
4. für Sonderzeichen

Dann mixe ich die Arrays und lasse sie shuffle mischen. Am Ende gebe ich sie mit implode und array_slice aus. Alles das klappt wunderbar.

Ich will aber nun im Vorfeld erreichen, bevor die Arrays gemischt und als String ausgegeben werden das aus jedem Array 2 Werte in dem String enthalten sind. Das heist genau aus jedem der 4 Arrays sollen jeweil 2 zufällige Werte ausgelesen werden und diese dann durcheinandergemischt werden.

Meine Frage wie kann ich das erreichen, habe im Manual keine Funktion dafür gefunden, auser array_rand aber diese gibt mir nur die Schlüssel zurück, was ich ja nicht will. Habe das dann versucht mit array_flip zu lösen, also anstatt die Schlüssel die Werte zurück zu geben, aber das funktionierte auch nicht.

Hier mein Code
PHP-Code:
<?php
/*
-----------------------------------------
 php5 oop captcha test
-----------------------------------------
*/
class Captcha
{
 
/*
 *
 * deklaration der variablen
 * chars, int, sonderzeichen
 *
 */
 
 
private $char_small_array = array();
 private 
$char_big_array = array();
 private 
$int_array = array();
 private 
$sond_char = array();
 private 
$mixed_array;
 private 
$lenght 8;
 private 
$ausgabe;
 
 
/*
 *
 * kreiere ein gemixtes array
 *
 */
 
public function CreateMixedArray()
 {
  
//small char array erstellen
  
$this->char_small_array range('a','z');
 
  
//big char array erstellen
  
$this->char_big_array range('A','Z');
 
  
//intager array erstellen
  
$this->int_array range('0','9');
 
  
//sonderzeichen array erstellen
  
$this->sond_char_array = array('#','+','*','~','-','§');
 
  
//arrays mixen
  
$this->mixed_array array_merge($this->char_small_array$this->char_big_array,$this->int_array,$this->sond_char_array);
 
  
//durchmische das ganze array
  
shuffle($this->mixed_array);
 
  
$this->ausgabe implode(''array_slice($this->mixed_array0$this->lenght));
 
  return 
$this->ausgabe;
 }
}
/*
------------------------------
 aufruf der captcha klasse
------------------------------
*/
$captcha = new Captcha;
echo 
'<pre>';
 
print_r($captcha->CreateMixedArray());
echo 
'</pre>';
?>
Könnt Ihr mir da weiter helfen? Danke Gruß litter

PS.: hierbei geht es auch erst mal nur um den String der dann mal über dem Bild liegen soll
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 07.05.2009, 18:34  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Konnte das Problem selber lösen.

Ich habe schon die richtigen Array Funktionen dazu gefunden nur habe ich sie in den falschen Reihenfolgen eingesetzt. Hier mal dr richtige Code so funktioniert es. Es werden aus jedem Array 2 Zeichen ausgegeben und dann alles gemischt.

PHP-Code:
<?php
/*
-----------------------------------------
 php5 oop captcha test
-----------------------------------------
*/
class Captcha
{
 
/*
 *
 * deklaration der variablen
 * chars, int, sonderzeichen
 *
 */
 
 
private $char_small_array = array();
 private 
$char_big_array = array();
 private 
$int_array = array();
 private 
$sond_char = array();
 private 
$mixed_array;
 private 
$lenght 8;
 private 
$ausgabe_string;
 
 
/*
 *
 * kreiere ein gemixtes array
 * 
 */
 
public function CreateMixedArray()
 {
  
//small char array erstellen
  
$this->char_small_array range('a','z');
  
$this->char_small_array array_flip($this->char_small_array);
  
$this->char_small_array array_rand($this->char_small_array2);
  
  
  
//big char array erstellen
  
$this->char_big_array range('A','Z');
  
$this->char_big_array array_flip($this->char_big_array);
  
$this->char_big_array array_rand($this->char_big_array2);
  
  
//intager array erstellen
  
$this->int_array range('0','9');
  
$this->int_array array_flip($this->int_array);
  
$this->int_array array_rand($this->int_array2);
  
  
//sonderzeichen array erstellen
  
$this->sond_char_array = array('#','+','*','~','-','§');
  
$this->sond_char_array array_flip($this->sond_char_array);
  
$this->sond_char_array array_rand($this->sond_char_array2);
  
  
//arrays mixen
  
$this->mixed_array array_merge($this->char_small_array$this->char_big_array,$this->int_array,$this->sond_char_array);
  
  
//durchmische das ganze array
  
shuffle($this->mixed_array);
  
  
$this->ausgabe_string implode(''array_slice($this->mixed_array0$this->lenght));
  
  return 
$this->ausgabe_string;
 }
}
/*
------------------------------
 aufruf der captcha klasse
------------------------------
*/
$captcha = new Captcha;
echo 
'<pre>';
 
print_r($captcha->CreateMixedArray());
echo 
'</pre>';
?>
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline  
Alt 07.05.2009, 19:24  
Erfahrener Benutzer
 
Benutzerbild von PhillKill12
 
Registriert seit: 26.10.2008
Beiträge: 387
PHP-Kenntnisse:
Fortgeschritten
PhillKill12 befindet sich auf einem aufstrebenden Ast
PhillKill12 eine Nachricht über MSN schicken
Standard

Passt, wenn du es selber lösen konntest, dann sind kannst du es ja auch als gelesen markieren!

Danke

Gruß Phillkill12
__________________
PHP-Code:
if ( $humans >= ) {
   
war ();

PhillKill12 ist offline  
Alt 07.05.2009, 20:30  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Ah verdammt, das habe ich vergessen zu markieren. Sorry hole ich sofort nach.
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Alle Werte einer DropDown-Liste auslesen? Hannes5000 JavaScript, Ajax und mehr 2 22.03.2009 01:28
[Erledigt] Textfeld auslesen und nur bestimmte Werte übernehmen LB1981 PHP Tipps 2009 26 27.01.2009 21:24
Werte aus externer Datei auslesen und entsprechendes Bild einfügen Forumposter PHP Tipps 2008 12 21.10.2008 10:28
Datenbank auslesen mit Hilfe von Arrays jackoff PHP Tipps 2008 7 06.09.2008 22:21
Werte aus einem Text auslesen Smilerr PHP Tipps 2008 1 18.05.2008 19:27
Mehere Werte aus Selectbox (multiple) in DB eintragen? c-bass PHP Tipps 2005-2 6 10.08.2005 14:17
Bestimmte Werte aus cvs Datei auslesen PHP Tipps 2005-2 1 20.06.2005 13:11
[Erledigt] Mehrere Werte mit GET von einer Tabelle auslesen... PHP Tipps 2005 2 01.06.2005 13:53
Werte eines Arrays verändern, nur mit array_walk/map? PHP Tipps 2005 3 17.04.2005 16:00
2 Arrays vergleichen und unterschiede auslesen PHP Tipps 2005 6 25.02.2005 09:34
[Erledigt] Werte aus Textdatei auslesen PHP Tipps 2004 22 19.10.2004 15:00
Die 10 letzten werte aus einer mysql datenbank auslesen Datenbanken 2 15.09.2004 18:28
[Erledigt] Einzelne Werte aus TXT Datei auslesen und anzeigen. PHP Tipps 2004 1 08.09.2004 06:31
Werte eines Arrays in eine MySQL schreiben PHP Tipps 2004 2 28.06.2004 13:32
[Erledigt] Werte eines Arrays aus Tabelle auslesen ? PHP-Fortgeschrittene 12 08.06.2004 19:57

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php5 array auslesen, php zwei array mixen, oop php array auslesen, array mehrere werte auslesen, 2 werte in ein array, php array \2 werte\ ausgeben, array 10 werte auslesen php, mehrere werte aus char array auslesen, php zwei arrays auslesen, array mit mehreren werten shuffle, php arrays werte auslesen, php option mehrere arrays anlegen und auslesen, php mehrere array werte, oop php array auslesen deutsch, php oop array auslesen, php char array, shuffle array php nur werte ausgegeben, datenbankfeld mit 2 werten auslesen, array in array nur values auslesen php, php meherere arrays auslesen

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:43 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum