php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 29-10-2006, 22:55
liquid
 Newbie
Links : Onlinestatus : liquid ist offline
Registriert seit: Dec 2005
Ort: Wien
Beiträge: 42
liquid ist zur Zeit noch ein unbeschriebenes Blatt
Standard Arrays übergeben

Hi!

Ich sitz jetz seit 2 Tagen rum und versuch verzweifelt rauszukriegen wie diese (sch...) arrays funktionieren.

Um mir mal nen überblick über die Funktionsweise von Arrays und wie ich sie übergeben kann zu machen hab ich ein simples skript entwickelt.

Ein php-file, von dem aus ich mittels formular ein wort in ein array einfügen kann. danach soll mir das aktualisierte array mit allen einträgen anzeigen.
Seit 2 Tagen hab ichs nicht hingekriegt....

zuerst hab ich versucht mittels serialize zu encoden und so über formular zu übergeben. nachdem ich gelesen hab das das ganze über sessions zu handlen schöner ist, bin ich jetz darauf umgestiegen.

PHP-Code:
function sendtosession($var)
      {
      
$var serialize($var);
      
$var base64_encode($var);
      
$_SESSION['myarray'] = $var;
    }; 
PHP-Code:
function getfromsession()
      {
      
$var base64_decode($_SESSION['myarray']);
      
$varunserialize($var);
      return 
$var;
      }; 
Mein Problem fängt schonmal damit an (das hatte ich auch schon wie ich mit Post versucht hab) das ich es nicht schaffe, der aus der Session geholten Variable auch tatsächlich den Typ eines Arrays zuweise.
Jedes mal wenns mir gelingt einen Wert aus der session zu extrahieren, bekomme ich beim versuch etwas anzufügen die fehlermeldung, das dafür ein Array notwendig ist...

kann mir viell. jmd der das schon ein paar mal gemacht hat nen einfachen weg von $var[] => Session => $var[] angeben. Ich verzweifel echt langsam dran... Zuviele stunden ohne erfolg... (und ich weiss genau das es wieder irgendne kleinigkeit is die ich ned bedacht hab und ich mir weil ich mich so drüber ärger mein leben lang merk)...

Ausserdem bin ich immer noch etwas verwirrt über die Verwendung von $array[] = $var
auf php.net steht zb das man damit das array erweitern kann sofern es noch nicht existiert, woanders hab ich gelesen das man damit nur eines erstellen bzw überschreiben kann. Was macht
wie sollte mein array nach:
PHP-Code:
$array = array(1,2,3,4)
$array[] = "5"
aussehn? (1,2,3,4,5) oder (5)?

danke im vorraus
liquid

Geändert von liquid (29-10-2006 um 23:08 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 29-10-2006, 23:51
Shurakai
 Master
Links : Onlinestatus : Shurakai ist offline
Registriert seit: May 2004
Ort: Bergisch Gladbach
Beiträge: 3.084
Shurakai ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zu deiner letzten Frage: Das Array würde so aussehen: (1,2,3,4,"5")

Generell kannst du es so probieren:

PHP-Code:
$bla = array();
$_SESSION['test'] = $bla;
$_SESSION['test'][] = 'wert';
$blub $_SESSION['test'];

echo 
'<pre>'print_r($_SESSION); echo '</pre>';
echo 
'<br />';
var_dump($blub); 
Mit Zitat antworten
  #3 (permalink)  
Alt 29-10-2006, 23:52
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard Re: Arrays übergeben

Machs nicht komplizierter als es ist:
PHP-Code:
<?php

$a 
= array(1,2,3);
var_dump($a);
$a[] = 4;
var_dump($a);

session_start();
var_dump($_SESSION);
if (!isset(
$_SESSION['foo'])) {
    
$_SESSION['foo'] = $a;
}
var_dump($_SESSION);

?>
Mit Zitat antworten
  #4 (permalink)  
Alt 30-10-2006, 01:22
liquid
 Newbie
Links : Onlinestatus : liquid ist offline
Registriert seit: Dec 2005
Ort: Wien
Beiträge: 42
liquid ist zur Zeit noch ein unbeschriebenes Blatt
Standard

danke für die Antworten. Viel schlauer bin ich jetz aber immer noch ned.

@onemorenerd:
Versteh ich den code richtig?:
du erstellst array $a, gibst seinen vorläufigen wert aus, fügst 4 hinzu, gibst aktuellen wert aus, startest session, gibst aktuellen session-wert aus, überprüfst ob die session schon existiert und wenn ned, wirfst du $a auf die session. (abstrakt ausgedrückt ^^).

sieht ja soweit einfach aus.

Kann ich mit dem Array in der Session auch ganz normal arbeiten wie mit einem Array das ich im code definert hab?

also mit
$_SESSION['foo'] = array(1,2,3);
$_SESSION['foo'][] = 4;

greez + dank im vorraus
liquid


Geändert von liquid (30-10-2006 um 01:41 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 30-10-2006, 01:32
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Zitat:
Original geschrieben von liquid
@onemorenerd:
Versteh ich den code richtig?:
du erstellst array $a, gibst seinen vorläufigen wert aus, fügst 4 hinzu, gibst aktuellen wert aus, startest session, gibst aktuellen session-wert aus, überprüfst ob die session schon existiert und wenn ned, wirfst du $a auf die session. (abstrakt ausgedrückt ^^).
Genau. Und die Prüfung, ob $_SESSION['foo'] bereits existiert fällt beim ersten Laden negativ aus. Beim zweiten nicht. Deshalb.
Zitat:
Kann ich mit dem Array in der Session auch ganz normal arbeiten wie mit einem Array das ich im code definert hab?

also mit
$_SESSION['foo'] = array(1,2,3);
$_SESSION['foo'][] = 4;
Du kannst das Array foo auch wieder aus der Session auspacken, es wieder a nennen oder haumichblau oder wie du magst.
PHP-Code:
$a $_SESSION['foo']; 
Zuerst hattest du doch versucht, ein Array serialisiert weiterzugeben. Im Prinzip ist es mit einer Session genau das selbe. Du sagst $_SESSION['foo'] = $a und beim Beenden des Skripts serialisiert PHP $_SESSION (ist ja auch nur ein Array), speichert den entstandenen String auf dem Server in einer Datei und beim nächsten session_start() wird diese de-serialisiert und zapp zarapp ist $_SESSION wieder genau das, was es vorher war.
Mit Zitat antworten
  #6 (permalink)  
Alt 30-10-2006, 01:42
liquid
 Newbie
Links : Onlinestatus : liquid ist offline
Registriert seit: Dec 2005
Ort: Wien
Beiträge: 42
liquid ist zur Zeit noch ein unbeschriebenes Blatt
Standard

jetz mal im ernst.. warum hab ich da so rumgeschissen???

Wenn man Sessions als globales Array behandelt und Das Array in der Session als unter-array, brauch ich mir ja garkeine gedanken mehr über senden und empfangen machen.. viele graue haare umsonst gekriegt...

danke für die hilfe. kenn mich jetz großteils aus ^^

Ich glaub mir ham zuviele leute aus irgendwelchen uralt-php-versionen rezitiert... sonst hätt ich so ne einfache lösung doch nie ausschliessen können :-)

greez & vielen dank
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 23:31 Uhr.