SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Das Zend Framework

Das Zend Framework zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen
Hilfe Community Kalender Heutige Beiträge Suchen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 29.12.2009, 10:32:18
tsunamitsunami tsunamitsunami ist offline
Junior Member
 
Registriert seit: Dec 2005
Alter: 51
Beiträge: 236
sql-Abfrage via Post übergeben

Hallo,
ich habe einen pdf-Export via fpdf realisiert.
Um nicht bei jedem Dokument zwei sql-Abfragen pflegen zu müssen übergebe ich den sql-String via hidden-Feld und POST.

Die Abfrage im Hauptdokument ist korrekt und wird korrekt ins hiddenfeld geschrieben.
Schaue ich mir mit echo $_POST['sqlmain'] die Abfrage im pdf-Dokument an, hat der mir plötzlich alle Anführungszeichen maskiert.

Im Hauptdokument:

PHP-Code:
SELECT countschadensmeldungen.id ) AS anzahlsumschadenhoehe_ss+schadenhoehe_ps+schadenhoehe_vs) as hoeheDate_Formatschadensmeldungen.datum,%Y) as jahr,sum(schadenhoehe_ss)as sachschaeden,sumschadenhoehe_vs) as vermoegensschaeden,sum(schadenhoehe_ps) as personenschaeden FROM schadensmeldungen GROUP BY Date_Format(schadensmeldungen.datum,%Yorder by datum desc limit 5 
Ankommen tut dies:


Mist in der Code-Ansicht gehts nicht. Also dann so:
SELECT count( schadensmeldungen.id ) AS anzahl, sum( schadenhoehe_ss+schadenhoehe_ps+schadenhoehe_vs) as hoehe, Date_Format( schadensmeldungen.datum,\'%Y\') as jahr,sum(schadenhoehe_ss)as sachschaeden,sum( schadenhoehe_vs) as vermoegensschaeden,sum(schadenhoehe_ps) as personenschaeden FROM schadensmeldungen GROUP BY Date_Format(schadensmeldungen.datum,\'%Y\') order by datum desc limit 5

Es geht um das '%Y\' Es werden also ungefragt die Anführungszeichen maskiert. Der string ist mit ->"<- eingefasst. Innerhalb stehen dann einige ->'<-
Dann bekomme ich natürlich eine Warning. POST übergibt doch einfach nur eine Variable, oder nicht?

Danke für eure Hinweise...
tsunamitsunami

Geändert von tsunamitsunami (29.12.2009 um 10:39:26 Uhr) Grund: Danke fehlte
Mit Zitat antworten
  #2  
Alt 29.12.2009, 11:07:56
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: sql-Abfrage via Post übergeben

1. überflüssige backslashes entfernt man mit stripslashes()
2. dem nutzer ausdrücklich dazu aufzufordern selbst sql-statements zu formulieren und damit am server rumzuspielen, ist so ziemlich das unsicherste was man machen kann.
Mit Zitat antworten
  #3  
Alt 29.12.2009, 11:59:29
tsunamitsunami tsunamitsunami ist offline
Junior Member
 
Registriert seit: Dec 2005
Alter: 51
Beiträge: 236
AW: sql-Abfrage via Post übergeben

Hi,

Wie man \ wieder raus bekommt, weiss ich. Danke. Hatte es mit str_replace gemacht.
Nur warum da plötzlich backslashes drin sind, wollt ich wissen. Macht POST sowas wie ein auto-replace?

"Ausdrücklich dazu auffordern..."
Ok. Öffentlich vielleicht verkehrt. Das ganze soll hinterher im abgeschlossenen Nutzerkreis laufen.
Daher ist es nicht ganz so schlimm. Die wollen nur dass es läuft und nicht manipulieren.

Überall werden mit get ids übergeben. Da kann ich natürlich auch manipulieren und dadurch Fehler produzieren.
Mit Zitat antworten
  #4  
Alt 29.12.2009, 12:06:09
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: sql-Abfrage via Post übergeben

Zitat:
Zitat von tsunamitsunami Beitrag anzeigen
Hi,

Wie man \ wieder raus bekommt, weiss ich. Danke. Hatte es mit str_replace gemacht.
Nur warum da plötzlich backslashes drin sind, wollt ich wissen. Macht POST sowas wie ein auto-replace?
weil da offenstlich eine einstellung aktiv ist, die bei post-daten automatisch backslashes hinzufügt. weiß leider nicht genau wie sie heißt.

Zitat:
"Ausdrücklich dazu auffordern..."
Ok. Öffentlich vielleicht verkehrt. Das ganze soll hinterher im abgeschlossenen Nutzerkreis laufen.
Daher ist es nicht ganz so schlimm. Die wollen nur dass es läuft und nicht manipulieren.

Überall werden mit get ids übergeben. Da kann ich natürlich auch manipulieren und dadurch Fehler produzieren.
richtig, aber fehler produzieren != in der datenbank rumschreiben können.
Mit Zitat antworten
  #5  
Alt 29.12.2009, 12:14:50
tsunamitsunami tsunamitsunami ist offline
Junior Member
 
Registriert seit: Dec 2005
Alter: 51
Beiträge: 236
AW: sql-Abfrage via Post übergeben

Hi,
hast ja recht. ;)
Muss ich mir halt was anderes überlegen...
Vielleicht die sqls auslagern und via include abhängig von der Herkunft einbinden...
Wie machst Du sowas? Oder pflegst Du wirklich für jede Seite ggfs. n*2 Abfragen?

POST-Verhalten
OK, ist dann irgendwo eine Servereinstellung. Dachte schon ich hätte einen Glühwein zuviel gehabt.
xyz rein und xya raus

Guten Rutsch
tsunamitsunami
Mit Zitat antworten
  #6  
Alt 29.12.2009, 18:15:02
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: sql-Abfrage via Post übergeben

naja, ich weiß ja nicht, wie diese sql-statements aufgebaut sind, aber man kann die sicherlich auch dynamisch zusammensetzen. dazu brauchts aber mehr informationen. auf manuelles verwalten hätte ich auch keine lust.
Mit Zitat antworten
  #7  
Alt 30.12.2009, 09:06:38
cortex cortex ist offline
SELFPHP Profi
 
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
AW: sql-Abfrage via Post übergeben

Zitat:
Zitat von feuervogel Beitrag anzeigen
weil da offenstlich eine einstellung aktiv ist, die bei post-daten automatisch backslashes hinzufügt. weiß leider nicht genau wie sie heißt.
vermutlich magic_quotes_gpc. das problem könnte dann so gelöst werden:

PHP-Code:
if( get_magic_quotes_gpc( ) )
{
    
$input stripslashes$input );    

cx
Mit Zitat antworten
  #8  
Alt 30.12.2009, 11:22:06
tsunamitsunami tsunamitsunami ist offline
Junior Member
 
Registriert seit: Dec 2005
Alter: 51
Beiträge: 236
AW: sql-Abfrage via Post übergeben

Hallo,

die sqls werden schon dynamisch zusammengesetzt.
Das Problem ist, das ich in allen Abfragen einige dynamische Variablen habe. Also zB das aktuelle Jahr $_get-Variablen usw.

Eine Idee ist nun ein externes php-Dokument mit allen Abfragen via include einbinden und
die Abfragen dann per
PHP-Code:
$sql=$_server['php_self']."_sql 
einbinden.
Dann heisst die Abfrage wie das Dokument. Also zB $index_sql="select...

Klar noch nen bisschen verfeinern wie Punkt und Endung raus usw.

Allerdings habe ich dann immer alle Abfragen in allen Dokumenten. Sind insgesamt ca. 20 Abfragen, davon werden dann 18 nicht gebraucht. *lautdenk*

Dürfte aber performancemässig nicht viel machen, oder? Da es bis hier nur 20 Strings sind, die beim Seitenaufruf erzeugt weden. Selbst wenn es mal 50 werden sollten.
Gruß
tsunamitsunami
Mit Zitat antworten
Antwort

Stichworte
sql post hidden fpdf


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

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 aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
falsche Sql Abfrage mitch26 MySQLi/PDO/(MySQL) 0 07.08.2009 21:30:46
SQL Abfrage mit PHP Variablen die leer sind WHERE plz = ? Loki555 MySQLi/PDO/(MySQL) 8 28.04.2009 14:18:33
Abfrage einer bestimmten Spalte in SQL LV2005 MySQLi/PDO/(MySQL) 7 01.08.2006 18:15:54
zweidimensionale Array mit POST übergeben robotto7831a PHP für Fortgeschrittene und Experten 22 05.04.2004 12:48:36
SQL ABfrage in Tabelle ausgeben. Shape24 PHP für Fortgeschrittene und Experten 13 17.05.2003 10:33:30


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:41:58 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt