Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit PHP/MySQL
Underserial
22.06.2007, 13:52
Kann mir mal jemand bitte der sich mit mit Homepages kennt behilflich sein.
Bitte nicht hier im Forum sondern per PN.
Danke!
a) wieso denn nicht oeffentlich? Da wirst du vermutlich schneller Hilfe bekommen (mal abgesehen davon haben hier vermutlich viele Leute keine Lust, Privat-Support zu leisten...)
b) Wieso postest du das hier und nicht im Webentwickler-Forum?
Underserial
22.06.2007, 13:59
a) Weil ich ihm dann die Daten geben könnte ohne das irgendwas passiert.
b) weils ein Programmierungsprob ist
Aber sehs dir selber an www.esdi-page.de ich find den Fehler in der index.php leider nicht....
b) weils ein Programmierungsprob istAber ein Problem mit Website-Programmierung, wofuer das Webentwickler-Forum da ist.
a) Weil ich ihm dann die Daten geben könnte ohne das irgendwas passiert.
[...]
Aber sehs dir selber an www.esdi-page.de ich find den Fehler in der index.php leider nicht....
Du kannst den Sourcecode auch einfach ins Forum posten, das ist die gaengige Vorgehensweise. So musst du keine Login-Daten an irgendjemanden weitergeben, und alle koennen versuchen, dir zu helfen. Und ohne den Source helfen die Fehlermeldungen auf der Seite herzlich wenig weiter.
Underserial
22.06.2007, 14:19
".$arr[1].""; }else{ $submenu.= "".$arr[1].""; } }$res=mysql_query("SELECT * FROM menu ORDER by name");while($arr=mysql_fetch_row($res)){ if ($arr[2]==0) { $idee=$arr[0]; $resulu=mysql_query("SELECT * FROM content WHERE id = $idee ORDER BY id LIMIT 1"); $cona=mysql_fetch_array($resulu); $conit=$cona[0]; }else{ $conit=$arr[2]; } if ($sub==$arr[0]) { $menu.= "".$arr[1].""; }else{ $menu.= "".$arr[1].""; } }$res=mysql_query("SELECT * FROM box");while($arr=mysql_fetch_row($res)){ if($arr[3]==1) { $box_left.=file_get_contents("templates/box.tpl")."
"; $box_left=str_replace("{box_title}",$arr[1],$box_left); $box_left=str_replace("{box_con}",$arr[2],$box_left); }else{ $box_right.=file_get_contents("templates/box.tpl")."
"; $box_right=str_replace("{box_title}",$arr[1],$box_right); $box_right=str_replace("{box_con}",$arr[2],$box_right); }}$res=mysql_query("SELECT * FROM content WHERE id='$con'");$arr=mysql_fetch_array($res);$con_center=file_get_contents("templates/box.tpl");$con_center=str_replace("{box_title}",$arr[1],$con_center);$con_center=str_replace("{box_con}",$arr[2],$con_center);$con_info=file_get_contents("templates/box.tpl"); $con_info=str_replace("{box_title}",$info_name,$con_info);$con_info=str_replace("{box_con}",$info_con,$con_info);$con_menu=file_get_contents("templates/box.tpl");$con_menu=str_replace("{box_title}","Hauptmenü",$con_menu);$con_index=file_get_contents("templates/index.tpl");$con_index=str_replace("{menu}",$menu,$con_index);$con_index=str_replace("{center}",$con_center,$con_index);$con_index=str_replace("{box_right}",$box_right,$con_index);$con_index=str_replace("{box_left}",$box_left,$con_index);$con_index=str_replace("{leftmenu}",$con_menu,$con_index);$con_index=str_replace("{box_con}",$submenu,$con_index);$con_index=str_replace("{info}",$con_info,$con_index);echo $con_index;?>
Das ist die index.php
".$arr[1].""; }else{ $submenu.= "".$arr[1].""; } }$res=mysql_query("SELECT * FROM menu ORDER by name");while($arr=mysql_fetch_row($res)){ if ($arr[2]==0) { $idee=$arr[0]; $resulu=mysql_query("SELECT * FROM content WHERE id = $idee ORDER BY id LIMIT 1"); $cona=mysql_fetch_array($resulu); $conit=$cona[0]; }else{ $conit=$arr[2]; } if ($sub==$arr[0]) { $menu.= "".$arr[1].""; }else{ $menu.= "".$arr[1].""; } }$res=mysql_query("SELECT * FROM box");while($arr=mysql_fetch_row($res)){ if($arr[3]==1) { $box_left.=file_get_contents("templates/box.tpl")."
"; $box_left=str_replace("{box_title}",$arr[1],$box_left); $box_left=str_replace("{box_con}",$arr[2],$box_left); }else{ $box_right.=file_get_contents("templates/box.tpl")."
"; $box_right=str_replace("{box_title}",$arr[1],$box_right); $box_right=str_replace("{box_con}",$arr[2],$box_right); }}$res=mysql_query("SELECT * FROM content WHERE id='$con'");$arr=mysql_fetch_array($res);$con_center=file_get_contents("templates/box.tpl");$con_center=str_replace("{box_title}",$arr[1],$con_center);$con_center=str_replace("{box_con}",$arr[2],$con_center);$con_info=file_get_contents("templates/box.tpl"); $con_info=str_replace("{box_title}",$info_name,$con_info);$con_info=str_replace("{box_con}",$info_con,$con_info);$con_menu=file_get_contents("templates/box.tpl");$con_menu=str_replace("{box_title}","Hauptmenü",$con_menu);$con_index=file_get_contents("templates/index.tpl");$con_index=str_replace("{menu}",$menu,$con_index);$con_index=str_replace("{center}",$con_center,$con_index);$con_index=str_replace("{box_right}",$box_right,$con_index);$con_index=str_replace("{box_left}",$box_left,$con_index);$con_index=str_replace("{leftmenu}",$con_menu,$con_index);$con_index=str_replace("{box_con}",$submenu,$con_index);$con_index=str_replace("{info}",$con_info,$con_index);echo $con_index;?>
Das ist die index.php
Das wird wohl kaum der komplette Code sein, da fehlt ja schon allein das <?php. Desweiteren waere es nett, wenn du den Code mal lesbar formatierst (und am besten in [php] statt [code] schreibst).
Underserial
22.06.2007, 14:40
<?include("admin/config.inc.php");include("admin/var.inc.php");if(mysql_connect($sql_host, $sql_user, $sql_pass)){ mysql_select_db($sql_db);}else{ error("Keine DB Verbindung möglich","Die Verbindung zur Datenbank konnte nicht hergestellt werden");}$sub=htmlspecialchars($_GET['sub']);$con=htmlspecialchars($_GET['con']);if($sub==""){ $sub=$startcat; $con=$startpage;
}
if($con=="")
{
$con=$startpage;
}
$res=mysql_query("SELECT * FROM content WHERE submenu = $sub ORDER by name");
while($arr=mysql_fetch_row($res))
{
if ($con==$arr[0])
{
$submenu.= "<a class=\"left_mark\" href=\"index.php?con=".$arr[0]."&sub=".$arr[3]."\">".$arr[1]."</a>";
}else{
$submenu.= "<a class=\"left\" href=\"index.php?con=".$arr[0]."&sub=".$arr[3]."\">".$arr[1]."</a>"; } }$res=mysql_query("SELECT * FROM menu ORDER by name");while($arr=mysql_fetch_row($res)){ if ($arr[2]==0) { $idee=$arr[0]; $resulu=mysql_query("SELECT * FROM content WHERE id = $idee ORDER BY id LIMIT 1"); $cona=mysql_fetch_array($resulu); $conit=$cona[0]; }else{ $conit=$arr[2]; } if ($sub==$arr[0]) { $menu.= "<a class=\"top_mark\" href=\"index.php?con=".$conit."&sub=".$arr[0]."\">".$arr[1]."</a>"; }else{ $menu.= "<a class=\"top\" href=\"index.php?con=".$conit."&sub=".$arr[0]."\">".$arr[1]."</a>"; } }$res=mysql_query("SELECT * FROM box");while($arr=mysql_fetch_row($res)){ if($arr[3]==1) { $box_left.=file_get_contents("templates/box.tpl")."<br>"; $box_left=str_replace("{box_title}",$arr[1],$box_left); $box_left=str_replace("{box_con}",$arr[2],$box_left); }else{ $box_right.=file_get_contents("templates/box.tpl")."<br>"; $box_right=str_replace("{box_title}",$arr[1],$box_right); $box_right=str_replace("{box_con}",$arr[2],$box_right); }}$res=mysql_query("SELECT * FROM content WHERE id='$con'");$arr=mysql_fetch_array($res);$con_center=file_get_contents("templates/box.tpl");$con_center=str_replace("{box_title}",$arr[1],$con_center);$con_center=str_replace("{box_con}",$arr[2],$con_center);$con_info=file_get_contents("templates/box.tpl");
$con_info=str_replace("{box_title}",$info_name,$con_info);$con_info=str_replace("{box_con}",$info_con,$con_info);$con_menu=file_get_contents("templates/box.tpl");$con_menu=str_replace("{box_title}","Hauptmenü",$con_menu);$con_index=file_get_contents("templates/index.tpl");$con_index=str_replace("{menu}",$menu,$con_index);$con_index=str_replace("{center}",$con_center,$con_index);$con_index=str_replace("{box_right}",$box_right,$con_index);$con_index=str_replace("{box_left}",$box_left,$con_index);$con_index=str_replace("{leftmenu}",$con_menu,$con_index);$con_index=str_replace("{box_con}",$submenu,$con_index);$con_index=str_replace("{info}",$con_info,$con_index);echo $con_index;?>
Okay, da laesst sich auf den ersten Blick nichts finden. Gib mal nach der Query die MySQL-Fehlermeldungen aus (echo mysql_error();).
Jesus_666
22.06.2007, 19:02
Der Thread hat hier wirklich nichts verloren.
BTW, wir sollten wirklich mal Richtlinien posten, wie man Hilfeanfragen am besten formuliert, um schnell gute Antworten zu kriegen. Das würde vielleicht einiges schneller machen.
jesus_666@multimediaxis Programmierung $ mv "HP Fehler?!" "../Webentwicklung/Problem mit PHP/MySQL"
Codeformatierung ist ein essenzieller Bestandteil, du solltest mehr Wert darauf legen. Darum epmfehle ich auch <?php statt <? zu verwenden, weil <?php Konfigurationsunabhängig ist.
Bei Daten die vom Benutzer kommen solltest du nicht nur die HTML-Sonderzeichen maskieren, sonder auch Zeichen, die der SQL-Abfrage gefährlich werden könnten. MySQL kennt daher die Funktion mysql_real_escape_string().
Außerdem solltest du die Werte nicht einfach so in die Abfrage einbauen, sondern '' (Korrektur: auch hier sind es einfache Anführungszeichen) um die einzufügenden Werte schreiben, damit der Variableninhalt als zusammenhängend erkannt wird.
Ich empfehle dir weiterhin immer einfache Anführungszeichen (') zu verwenden, da da einen kleinen Performanceboos mit bringt. Außerdem musst du dann nicht alle " escapen.
Auch finde ich es nicht gerade gut, wenn du die Variablen als Teil des Strings schreibst (bezogen auf die Abfrage, an anderer Stelle scheint es zu passen). ...string' . $vari . 'string... wäre nicht so anfällig für Fehler.
Underserial
23.06.2007, 10:30
Codeformatierung ist ein essenzieller Bestandteil, du solltest mehr Wert darauf legen. Darum epmfehle ich auch <?php statt <? zu verwenden, weil <?php Konfigurationsunabhängig ist.
Bei Daten die vom Benutzer kommen solltest du nicht nur die HTML-Sonderzeichen maskieren, sonder auch Zeichen, die der SQL-Abfrage gefährlich werden könnten. MySQL kennt daher die Funktion mysql_real_escape_string().
Außerdem solltest du die Werte nicht einfach so in die Abfrage einbauen, sondern '' (Korrektur: auch hier sind es einfache Anführungszeichen) um die einzufügenden Werte schreiben, damit der Variableninhalt als zusammenhängend erkannt wird.
Ich empfehle dir weiterhin immer einfache Anführungszeichen (') zu verwenden, da da einen kleinen Performanceboos mit bringt. Außerdem musst du dann nicht alle " escapen.
Auch finde ich es nicht gerade gut, wenn du die Variablen als Teil des Strings schreibst (bezogen auf die Abfrage, an anderer Stelle scheint es zu passen). ...string' . $vari . 'string... wäre nicht so anfällig für Fehler.
Ok, mein Freund.
Ich habe leider keine Ahnung von was du da redest ich hab das nicht selbst gecodet.
Sorry.
Ok, mein Freund.
Ich habe leider keine Ahnung von was du da redest ich hab das nicht selbst gecodet.
Sorry.
Und wo ist der ••••••••r, der gecodet hat?
Versuche es mit dieser überarbeiteten Version, eventuell genügt das.
AUch wenn nicht, die teils bessere Formatierung hilft bei der Fehlersuche.
<?php
include('admin/config.inc.php');
include('admin/var.inc.php');
if( mysql_connect($sql_host, $sql_user, $sql_pass) ) {
mysql_select_db($sql_db);
} else {
error('Keine DB Verbindung möglich','Die Verbindung zur Datenbank konnte nicht hergestellt werden');
}
$sub=htmlspecialchars($_GET['sub']);
$con=htmlspecialchars($_GET['con']);
if($sub=='') {
$sub=$startcat;
$con=$startpage;
}
if($con=='') {
$con=$startpage;
}
$res=mysql_query('SELECT * FROM content WHERE submenu = "' . $sub . '" ORDER by name;');
while($arr=mysql_fetch_row($res))
{
if ($con==$arr[0])
{
$submenu.= '<a class="left_mark" href="index.php?con=' . $arr[0] . '&sub=' . $arr[3] . '">' . $arr[1] . '</a>';
}else{
$submenu.= '<a class="left" href="index.php?con=' . $arr[0] . '&sub=' . $arr[3] . '">' . $arr[1] . '</a>';
}
}
$res=mysql_query('SELECT * FROM menu ORDER by name;');
while($arr=mysql_fetch_row($res)) {
if ($arr[2]==0) {
$idee=$arr[0];
$resulu=mysql_query('SELECT * FROM content WHERE id = ' . $idee . ' ORDER BY id LIMIT 1;');
$cona=mysql_fetch_array($resulu);
$conit=$cona[0];
}else{
$conit=$arr[2];
}
if ($sub==$arr[0]) {
$menu.= '<a class="top_mark" href="index.php?con=' . $conit . '&sub=' . $arr[0] . '">' . $arr[1] . '</a>';
}else{
$menu.= '<a class="top" href="index.php?con=' . $conit . '&sub=' . $arr[0] . '">' . $arr[1] . '</a>';
}
}
$res=mysql_query('SELECT * FROM box');
while($arr=mysql_fetch_row($res)) {
if($arr[3]==1) {
$box_left.=file_get_contents('templates/box.tpl') . '<br>';
$box_left=str_replace('{box_title}',$arr[1],$box_left);
$box_left=str_replace('{box_con}',$arr[2],$box_left);
}else{
$box_right.=file_get_contents('templates/box.tpl').'<br>';
$box_right=str_replace('{box_title}',$arr[1],$box_right);
$box_right=str_replace('{box_con}',$arr[2],$box_right);
}
}
$res=mysql_query('SELECT * FROM content WHERE id="' . $con . '";');
$arr=mysql_fetch_array($res);
$con_center=file_get_contents('templates/box.tpl');
$con_center=str_replace('{box_title}',$arr[1],$con_center);
$con_center=str_replace('{box_con}',$arr[2],$con_center);
$con_info=file_get_contents('templates/box.tpl');
$con_info=str_replace('{box_title}',$info_name,$con_info);
$con_info=str_replace('{box_con}',$info_con,$con_info);
$con_menu=file_get_contents('templates/box.tpl');
$con_menu=str_replace('{box_title}','Hauptmenü',$con_menu);
$con_index=file_get_contents('templates/index.tpl');
$con_index=str_replace('{menu}',$menu,$con_index);
$con_index=str_replace('{center}',$con_center,$con_index);
$con_index=str_replace('{box_right}',$box_right,$con_index);
$con_index=str_replace('{box_left}',$box_left,$con_index);
$con_index=str_replace('{leftmenu}',$con_menu,$con_index);
$con_index=str_replace('{box_con}',$submenu,$con_index);
$con_index=str_replace('{info}',$con_info,$con_index);
echo $con_index;
?>
Underserial
23.06.2007, 11:11
Dessen Arbeit hab ich nur einmal in Anspruch genommen glaub mir ...
Leider kommt auf der HP immer noch folgender fehler
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /var/www/web182/html/index.php on line 26
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /var/www/web182/html/index.php on line 38
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /var/www/web182/html/index.php on line 57
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/web182/html/index.php on line 71
Füg mal bitte nach jeder Zeile mit mysql_query folgendes ein:
echo mysql_errno() . ": " . mysql_error() . "<br/>\n";
Underserial
23.06.2007, 11:38
Füg mal bitte nach jeder Zeile mit mysql_query folgendes ein:
echo mysql_errno() . ": " . mysql_error() . "<br/>\n";
dann kommt das:
1146: Table 'usr_web182_3.content' doesn't exist
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /var/www/web182/html/index.php on line 27
1146: Table 'usr_web182_3.menu' doesn't exist
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /var/www/web182/html/index.php on line 40
1146: Table 'usr_web182_3.box' doesn't exist
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /var/www/web182/html/index.php on line 61
1146: Table 'usr_web182_3.content' doesn't exist
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/web182/html/index.php on line 76
...da steht doch gross und breit, was los ist. Die Datenbanktabelle, auf die du zugreifen willst, gibt's nicht. Logisch, dass das nicht funktionieren kann.
Underserial
23.06.2007, 11:42
hmm wie krieg ich das wieder hin?
Ok
hab ein Backup gemacht nun steht oben was.
Sehs dir mal an.
www.esdi-page.de
Edit:
Ist weg alles wieder iO
habs hinbekommen
hmm wie krieg ich das wieder hin?
Indem du die Datenbank anlegst.
Edit:
Der neue Output heisst, dass es keine MySQL-Fehler gab. Loesch einfach den von DFYX geposteten Code wieder aus der Datei, dann ist das weg.
Underserial
23.06.2007, 12:03
Dank euch allen.
Die verbesserte index.php ist nun einiges kompatibler.
MFG; ;)
Powered by vBulletin® Version 4.2.3 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.