Webstatt.org - Community seit 2006 - 2012 (2024?)

MySQL Fehler umleiten

user-137
09.04.2006 08:50

Hallo,

ich habe so ein script zu DB Verbinndung:

<?php
$conn = @mysql_connect("localhost", "", ""zwinkern
or die("Verbindung zum Datenbankserver gescheitert!"zwinkern;
@mysql_select_db("freehost_2277_1"zwinkern or die("Datenbankzugriff gescheitert!"zwinkern;
?>


Nun möchte ich das falls es einen fehler gibt nicht "Datenbankzugriff gescheitert!" angezeigt wird, sondern die Seite witergeleitet wird.
Geht das?

Avatar user-253
09.04.2006 08:52

Schaust du hier:

logisches errorhandling?

user-137
09.04.2006 09:19

Ja, aber da ist es ja nur zum anzeigen, nicht zum weiterleiten!

Avatar user-253
09.04.2006 09:23

Dann schreibst du in deiner Fehlerbehandlungsmethode eben einen Redirect zwinkern

user-137
09.04.2006 09:27

So?

<?
/*
* errorhandling beispiel
*/
class bsp {

var $error;

# funktion wo was passiert
function test () {
if (befehl) {
mach was
}
else {
# wie übergeb ich den fehler an die function 'error'?
$error.= '<br />irgendeinfehler ist passiert!';
}
}

# funktion falls error
function error ($error) {
$this->error = $error;

if ($error) {
$error_out = '<b>error:</b>';
$error_out.= $error;
}
}
}

# funktion starten
$bsp = new bsp();
$bsp->test();


function $answer ()
{
$this->question = $question;
$this->answer = $answer;

if ($this->question != $this->answer) {
trigger_error('fehlermeldung'zwinkern;
}
else {
redirect("error.php"zwinkern
}
}
?>

Avatar user-253
09.04.2006 09:30

Hast du den anderen Thread gelesen?

So in etwa (nur ganz grob wegen eines Katers):



function my_error_handling(parameter) {
header('Location: ....'zwinkern;
}

set_error_handler('my_error_handling'zwinkern;

if ($this->question != $this->answer) {
trigger_error('fehlermeldung und weiterleitung'zwinkern;
}

?>


user-137
09.04.2006 09:33

So? sry, bin noch nub im php bereich!

<?
/*
* errorhandling beispiel
*/
class bsp {

var $error;

# funktion wo was passiert
function test () {
if (befehl) {
mach was
}
else {
# wie übergeb ich den fehler an die function 'error'?
$error.= '<br />irgendeinfehler ist passiert!';
}
}

# funktion falls error
function error ($error) {
$this->error = $error;

if ($error) {
$error_out = '<b>error:</b>';
$error_out.= $error;
}
}
}

# funktion starten
$bsp = new bsp();
$bsp->test();


function $answer ()
{
$this->question = $question;
$this->answer = $answer;

if ($this->question != $this->answer) {
trigger_error('fehlermeldung'zwinkern;
}
else {
function my_error_handling(parameter) {
header('Location: ....);
}

set_error_handler('my_error_handling'zwinkern;

if ($this->question != $this->answer) {
trigger_error('fehlermeldung und weiterleitung'zwinkern;
}

?>


Egal wie, es kommt immer der Fehler:

Parse error: parse error, unexpected T_STRING in C:\FoxServ\www\Re-Design\config.ini.php

Avatar user-253
09.04.2006 09:58

header('Location: ....'zwinkern;

Da fehlt ein schließendes '
Des Weiteren sollte der set_error_handler und die dazugehörige Klassen an den Anfang des Scriptes.

user-137
09.04.2006 10:05

Immer noch der fehler:

Parse error: parse error, unexpected T_STRING in C:\FoxServ\www\Re-Design\config.ini.php


Mein ganzer Code:

<!-- Hier beginnt der MySQL-Zugriff -->
<?php
$conn = @mysql_connect("localhost", "", ""zwinkern
or die("Verbindung zum Datenbankserver gescheitert!"zwinkern;
@mysql_select_db("freehost_2277_1"zwinkern or die("Datenbankzugriff gescheitert!"zwinkern;
$Datenbank = freehost_2277_1
?>
<!-- Hier endet der MySQL-Zugriff -->

<!-- Variablen für das Feedback -->
<?php
$admin_mail = ""
?>

<!-- Weiterleitung bei einem fehler -->

<?
set_error_handler('my_error_handling'zwinkern;

if ($this->question != $this->answer) {
trigger_error('fehlermeldung und weiterleitung'zwinkern;
}

class bsp {

var $error;

# funktion wo was passiert
function test () {
if (befehl) {
mach was
}
else {
# wie übergeb ich den fehler an die function 'error'?
$error.= '<br />irgendeinfehler ist passiert!';
}
}

# funktion falls error
function error ($error) {
$this->error = $error;

if ($error) {
$error_out = '<b>error:</b>';
$error_out.= $error;
}
}
}

# funktion starten
$bsp = new bsp();
$bsp->test();


function $answer ()
{
$this->question = $question;
$this->answer = $answer;

if ($this->question != $this->answer) {
trigger_error('fehlermeldung'zwinkern;
}
else {
function my_error_handling(parameter) {
header('Location: error/error.php'zwinkern;
}


?>


Die zeile 31 wird als Fehler angegeben:
Das wäre dan die mach was Zeile:
mach was


Soll man das Löschen, oder ist das nur ein Kommentar das nicht als welches markiert wurde?

Avatar user-253
09.04.2006 10:19

Du darfst ja auch nicht einfacg mach was in den Code schreiben...

Entweder du kommentierst es aus
// mach was

Oder du gibst es aus
print 'mach was';

Michael

user-137
09.04.2006 10:21

Original von user-251el
Du darfst ja auch nicht einfacg mach was in den Code schreiben...

...


Ich habe den Code ja aus dem Theard übernommen zwinkern

Ok, habs entfert, jetzt kommt wieder ein Fehler:

Parse error: parse error, unexpected T_VARIABLE, expecting T_STRING in C:\FoxServ\www\Re-Design\config.ini.php on line 55


Also ist was mit der funktion answer nicht in ordnung...

Avatar user-253
09.04.2006 10:25

Du musst parameter schon durch die Parameter ersetzen:

function my_error_handling($fehlerlevel, $fehlermeldung, $fehlerfile, $fehlerline) {

Ohne dir zu nahe treten zu wollen, solltest du vielleicht noch einmal die Grundlagen anschauen lächeln

// edit

Die funktion answer ist auch total kaputt... Mom ich verbessere einfach mal en gesamten Code, das geht schneller

// edit2

Wei gesagt, du solltest noch einmal die Grundlage anschauen. Ich habe nur Syntaxfehler verbessert



<!-- Hier beginnt der MySQL-Zugriff -->
<?php
$conn = @mysql_connect("localhost", "", ""zwinkern
or die("Verbindung zum Datenbankserver gescheitert!"zwinkern;
@mysql_select_db("freehost_2277_1"zwinkern or die("Datenbankzugriff gescheitert!"zwinkern;
$Datenbank = freehost_2277_1
?>
<!-- Hier endet der MySQL-Zugriff -->

<!-- Variablen für das Feedback -->
<?php
$admin_mail = ""
?>

<!-- Weiterleitung bei einem fehler -->

<?php

function my_error_handling($fehlerlevel, $fehlermeldung, $fehlerfile, $fehlerline) {
header('Location: error/error.php'zwinkern;
}

set_error_handler('my_error_handling'zwinkern;

class bsp {

var $error;

# funktion wo was passiert
function test () {
if (0) {
//mach was
}
else {
# wie übergeb ich den fehler an die function 'error'?
$error.= '<br />irgendeinfehler ist passiert!';
}
}

# funktion falls error
function error ($error) {
$this->error = $error;

if ($error) {
$error_out = '<b>error:</b>';
$error_out.= $error;
}
}


function answer () {
$this->question = $question;
$this->answer = $answer;

if ($this->question != $this->answer) {
trigger_error('fehlermeldung und weiterleitung'zwinkern;
}
}
}


?>

Avatar user-300
09.04.2006 10:25

function answer() <- ohne das Dollarzeichen, welches für Variablen gebraucht wird.

user-137
09.04.2006 10:37

Ok, nun hab ich das ja soweit:

<!-- Weiterleitung bei einem fehler -->
<?php

function my_error_handling($fehlerlevel, $fehlermeldung, $fehlerfile, $fehlerline) {
header('Location: error/error.php'zwinkern;
}

set_error_handler('my_error_handling'zwinkern;

class bsp {

var $error;

# funktion wo was passiert
function test () {
if (0) {
//mach was
}
else {
# wie übergeb ich den fehler an die function 'error'?
$error.= '<br />irgendeinfehler ist passiert!';
}
}

# funktion falls error
function error ($error) {
$this->error = $error;

if ($error) {
$error_out = '<b>error:</b>';
$error_out.= $error;
}
}


function answer () {
$this->question = $question;
$this->answer = $answer;

if ($this->question != $this->answer) {
trigger_error('fehlermeldung und weiterleitung'zwinkern;
}
}
}


?>
<!-- Weiterleitung bei einem fehler ende -->




<!-- Hier beginnt der MySQL-Zugriff -->
<?php
$conn = @mysql_connect("localhost", "", ""zwinkern or die("Verbindung zum Datenbankserver gescheitert!"zwinkern;
@mysql_select_db("freehost_2277_1"zwinkern or die("Datenbankzugriff gescheitert!"zwinkern;
$Datenbank = freehost_2277_1
?>
<!-- Hier endet der MySQL-Zugriff -->




<!-- Variablen für das Feedback -->
<?php
$admin_mail = ""
?>


Nur wird jetzt weiter alles angezeigt als ob es das script gar nicht gäbe.
Muss ich jetzt nicht irgendwie die funktion "my_error_handling" in die MySQL Eingabe einbauen?