Fehler in php skript

Gast #5914767
Hallo,

ich habe in meinem php skript einen Fehler aber finde ihn nicht...

hier das Skript
1
function check_recordExists($string_table, &$stringarray_rowvalue) {
2

3
 $string_where = "";
4
        
5

6
  foreach ($stringarray_rowvalue as $nr => $rowvalue)
7
  {
8
    
9
if (strlen($string_where) > 0)
10
     {
11
       $string_where = + 'AND' + $rowvalue["row"] + "=" + $rowvalue["value"];
12
  }
13
    else
14
{
15

16
 $string_where = $rowvalue["row"] + "=" + $rowvalue["value"];
17
echo $string_where;
18
}
19

20

21
$string_table="tet";
22
$stringarray_rowvalue[0][row]   = "Axel";
23
$string_rowvalue[0][value]  = "Pratzner";
24
echo check_recordExists($string_table,$string_rowvalue);

ausgabe ist
1
0

wo ist der Fehler??
Der Fehler ist schonmal das der Code unvollständig ist.
Es fehlen auf jeden Fall die schließenden Klammern für das foreach und 
für die Funktion.

Ansonsten gibst du keinen Wert zurück.
Wenn deine Funktion keinen Wert zurück gibt, ist der Wert null bzw. als 
Ausgabe dann eben 0 - das ist für PHP mehr oder weniger das gleiche.
Gast
Sven C. schrieb:
> Wenn deine Funktion keinen Wert zurück gibt, ist der Wert null bzw. als
> Ausgabe dann eben 0

Nö, "echo NULL;" ergibt keine Ausgabe. Aber strings werden mit . und 
nicht mit + verknüpft. "12" + "34" ergibt nicht "1234", sondern 46. "12" 
. "34" gäbe "1234". Und "keine 123 nummer" + "keine 123 nummer" ergibt 
nunmal 0. Wenn du Warnungen einschaltest, bekommst du da auch eine.

Aber wie hier das SQL Statement zusammengesetzt werden soll, ist grob 
fahrlässig. Schau dir mal prepared statements an, oder stelle zumindest 
anderweitig sicher, dass deine SQL Statements richtig escaped sind.
Mea culpa.

Hab's gerade ausprobiert, stimmt null gibt keine Ausgabe.
Der falsche Operator ist mir im Halbschlaf gar nicht bewusst geworden.

Ob der Code allerdings für SQL Injections anfällig ist, ist doch stark 
davon abhängig woher die Variablen kommen und wie die Funktion genutzt 
wird.

Wenn der Code keinerlei Nutzer- bzw. Formulareingaben bearbeitet, 
sondern rein intern Daten verarbeitet, dann besteht auch wenig Chance 
auf eine SQL-Injection.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 7 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.