WinFuture-Forum.de: Php - Im Ie Gehts, Im Firefox Nicht! - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
  • 2 Seiten +
  • 1
  • 2

Php - Im Ie Gehts, Im Firefox Nicht! Problem beim auslesen von mySQL...

#16 Mitglied ist offline   toxic.at 

  • Gruppe: aktive Mitglieder
  • Beiträge: 154
  • Beigetreten: 16. Mai 05
  • Reputation: 0

geschrieben 23. August 2005 - 15:25

wo finde ich das Apache-Log?
0

Anzeige



#17 Mitglied ist offline   Floele 

  • Gruppe: aktive Mitglieder
  • Beiträge: 919
  • Beigetreten: 22. Juni 04
  • Reputation: 0

geschrieben 23. August 2005 - 15:38

Mit
print_r($_POST);

kannst du vielleicht einfacher gucken was ein Browser sendet und was nicht.
0

#18 Mitglied ist offline   [U]nixchecker 

  • Gruppe: aktive Mitglieder
  • Beiträge: 347
  • Beigetreten: 17. Mai 05
  • Reputation: 0
  • Wohnort:Bayern
  • Interessen:Informatik, Linux, Rollerbladen, Bodybuilding, GungFu

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:-)
0

#19 Mitglied ist offline   mo 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.796
  • Beigetreten: 17. Juni 02
  • Reputation: 0
  • Wohnort:Ulm / BaWü

geschrieben 24. August 2005 - 07:52

liegt es sicher nicht an dem kleinen namensgebungsfehler? ($errorurl / $urlerror)
I'm mó. mo's good twin.
0

#20 Mitglied ist offline   toxic.at 

  • Gruppe: aktive Mitglieder
  • Beiträge: 154
  • Beigetreten: 16. Mai 05
  • Reputation: 0

geschrieben 24. August 2005 - 10:07

nein, daran liegts nicht
0

#21 Mitglied ist offline   Yalamand 

  • Gruppe: aktive Mitglieder
  • Beiträge: 101
  • Beigetreten: 19. Mai 05
  • Reputation: 0

geschrieben 25. August 2005 - 15:11

Um gottes willen! :rolleyes:

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

0

#22 Mitglied ist offline   Yalamand 

  • Gruppe: aktive Mitglieder
  • Beiträge: 101
  • Beigetreten: 19. Mai 05
  • Reputation: 0

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:

ob_start();
session_start();


Dann natürlich den Browser so einstellen das er beim annehmen von Cookies vorher fragt.
0

#23 Mitglied ist offline   toxic.at 

  • Gruppe: aktive Mitglieder
  • Beiträge: 154
  • Beigetreten: 16. Mai 05
  • Reputation: 0

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
0

#24 Mitglied ist offline   Floele 

  • Gruppe: aktive Mitglieder
  • Beiträge: 919
  • Beigetreten: 22. Juni 04
  • Reputation: 0

geschrieben 25. August 2005 - 17:21

Oje....vielleicht solltest du als Profi mal einen Blick ins Handbuch werfen.
0

#25 Mitglied ist offline   toxic.at 

  • Gruppe: aktive Mitglieder
  • Beiträge: 154
  • Beigetreten: 16. Mai 05
  • Reputation: 0

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?
0

#26 Mitglied ist offline   Yalamand 

  • Gruppe: aktive Mitglieder
  • Beiträge: 101
  • Beigetreten: 19. Mai 05
  • Reputation: 0

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.
0

#27 Mitglied ist offline   Yalamand 

  • Gruppe: aktive Mitglieder
  • Beiträge: 101
  • Beigetreten: 19. Mai 05
  • Reputation: 0

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

0

#28 Mitglied ist offline   toxic.at 

  • Gruppe: aktive Mitglieder
  • Beiträge: 154
  • Beigetreten: 16. Mai 05
  • Reputation: 0

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!!

Dieser Beitrag wurde von toxic.at bearbeitet: 13. November 2010 - 19:43

0

Thema verteilen:


  • 2 Seiten +
  • 1
  • 2

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0