Skriptsprachen (PHP, Javascript, etc.) - Forum

Derzeit sind Sie als Gast in unserem Forum aktiv. Für das Schreiben registrieren Sie sich bitte. Unser Forum ist eine Austauschplattform für Webworker zum Kommunizieren, Helfen, Informieren und Hilfe finden. Auf der rechten Seiten finden Sie eine Forenübersicht über alle Bereiche des Webmaster-Forums. Unterhalb finden Sie alle aktuellen Themen.

Diskutieren Sie hier über die serverseitige Skriptsprachen PHP und Python und über dynamische Webseitenerstellung mit Javascript und Ajax.


eUncle
Beiträge: 19

PN schreiben
Profil ansehen
User ist offline

[PHP] kleines Array-Problem

Link zur Antwort auf "[PHP] kleines Array-Problem" von eUncle eUncle, am Mittwoch den 16.04.2008 um 20:57:04

Warum funktioniert folgendes nicht?

 
HTML
1
2
3
4
5
6
7
8
9
$erwartet = array('bsp_1', 'bsp_2');
$ist = 'bsp_1';

if (in_array($ist, $erwartet))
    {
        echo 'ist in array enthalten';
    }

else { echo 'nicht enthalten'; }

podthepunk
Beiträge: 76

PN schreiben
Profil ansehen
User ist offline
Link zur Antwort auf "[PHP] kleines Array-Problem" von podthepunk podthepunk, am Mittwoch den 16.04.2008 um 21:00:46

Also bei mir funktionierts Einwandfrei.

Hast du das genau so bei dir ausprobiert, oder kann beim rüberkopiern was "verloren" gegangen sein?

mfg
pod


Benutzer gelöscht
Beiträge: 800

PN schreiben
Profil ansehen
User ist offline
Link zur Antwort auf "[PHP] kleines Array-Problem" von Benutzer gelöscht Benutzer gelöscht, am Mittwoch den 16.04.2008 um 21:13:18

Was auch geht: isset($erwartet[$ist])


Findom
Beiträge: 523

PN schreiben
Profil ansehen
User ist offline
Link zur Antwort auf "[PHP] kleines Array-Problem" von Findom Findom, am Mittwoch den 16.04.2008 um 21:22:50

array_search würde sogar noch den Key liefern.


Jan Pieper
Beiträge: 249

PN schreiben
Profil ansehen
User ist offline
Link zur Antwort auf "[PHP] kleines Array-Problem" von Jan Pieper Jan Pieper, am Mittwoch den 16.04.2008 um 23:15:20
Zitat von: Fabian

Was auch geht: isset($erwartet[$ist])

Das geht nur, wenn $ist auch wirklich der Key ist. In diesem Fall ist der Key jedoch ein numerischer Wert, da keiner explizit gegeben wurde. Daher ist in_array() schon die korrekte Funktion für diesen Fall.

@eUncle: Ehrlich gesagt sehe ich keinen Fehler und das muss so gehen, ausser wenn du in deinem Skript lokal irgendwas anders hast. Vergleich bitte nochmal das, was du bei dir im Skript stehen hast und das du hier gepostet hast, denn dein hier geposteter Code beinhaltet keinen Fehler.


eUncle
Beiträge: 19

PN schreiben
Profil ansehen
User ist offline
Link zur Antwort auf "[PHP] kleines Array-Problem" von eUncle eUncle, am Sonntag den 20.04.2008 um 13:35:58

bekam keine Mailbenachrichtigung :( (sry für die verspätete Antwort)

...ich bin auch davon ausgegangen, dass das richtig sein müsste, und so auch funktionieren müsste, jedoch hab ich das schon 100 mal überprüft, bisher noch kein Fehler gefunden, verwende bei mir lediglich andere Namen, habe diese aber auch Gleichheit usw geprüft - werd mich da vlt im Laufe des Tages nochmal ransetzen

Dank Euch :)

Link zur Antwort auf "[PHP] kleines Array-Problem" von Tobias "DerMega" Müller Tobias "DerMega" Müller, am Montag den 21.04.2008 um 10:39:56

Manchmal steht mana cuh vor dem eigenen code wie der Ochs vorm Tor und rafft net, was da nich geht.

Schreib doch deinen Code nochmal hier rein. Evtl. auch die Zeile wo dein Array gefüllt wird.

Sind in deinem Array auch Daten drin?


eUncle
Beiträge: 19

PN schreiben
Profil ansehen
User ist offline
Link zur Antwort auf "[PHP] kleines Array-Problem" von eUncle eUncle, am Montag den 21.04.2008 um 21:15:39

 
PHP
1
2
    $ex_rights = array('ra_1', 'ra_2');
    include('datei.php');

datei.php  
PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
<?php
$nick = $_COOKIE['blubberblase'];

$abfrage = "SELECT rights FROM tbl WHERE nickname='$nick'";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_array($ergebnis))
    {
        if (!in_array($row['rights'], $ex_rights))
            {
                header('Location: ?action=error_norights');
            }
    }
?>

#E#

...öhm, peinlich, aber es funktioniert eigentlich wunderbar o.0

kp, warum das letzthin nicht getan hat, vlt weiß ich's schon gar nimmer, auf jedenfall funktionierts xD
Falls Probleme auftreten, werd ich mich melden :)

Danke an alle beteiligten ;)


podthepunk
Beiträge: 76

PN schreiben
Profil ansehen
User ist offline
Link zur Antwort auf "[PHP] kleines Array-Problem" von podthepunk podthepunk, am Montag den 21.04.2008 um 21:44:42

bevor du "unsichere" Daten in Verbindung mit SQL-Anfragen nutzt, solltest du diese immer mit mysql_real_escape_string entschärfen. Dazu zählt neben $_GET und $_POST eben auch $_COOKIE, da dessen Inhalte durch den Nutzer gefälscht werden können. In deinem Fall Beduetet das:

 
PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
<?php
$nick = mysql_real_escape_string ( $_COOKIE['blubberblase'] );

$abfrage = "SELECT rights FROM tbl WHERE nickname='" . $nick . "'";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_array($ergebnis))
    {
        if (!in_array($row['rights'], $ex_rights))
            {
                header('Location: ?action=error_norights');
            }
    }
?>

mfg
pod


eUncle
Beiträge: 19

PN schreiben
Profil ansehen
User ist offline
Link zur Antwort auf "[PHP] kleines Array-Problem" von eUncle eUncle, am Montag den 21.04.2008 um 23:29:00

hey, cool, danke - wusst' ich nicht ;)

$_GET nutze ich eigentlich nicht - für was auch; wenn dann $_REQUEST

Link zur Antwort auf "[PHP] kleines Array-Problem" von Florian Breit Florian Breit, am Dienstag den 22.04.2008 um 04:44:30

Abgesehen davon solltest du deine Authorisierungsabfrage nicht alleine auf die Basis eben dieser Cookiedaten stellen. Stell dir vor ich wüsste deinen Nick auf der Seite, ich müsste mir nur mein eigenes Cookie so abändern dass dein Nick darin steht und schon hätte ich deine Zugriffsrechte = problematisch. Du solltest daher Sessions vorziehen, diese werden im Gegensatz zu den Cookies auf dem Server, nicht auf dem Rechner des Klienten gespeichert und können daher nicht so einfach manipuliert werden.
Weiteres dazu auch unter http://www.php.net/Sessions

Nebenbei, "$ex_rights" rockt :>

Edit: $_REQUEST ist übrigens eine einfache Überschneidung von $_GET, $_POST und $_COOKIE, also kein Stückchen sicherer ;) Generell gilt: Vorsicht mit allen Daten die du von einem Benutzer zugesandt bekommst.


eUncle
Beiträge: 19

PN schreiben
Profil ansehen
User ist offline
Link zur Antwort auf "[PHP] kleines Array-Problem" von eUncle eUncle, am Dienstag den 22.04.2008 um 15:37:13

mit sessions hab ich's davor gemacht, find cookies einfach cooler^^

...naja, man müsste nick wissen und noch mehr, das ist jetzt nur mal testweise so ;)

#E#

was rockt an $ex_rights? :D

ich hab das von expected rights abgeleitet ;)

@sicherheit: nunja, ich kann das pw ja noch zusätlich inem 2ten cookie speichern...das wäre dann um einiges sicherer usw...

mal schaun, was mir noch einfällt

Insgesamt 1 mal bearbeitet, zuletzt am 23.04.2008 um 19:27:38