Php - Im Ie Gehts, Im Firefox Nicht! Problem beim auslesen von mySQL...
Anzeige
#17
geschrieben 23. August 2005 - 15:38
Mit
kannst du vielleicht einfacher gucken was ein Browser sendet und was nicht.
print_r($_POST);
kannst du vielleicht einfacher gucken was ein Browser sendet und was nicht.
#18
geschrieben 23. August 2005 - 15:49
Mensch ja , schreibe einfach an den Anfang deines PHP Codes:
phpinfo();
da stehen ja dann alle Parameter etc drin, Vergleich das einfach einmal mit dem IE und einmal mit dem Firefox:-)
phpinfo();
da stehen ja dann alle Parameter etc drin, Vergleich das einfach einmal mit dem IE und einmal mit dem Firefox:-)
#19
geschrieben 24. August 2005 - 07:52
liegt es sicher nicht an dem kleinen namensgebungsfehler? ($errorurl / $urlerror)
I'm mó. mo's good twin.
#21
geschrieben 25. August 2005 - 15:11
Um gottes willen!
Wenn ich jetzt ein Cookie setze mit der ID "uid" und dann einfach als Wert speichere: "1'; TRUNCATE users; SELECT * FROM users WHERE 1 = '0"... was denkt ihr passiert dann *g*
benutzt doch bitte mysql_real_escape_string... dafür ist es da
if ( !$result = mysql_query ( "SELECT fname, lname, addr, country, city, zipcode, email, phone FROM users WHERE uid='$uid'" ) ) {
Wenn ich jetzt ein Cookie setze mit der ID "uid" und dann einfach als Wert speichere: "1'; TRUNCATE users; SELECT * FROM users WHERE 1 = '0"... was denkt ihr passiert dann *g*
benutzt doch bitte mysql_real_escape_string... dafür ist es da
Dieser Beitrag wurde von Yalamand bearbeitet: 25. August 2005 - 15:11
#22
geschrieben 25. August 2005 - 15:17
Manchmal ist ein Problem das der Outputbuffer nicht aktiviert ist vor dem setzen des Sessions-Cookies oder das das Session-Cookie garnicht erst gespeichert wird.
Dafür hilft meist am Seitencode-Anfang:
Dann natürlich den Browser so einstellen das er beim annehmen von Cookies vorher fragt.
Dafür hilft meist am Seitencode-Anfang:
ob_start(); session_start();
Dann natürlich den Browser so einstellen das er beim annehmen von Cookies vorher fragt.
#23
geschrieben 25. August 2005 - 17:01
Danke für den Tip!
Aber welche funktion stellt mysql_real_escape_string dar?
Ich bräuchte auch einen Code für UPDATE und DELETE.
Was ist eigentlich der unterschied zwischen mysql_real_escape_string und mysql_query?
Danke
Aber welche funktion stellt mysql_real_escape_string dar?
Ich bräuchte auch einen Code für UPDATE und DELETE.
Was ist eigentlich der unterschied zwischen mysql_real_escape_string und mysql_query?
Danke
#24
geschrieben 25. August 2005 - 17:21
Oje....vielleicht solltest du als Profi mal einen Blick ins Handbuch werfen.
#25
geschrieben 25. August 2005 - 18:03
Eigentlich hätte dein Cookie ja gar keine Wirkung, denn ich hab jetzt zur sicherheit in jede notwendige Datei einen Code eingefügt:
if (!isset($_SESSION["uid"])) header("Loaction: session_error.php");
Bietet das hoche Sicherheit?
if (!isset($_SESSION["uid"])) header("Loaction: session_error.php");
Bietet das hoche Sicherheit?
#26
geschrieben 25. August 2005 - 21:43
if (!isset($_SESSION["uid"])) header("Loaction: session_error.php");
ist nur sicher wenn du vorher keine !isset($uid) machst, wenn register globals an hast. ist etwas komplizierter mit diversen php einstellungen.
if(!isset($uid)) $uid = $_SESSION['uid']; if (!isset($_SESSION["uid"])) header("Loaction: session_error.php");
könnte auf einem falsch eingestellten server mit folgender url umgangen werden: http://localhost/index.php?uid=name
$uid wäre dann gesetzt mit "name" und würde alle checks durchlaufen. also entweder komplett sessions oder komplett posts/get. aber beides zu vermischen ist ab und zu doppelt zu betrachten.
#27
geschrieben 25. August 2005 - 21:59
Hier meine Querversion, auch wenn ich keine Ahnung hab obs überhaupt von den Daten einen Sinn ergibt =)
<?php ob_start(); // session_start() MUSS auf eine Seite VOR der bestellung! // Sonst hat der Benutzer das Cookie erst gesetzt und es erscheint // evtl. leer, je nach PHP und Bugversion session_start(); require_once('../../../../mysql.php'); // Ich gehe davon aus das UID eine Zahl ist // Defines, Variablen die sich nicht ändern dürfen zur folgenden Laufzeit define( 'MAILTO' , '[email protected]' ); // Benötigte Variablen abfangen, ansonsten Abschied if( !isset($_SESSION['uid']) || !isset($_POST['paket']) || !isset($_POST['domain']) || !isset($_POST['uid']) || !is_numeric($_POST['uid'])) { echo 'Fehler bei der Übertragung der Parameter'; exit(0); } // Prio festlegen vom Session-Cookie if(!isset($_SESSION['uid'])) $_SESSION['uid'] = $_POST['uid']; db_connect(); // Von dir übernommen // Optimierte SQL Scripts // Benutzerdaten auslesen VOR dem speichern der Daten $result = mysql_query('SELECT * FROM user WHERE uid = '.$_SESSION['uid']); if(mysql_num_rows($result) === 1) { $daten = mysql_fetch_array($result, MYSQL_ASSOC); } else { echo 'Fehler beim auslesen der Daten'; exit(0); } // Die Daten sind dann abrufbar über $daten['fname'], $daten['lname'] etc. // Mal eine Frage zu den folgenden Script: // $sql="DELETE FROM bestellung WHERE typ='webhosting' and uid='$uid'"; // $sql="insert into bestellung(uid,typ) values('$uid','webhosting')"; // Bedeutet dies das alle vorherigen Bestellungen nicht verloren gehen? // Der uid Wert kann ohne Sicherheit und Quotes gemacht werden, da wir vorher // überprüft haben ob es sich um eine Zahl handelt mysql_query(' REPLACE INTO bestellungen SET paket = "'.mysql_escape_string($_POST['paket']).'", domain = "'.mysql_escape_string($_POST['domain']).'", date = '.time().' WHERE typ = "webhosting" AND uid = '.$_SESSION['uid'] ); // Diese Zeilen sind überflüssige performancefressende Abfragen. Du hast die // Werte ja noch in $_POST['paket'] und $_POST['domain'] ! // mysql_query("select paket from bestellung where uid='$uid' and typ='webhosting'"); // mysql_query("select domain from bestellung where uid='$uid' and typ='webhosting'"); db_disconnect(); // ... der rest // und der Abschluss mail(MAILTO,"$betreffwebmaster","$koerperwebmaster","FROM: $absender"); header("Location: http://www.toxic.at/cgi-bin/useraccount/Bestellung/webhosting/schritt3/index.php"); ?>
Dieser Beitrag wurde von Yalamand bearbeitet: 25. August 2005 - 22:00
#28
geschrieben 26. August 2005 - 09:39
Zu deiner ersten Antwort:
Obwohl register_globals aktiviert ist, kommt man an meinem Sicherheitscheck trotzdem nicht vorbei
Zur zweitern Antwort:
UID war vorher mal der Premierschlüssel. Jetzt ist es alerdings der Benutzername.
Ich verstehe allerdings nicht, was dieser Code soll:
// Prio festlegen vom Session-Cookie
if(!isset($_SESSION['uid'])) $_SESSION['uid'] = $_POST['uid'];
Da könnte jemand ja auf seiner Website ein POST-Formular zu meiner Datei absenden, und wäre drinnen!?
Danke übrigens für die Mühe!!
Obwohl register_globals aktiviert ist, kommt man an meinem Sicherheitscheck trotzdem nicht vorbei
Zur zweitern Antwort:
UID war vorher mal der Premierschlüssel. Jetzt ist es alerdings der Benutzername.
Ich verstehe allerdings nicht, was dieser Code soll:
// Prio festlegen vom Session-Cookie
if(!isset($_SESSION['uid'])) $_SESSION['uid'] = $_POST['uid'];
Da könnte jemand ja auf seiner Website ein POST-Formular zu meiner Datei absenden, und wäre drinnen!?
Danke übrigens für die Mühe!!
Dieser Beitrag wurde von toxic.at bearbeitet: 13. November 2010 - 19:43
- ← Programmierung Forensystem - Suche Mitarbeiter
- Skript/Web-Programmierung
- [problem] Animierte Buttons Via Css →