• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Merkwürdiger Fehler mit der MySQL-Verbindung

Status
Für weitere Antworten geschlossen.

Verhueterli

Neues Mitglied
Also, ich hab ein sehr merkwürdiges Problem (zumindest aus meiner Sicht).

Ich habe eine Seite gemacht, welche die ganze Zeit tadellos funktionierte, als plötzlich nichts mehr ging -> die Seite lädt 30 Sekunden und dann passiert nichts mehr.

Jetzt habe ich herausgefunden, dass dies nur passiert, wenn ich in der Datei mysql.php (welche in der Datei index.php includiert wird) die richtigen Verbindungsdaten zum Datenbankserver und zur Datenbank angebe. Wenn ich jedoch die falschen Daten angebe, lädt die Seite ganz normal, zeigt alles an, nur die Fehler sind eben da (weil die Verbindung ja fehlschlägt).

Ich weiss nicht, ob der Code was nützt (abgesehen davon besteht die Webseiten aus etlich vielen Dateien), aber was am Code kann so etwas bewirken?
 
Das kann ich wohl ausschliessen.

Zur Zeit läuft die Seite auf XAMPP (localhost / 127.0.0.1). Getestet habe ich es aber auch schon auf 2 anderen Servern im Internet, wo das gleiche Problem auftrat.

Edit:
Ich hab herausgefunden, woran es liegt. Es hängt nicht direkt mit MySQL zusammen.

Ich scheine in 2. Dateien eine Endlosschleife eingebaut zu haben, die nicht mehr aufhört Resultate aus der Datenbank zu schöpfen (die gar nicht vorhanden sind..). Allerdings finde ich den Fehler nicht.

Edit ²:
Ich habe den Fehler gefunden, ich habe while($row = mysql_fetch_object) geschrieben. Dabei habe ich den Parameter für mysql_fetch_object() vergessen.
 
So, jetzt habe ich ein anderes Problem, bzw. eigentlich nur eine Frage.

Wieso macht folgender Code nicht, was er soll (also alle PHP-Zeilenumbrücke (oder wie man das nennt.) in
s umwandeln)?
Code:
$nachricht = 'Das ist eine Nachricht

mit vielen Zeilen-

Umbrüchen';
$nachricht = str_replace('\n', '
', $nachricht);
 
also ich würde sagen dass er dass nich als zeilenumbruch ansieht kann das sein html kannst du ja auch in mehere zeilen schreiben und er hengts trotzdem hintereinander
 
zeilenumbruch ist ein steuerzeichen und die werden nur innerhalb von double quotes interpretiert. guck dir vll mal die anleitung auf php.net zum thema string typ an

@ schnuff: wenn man keine ahnung hat - ****
 
Ich will ja nicht nerven, aber ich hab 2. neue Probleme/Fragen.

1. Problem:
Ich habe ein Formular mit dem man eine Nachricht erstellen kann. Zeilenumbrüche werden in
s umgewandelt. Wenn man die Nachricht jetzt bearbeiten will, kommt man zu einer Datei, die ein Textfeld enthält, welche die Nachricht enthält (die kann man dan bearbeiten), allerdings zeigt er mir dann die
s an und das will ich nicht. Gibt es eine Gegenfunktion zu nl2br(), die das Umgekehrte macht?

2. Problem:
Code:
$date = date('d.m.Y H:i:s');
					$to = $email;
					$from = 'info@*********.de';
					$subject = 'Dein Member-Account bei ***********';
					$message = '
					Hallo,
					


					wir freuen uns dir mitteilen zu können, dass dein Member-Account bei ********** angelegt wurde.
					


					Du kannst dich nun mit folgenden Daten auf http://www.***********.de einloggen:
					


					Benutzername: '.$name.'
					

					Passwort: '.$passwort.'
					


					Du kannst dein Passwort jederzeit ändern, indem du dich einloggst, in den Member-Bereich gehst und dort dann auf \'Passwort ändern\' klickst.
					



					Versus Reality
					';
					$headers = "MIME-Version: 1.0\r\n";
					$headers .= "Content-Type: text/html; charset=iso-8859-1\r\n";
					$headers .= "To: $to\r\n";
					$headers .= "From: $from\r\n";
					$headers .= "Date: $datum\r\n";
					$mail = mail($to, $subject, $message, $headers);
Die E-Mail wird zwar versandt, allerdings steht dann im E-Mail Programm '(Unbekannter Absender)', es steht nicht, von wem die kam (obwohl ich ja 'From: ..') und die HTML-Tags werden einfach ausgegeben, woran liegt es?
 
1. Problem
tausche doch einfach in deinem replace dings dort oben die beiden argumente [ \n und br] aus
 
Ich mache es ja jetzt mit nl2br(). Aber ich habs trotzdem versucht, dann zeigt er mir die \ns im Textfeld an..
 
zeilenumbruch ist ein steuerzeichen und die werden nur innerhalb von double quotes interpretiert. guck dir vll mal die anleitung auf php.net zum thema string typ an

ich sags ja nur ungern ein 2. mal ...
 
Ooh..das tut mir leid, das 'double quotes' habe ich praktisch überlesen. Ich werde es versuchen. Vielen Dank für den Tipp.

Weißt, wo der Fehler bei meinem Problem 2 liegt?
 
versuchs mal nur mit \n und lass den To header weg. ?
 
Danke, so funktioniert es.

Aber mal eine andere Frage. AOL blockt ja solche E-Mails (habe ich gehört und bei meinen Versuchen kommt auch nichts). Gibt es eine Möglichkeit, dass trotzdem auch AOL-Mitglieder diese E-Mail erhalten?
 
nach dem absenden die user darauf aufmerksam machen, dass aol die mal blocken könnte und sie im spam-ordner nachsehen sollten.
oder so, du sagst ihnen, dass aol-user den service nicht benutzen können.

Nils aka XraYSoLo

p.s.: wer verwendet zum geier nochmal noch aol?!
 
XraYSoLo, mehrere Millionen nutzen AOL. Dein Vorschlag kann ich nicht realisieren, da nicht die User selbst dies sehen, sondern der Admin, der die User erstellt.

Und es gibt keine Möglichkeit(en), AOL auszutricksen?

Edit
Achja, noch eine Frage. Kann man bei SQL-Abfragen mit dem Sortieren erst bei einer bestimmten Anzahl von Datensätzen anfangen?

Beispiel:
Wenn in der Tabelle 60 Datensätze vorhanden sind. Kann man die Datensätze 20-40 herausfiltern?
 
Ich hab schon wieder ein neues Problem.

Wenn man bei meiner Seite die News bearbeiten möchte, wird ein Textarea-Feld angezeigt, in dem der aktuelle Inhalt der News drinsteht. Diese kann man dann verändern.

Der Datensatz (also der Inhalt der aktuellen News, der geändert werden soll), wird vorher mit folgendem Befehl bearbeitet:
Code:
$row->nachricht = str_replace("
", "\n", $row->nachricht);
Das sollte eigentlich bewirken, dass alle Zeilenumbrüche auch in dem Textarea-Feld als Zeilenumbrüche dargestellt werden, allerdings verdoppelt der Code die Zeilenumbrüche immer. D.h. wenn die eigentliche News 2 Zeilenumbrüche enthält, werden in dem Textarea-Feld 4 dargestellt. Ich habe auch schon folgenden Code versucht, der hat aber nichts geholfen:
Code:
$row->nachricht = str_replace("\n\n", "\n", $row->nachricht);
Woran kann das liegen? (Das ist sehr benutzerunfreundlich..)

Edit
Ich hab alle Probleme lösen können.

Das letzte Problem habe ich damit lösen können, dass ich beim Eintragen der News die Nachricht nicht mit nl2br(), sondern mit str_replace() behandelt habe.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben