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


#1 Mitglied ist offline   toxic.at 

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

  geschrieben 20. August 2005 - 11:19

Hallo,

hab ein ziehmlich merkwürdiges Problem.
Wenn ich Daten aus meiner DB mit dem IE auslese, klappt alles Wunderbar.

Doch im Quelltext vom Firefox fehlen die Werte, die aus der DB abgerufen werden.

Normalerweiße müssten beide Brower den gleichen Quelltext empfangen, denn der Code wird ja am Server geparst.

Woran könnte das liegen?

###############db_connect()
function db_connect()
	{
  global $db;

  if ($db)
 	 return;

  $db = mysql_connect("localhost", MYSQLUSER, MYSQLPASS);

  mysql_select_db(MYSQLDB, $db);

  if (!$db)
  {
 	 echo "Couldn't open database!\n";
 	 exit;
  }
	}


###############Daten abrufen
db_connect();
$result = mysql_query("select email from users where uid='$uid'");
$email = mysql_result($result, 0);

0

Anzeige



#2 Mitglied ist offline   Floele 

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

geschrieben 20. August 2005 - 11:44

Gibt's da auch eine Online-version von? Ich würd mir lieber mal den Quelltext angucken der anschließend dabei rauskommt.
0

#3 Mitglied ist offline   toxic.at 

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

geschrieben 21. August 2005 - 15:37

Hi,
es is so:

Wenn jemand was bei mir bestellt, erhalte ich eine Email, mit den Details der Bestellung.

Wenn ich was mit dem IE bestelle, steht zb. "Name: Stephan P."
Und bei einer Bestellung mit dem Firefox steht in der Mail, die ich erhalte "Name: "

Danke für dein Interesse!
0

#4 Mitglied ist offline   Floele 

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

geschrieben 21. August 2005 - 16:05

Wenn du mir nicht mehr als das sagen kannst, kann ich dir sicher nicht helfen. Also nochmals: Ich hätte gerne eine Seite die ich mir angucken kann und wo das Problem auch auftritt.
0

#5 Mitglied ist offline   tobiasndw 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.815
  • Beigetreten: 24. September 03
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 21. August 2005 - 16:05

@toxic.at

desweiteren ist der von dir oben geschrieben Quelltext auch bissel wenig, oder? Ist ja nur die DB Verbindung.

Um dir helfen zu können bräuchte man schon nähere Infos.
0

#6 Mitglied ist offline   TrooperMan 

  • Gruppe: Mitglieder
  • Beiträge: 1
  • Beigetreten: 22. August 05
  • Reputation: 0

geschrieben 22. August 2005 - 02:33

Da PHP absolut nichts mit dem Browser zu tun hat, der lediglich den aus dem PHP-Code resultierenden HTML-Code anzeigt, untersuch mal deinen HTML-Code auf fehlende Tag-Zeichen < und > (wie gesagt, NUR im HTML, nicht im PHP) bzw auf CSS, welches der FFox möglicherweise nicht mag.
0

#7 Mitglied ist offline   toxic.at 

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

  geschrieben 22. August 2005 - 11:47

Hier der Quelltext, der für die Verarbeitung der Bestellung zuständig ist.

<?php
session_start();

include('../../../../mysql.php');


$paket = $_POST['paket'];
$domain = $_POST['domain'];



if (!isset($uid))

{
$uid = $_SESSION['uid'];
}


if (!isset($uid))
{
$urlerror = "http://www.toxic.at/cgi-bin/logout.php";
header("Location: $errorurl");
}

$date =  date("j.n.Y");
$mail = "[email protected]";


db_connect();


$sql="DELETE FROM bestellung WHERE typ='webhosting' and uid='$uid'";
$result = mysql_query($sql);

$sql="insert into bestellung(uid,typ) values('$uid','webhosting')";
$result = mysql_query($sql);


$sql="UPDATE bestellung SET paket='$paket' WHERE typ='webhosting' and uid='$uid'";
$result = mysql_query($sql);

$sql="UPDATE bestellung SET domain='$domain' WHERE typ='webhosting' and uid='$uid'";
$result = mysql_query($sql);

$sql="UPDATE bestellung SET datum='$date' WHERE typ='webhosting' and uid='$uid'";
$result = mysql_query($sql);


 	 $result = mysql_query("select fname from users where uid='$uid'");
 	 $fname = mysql_result($result, 0);

 	 $result = mysql_query("select lname from users where uid='$uid'");
 	 $lname = mysql_result($result, 0);

 	 $result = mysql_query("select addr from users where uid='$uid'");
 	 $addr = mysql_result($result, 0);

 	 $result = mysql_query("select country from users where uid='$uid'");
 	 $country = mysql_result($result, 0);

 	 $result = mysql_query("select city from users where uid='$uid'");
 	 $city = mysql_result($result, 0);

 	 $result = mysql_query("select zipcode from users where uid='$uid'");
 	 $zipcode = mysql_result($result, 0);

 	 $result = mysql_query("select email from users where uid='$uid'");
 	 $email = mysql_result($result, 0);

 	 $result = mysql_query("select phone from users where uid='$uid'");
 	 $phone = mysql_result($result, 0);

 	 $result = mysql_query("select paket from bestellung where uid='$uid' and typ='webhosting'");
 	 $paket = mysql_result($result, 0);

 	 $result = mysql_query("select domain from bestellung where uid='$uid' and typ='webhosting'");
 	 $domain = mysql_result($result, 0);



db_disconnect();




$absender = "$email";


$betreffwebmaster = "Neue Bestellung auf toxic.at";

$koerperwebmaster = "WEBHOSTING:
Paket: $paket
Domain: $domain
--------------------------------------------
Vorname: $fname
Zuname: $lname
E-Mail-Adresse: $email

Strasse: $addr
Wohnort: $city
PLZ: $zipcode
Land: $country
Telefon: $phone

Bestellt am: $date
";

mail("$mail","$betreffwebmaster","$koerperwebmaster","FROM: $absender");
   	 




$ok="http://www.toxic.at/cgi-bin/useraccount/Bestellung/webhosting/schritt3/index.php";
header("Location: $ok");



?>

0

#8 Mitglied ist offline   Odom 

  • Gruppe: aktive Mitglieder
  • Beiträge: 110
  • Beigetreten: 17. November 03
  • Reputation: 4
  • Geschlecht:Männlich
  • Wohnort:Berlin

geschrieben 22. August 2005 - 12:01

mal nur sone frage...lässt firefox cockies zu?
0

#9 Mitglied ist offline   toxic.at 

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

geschrieben 22. August 2005 - 13:13

Ja, cookies sind bei mir aktiviert.
0

#10 Mitglied ist offline   Floele 

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

geschrieben 22. August 2005 - 14:34

Zuersteinmal: Dein Skript ist alles andere als sicher. Das sollte jemandem, der "professionelles" Webhosting anbietet eigentlich nicht passieren.
Aber zum Thema: Wo kann ich mir die Seite angucken? Muss man sich dafür erst anmelden und versuchen etwas zu bestellen? Wenn die Daten nämlich browserabhängig nicht ankommen, ist der HTML Quelltext und nicht der PHP Quelltext das Problem.

Dieser Beitrag wurde von Floele bearbeitet: 22. August 2005 - 14:34

0

#11 Mitglied ist offline   mo 

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

geschrieben 22. August 2005 - 14:41

@toxic.at: hättest du auch nur n wenig errorhandling drin, könnte man zur laufzeit den fehler suchen ... so auf den ersten blick, seh ich keinen Syntaxfehler oder und nur einen kleinen fehler (siehe kommentare im code).

Hab mir mal die mühe gemacht, deinen Code in eine ordentliche Fassung zu bringen. Eigentlich sollte man so einen Wulst gar nicht anfassen. Naja jeder fängt mal an, also lass die Kritik einfach über dich ergehen und lern daraus :).


<?php
session_start();

include('../../../../mysql.php'); // ganz schön weit oben;)

$paket = $_POST['paket']; // <-- schön, keine Globals :D
$domain = $_POST['domain'];

if (!isset($uid)) {
$uid = $_SESSION['uid'];
}

if (!isset($uid)) {
$errorurl = "http://www.toxic.at/cgi-bin/logout.php"; // <-- hier ist der einzige richtige fehler, den ich gefunden hab, variablenname war falsch (unter annahme, dass auf diese Url nachher weitergeleitet werden soll)
header("Location: $errorurl");
}

$date =  date("j.n.Y");
$mail = "[email protected]";

db_connect();

if ( !mysql_query ( "DELETE FROM bestellung WHERE typ='webhosting' and uid='$uid'" ) {
 errorhandling;
}

if ( !mysql_query ( "insert into bestellung(uid,typ) values('$uid','webhosting') ) {
 errorhandling;
}

// Warum 3 SQL-Statements wenn es auch eines tut?
// Besser als eine Datumsverwurschltung ( $date ) lieber die Unixtimestamp ( function time(); ) abspeichern, daraus lässt sich dann mit function date ( format, unixtimestamp); leicht das Datum in passender Form errechnen.
if ( !mysql_query ( "UPDATE bestellung SET paket='$paket', domain='$domain',datum='$date' WHERE typ='webhosting' and uid='$uid'" ) ) {
 errorhandling;
}

if ( !$result = mysql_query ( "SELECT fname, lname, addr, country, city, zipcode, email, phone FROM users WHERE uid='$uid'" ) ) {
 errorhandling;
}
// warum 10 Variablen verwenden? Das Ergebnis einfach in einen Hash-Array, fertitsch. Zugriff
// via $benutzer["spaltenname"]
$benutzer = mysql_fetch_array ( $result );

if ( !$result = mysql_query ( "SELECT paket, domain FROM bestellung WHERE uid='$uid' AND typ='webhosting'") ) {
 errorhandling;
}
$bestellung = mysql_fetch_array ( $result);

db_disconnect();

// Achtung: An dieser Stelle kann $benutzer und $bestellung trotzdem leer sein. mysql_query gibt
// keinen Fehler zurück, wenn einfach kein Datensatz gefunden wurde. Deshalb noch erweiterte Fehlerbehandlung:

if ( !$bestellung ) {
 errorhandling_bestellung_nicht_gefunden;
}
if (!$benutzer ){
 errorhandling_benutzer_existiert_nicht;
}

$betreffwebmaster = "Neue Bestellung auf toxic.at";

// Ohne Zeilenumbruch sieht ne eMail nicht schön aus ...
$koerperwebmaster = "WEBHOSTING:\n
Paket: ".$bestellung["paket"]."\n
Domain:".$bestellung["domain"]."\n
--------------------------------------------\n
Vorname: ".$benutzer["fname"]."\n
Zuname: ".$benutzer["lname"]."\n
E-Mail-Adresse: ".$benutzer["email"]."\n
\n
Strasse: ".$benutzer["addr"]."\n
Wohnort: ".$benutzer["city"]."\n
PLZ: ".$benutzer["zipcode"]."\n
Land: ".$benutzer["country"]."\n
Telefon: ".$benutzer["phone"]."\n
\n
Bestellt am: $date";

// Variablen müssen nicht von Anführungszeichen umklammert werden:
mail( $mail, $betreffwebmaster, $koerperwebmaster,"FROM: $absender");

// Statt einer Weiterleitung könntest du die Seite _evtl_ auch einfach include, Kommt ganz auf deine mysql.php an. Man könnte sie aber auf jeden Fall so umschreiben, dass es klappt;)
$ok="http://www.toxic.at/cgi-bin/useraccount/Bestellung/webhosting/schritt3/index.php";
header("Location: $ok");
?>

Dieser Beitrag wurde von mo bearbeitet: 22. August 2005 - 14:43

I'm mó. mo's good twin.
0

#12 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 22. August 2005 - 14:51

Du nutzt bei deinem Bestellformular schon ein POST (method="POST") oder?
0

#13 Mitglied ist offline   toxic.at 

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

geschrieben 23. August 2005 - 13:26

Ja, natürlich nutze ich beim Bestellformular die methode "POST".

Übrigens DANKE mo, dass Sie sich die Mühe gemach haben, um sich meinen Quelltext anzusehen.
0

#14 Mitglied ist offline   toxic.at 

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

geschrieben 23. August 2005 - 13:26

Übrigens DANKE mo, dass Sie sich die Mühe gemach haben, um sich meinen Quelltext anzusehen.
0

#15 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 - 13:49

Dann guck dir doch mal das Apachelog an, da muss dann auch zu sehen sein, was einmal Firefox submitted bzw IE und ob da ein Fehler auftritt.

Also an deinem Code den du hier gepostet hast liegts 100%ig nicht.
0

Thema verteilen:


  • 2 Seiten +
  • 1
  • 2

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