Logo - MyWebsolution.de
User gesamt  :  1738602
User online  :  3
KubaSeoTräume, PHP Forum, PHP Community and more ... MyWebsolution.de!
   
   
 
Registrieren Login User F.A.Q Suche Home

eingeloggt bleiben

MyWebsolution.de Foren » Anfängerfragen PHP und MYSQL » Datenbank unter php5 mit register_globals = off

Seite: 1 Posts pro Seite: 5 10 20
Autor Thread
30.01.2012 14:43 Uhr Datenbank unter php5 mit register_globals = off
axel01
User
 
registriert 30.01.2012
wohnt in Dorsten
Beiträge 3
Hallo!
Ich bin noch ein ziemlicher Anfänger, habe aber jetzt das Problem, dass ich eine bisher unter php4 funktionierende Datenbank unter php5 mit standardmäßigem "register_globals = off" zum Laufen bringen muss.
Jetzt komme ich leider alleine nicht mehr weiter.
Ich habe jetzt alle Variablen umgeschrieben in $_POST['var'], deren Umschreibungen nicht neue Fehler produziert haben. Ich bin mir nicht sicher, ob ich alles richtig gemacht habe, aber jedenfalls sind jetzt keine neuen Fehler entstanden und es läuft weiterhin unter php4 und php5 mit "register_globals = on".
Vielleicht habe ich auch etwas übersehen, oder da sind Variablen, wo man GET machen muss?
Auch habe ich $PHP_SELF durch $_SERVER["PHP_SELF"] ersetzt.

Hauptproblem ist immer noch, dass man- wenn ich php5 aktiviere (.htaccess) bzw. register_globals auf off stelle (php.ini) - nicht in die Branchen hinein kommt. Man wird immer zurück auf den Index geworfen. Das hat sich nach den ganzen Änderungen nicht geändert.

Könnt ihr mir vielleicht auf die Sprünge zu helfen?

Hier der Code:

PHP:

error_reporting(-1);
ini_set('display_errors', 1);

$mysqlhost = "XXX";
$mysqluser = "XXX";
$mysqlpass = "XXX";
$mysqldb = "XXX";




/************************************************************************

$aktuellebranche ist die ID der aktuellen Branche

$seite auf dieser Seite ist man

*************************************************************************/

if ($aktuellebranche == "") 

 {

 $aktuellebranche = 0;

 } 

if ($seite == "")

 {

 $seite = 1;

 }

if ($suche)
    echo "<a href=".$_SERVER["PHP_SELF"].">zur&#xFC;ck zum Index</a>";
else
    echo "<a href=".$_SERVER["PHP_SELF"].">Index</a>";
  



  

 $durch = $aktuellebranche; 



 $verbind = mysql_connect($mysqlhost,$mysqluser,$mysqlpass);

 

 

 while (($durch != 0) && (!$suche))
 {
     if (!$verbind)
       die("Kann den Server nicht erreichen, stimmen Username Passwort und Adresse ?");
     if (!mysql_select_db($mysqldb, $verbind))
       die("Kann die Datenbank nicht anwählen, Stimmt der Name ?");
     $query = "SELECT BName,BId,Cof FROM Branchen WHERE BId=".$durch; 
     $ergebniss = mysql_query($query, $verbind);
     if (!$ergebniss)
     {
      print mysql_error();
      die(" Query $query funktioniert nicht !");
     }
     if ($bekommen = mysql_fetch_array($ergebniss)) 
     {
        $ergebnisname = "&nbsp;-&nbsp;<a href=\"".$_SERVER["PHP_SELF"]."?aktuellebranche=".$bekommen[1]."\">".$bekommen[0]."</a>".$ergebnisname;
        $durch = $bekommen[2];
     } 
     else
     {
        die(); 
     } 
     mysql_free_result($ergebniss);
 } 

 mysql_close($verbind);

 
if (!$suche)
    echo $ergebnisname; 
$verbind = mysql_connect($mysqlhost,$mysqluser,$mysqlpass);

 if (!$verbind)

   die("Kann den Server nicht erreichen, stimmen Username Passwort und Adresse ?");

 if (!mysql_select_db($mysqldb, $verbind))

   die("Kann die Datenbank nicht anwählen, Stimmt der Name ?");

 $limitanfang = ($seite - 1) * 10; // f&#xE4;ngt bei 0 an , geht bis x; 

 $limitende = $seite * 10;

if (!$suche) 
    $query = "SELECT a.Id, a.Paket, a.Name, a.Plz, a.Stadt, a.Stadtteil, a.Strasse, a.Telefon1, a.Telefax, a.Url, a.Email FROM Firmen a, BranchenIndex b WHERE b.Firma = a.Id AND b.Branche = ".$aktuellebranche." ORDER BY a.Paket DESC, a.Name LIMIT ".$limitanfang.",11"; 
else {
    $query = "SELECT a.Id, a.Paket, a.Name, a.Plz, a.Stadt, a.Stadtteil, a.Strasse, a.Telefon1, a.Telefax, a.Url, a.Email FROM Firmen a";
    if ($suchebranche)
        $query = $query.", BranchenIndex b, Branchen c";

    if ($sucheprodukt) {
        $i = 0;
        $query = $query." WHERE a.Paket >= 3";
        $pieces = explode (" ", $sucheprodukt);
        while ($pieces[$i] != "") {
            $query = $query.' AND a.Produkte LIKE "%'.$pieces[$i].'%"';
            $i = $i + 1; 
        } //ENDE WHILE
    } // ENDE IF sucheprodukte

    if ($suchefirma) {
        $i = 0;
        $pieces = explode (" ", $suchefirma);
        if (!$sucheprodukt) {
            $query = $query.' WHERE a.Name LIKE "%'.$pieces[$i].'%"'; 
            $i = $i + 1;
        }
        while ($pieces[$i] != "") {
            $query = $query.' AND a.Name LIKE "%'.$pieces[$i].'%"';
            $i = $i + 1; 
        } //ENDE WHILE
    } //ENDE IF suchefirma 
    
    if ($suchebranche) {
        if ((!$sucheprodukt) && (!$suchefirma))
            $query = $query.' WHERE a.Id = b.Firma AND b.Branche = c.BId';
        else
            $query = $query.' AND a.Id = b.Firma AND b.Branche = c.BId';
        
        $i = 0;
        $pieces = explode (" ", $suchebranche);
        while ($pieces[$i] != "") {
            $query = $query.' AND c.BName LIKE "%'.$pieces[$i].'%"';
            $i = $i + 1; 
        } //ENDE WHILE
    } // ENDE IF suchebranche
    $query = $query." ORDER BY a.Paket DESC, a.Name LIMIT ".$limitanfang.",11"; 
// echo $query; 
}
    
 $ergebniss = mysql_query($query, $verbind);

if ((mysql_affected_rows($verbind) == 0) && $suche) 
    echo '<font face="Arial, Helvetica" size="2" color="#366A6A"><b>Ihre Suche hat leider keine Treffer ergeben.</b></font><font face="Arial, Helvetica" size="2"><br><br> Bitte versuchen Sie Ihre Suche mit anderen Begriffen zu optimieren<br>oder nutzen Sie alternativ den Branchenindex!<br></font>';
 
 
 if (!$ergebniss)
 {
  print mysql_error();
  die(" Query $query funktioniert nicht !");
 }

 $durchmeiernbeschiss = 1;

 while ($bekommen = mysql_fetch_array($ergebniss)){

  if ($durchmeiernbeschiss != 11) {

    echo '<table border="0" cellspacing="0" cellpadding="0">';

    if ($bekommen[1] >= 3) // I f&#xFC;r grosse Pakete

        echo '<tr><td rowspan="2" valign="top"><a href="unternehmen_dorstener_firmen_detailansicht.php?id='.$bekommen[0].'"><img src="images/information.gif" width="26" height="26" vspace="2" border=0></a><br><img src="images/pix_blank.gif" width="30" height="1"></td><td><img src="images/pix_blank.gif" width="1" height="1"></td></tr>';

    else

        echo '<tr><td rowspan="2" valign="top"><br><img src="images/pix_blank.gif" width="30" height="1"></td><td><img src="images/pix_blank.gif" width="1" height="1"></td></tr>';

    echo '<tr><td valign="top"><font size="2" face="Arial, Helvetica">';

    echo "<b>".$bekommen[2]."</b><br>"; 

    echo $bekommen[6]."<br>";

    echo $bekommen[3]." ".$bekommen[4];

    if ($bekommen[5] != "")

       echo "-".$bekommen[5];

    echo "<br>"; 

    if ($bekommen[7])

        echo "Telefon: ".$bekommen[7];

    if ($bekommen[8])

        echo " Telefax: ".$bekommen[8];

    echo "<br>"; 

    if ($bekommen[1] >= 2) {

        echo "<a href='http://".$bekommen[9]."' target='_blank'>".$bekommen[9]."</a><br>";

        echo "<a href='mailto:".$bekommen[10]."'>".$bekommen[10]."</a>";

    }

    else {

       echo $bekommen[9]."<br>";

       echo $bekommen[10];

    }

    echo "</tr></table><br>";

    $durchmeiernbeschiss++;

  } 

 } // WHILE zu ende
 

 mysql_close($verbind); 

?>
              <br>
              <table border="0" cellspacing="0" cellpadding="0" align="center">
                <tr> 
                  <?

                
if ($limitanfang != 0

                  {

                    
$seite2 $seite;

                    
$seite2--;

                    if (!
$suche)
                        echo 
'<td><a href="'.$_SERVER["PHP_SELF"].'?seite='.$_POST['seite2'].'&aktuellebranche='.$_POST['aktuellebranche'].'"><img src="images/zurueck.gif" width="12" height="12" hspace="10" border="0"></a></td>';
                    else
                        echo 
'<td><a href="'.$_SERVER["PHP_SELF"].'?seite='.$_POST['seite2'].'&suche=1&suchefirma='.$_POST['suchefirma'].'&sucheprodukt='.$_POST['sucheprodukt'].'&suchebranche='.$_POST['suchebranche'].'"><img src="images/zurueck.gif" width="12" height="12" hspace="10" border="0"></a></td>';

                    echo 
'<td> <div align="right"><font face="Arial, Helvetica" size="1"><a href="';
                    
                    if (!
$suche)
                        echo 
''.$_SERVER["PHP_SELF"].'?seite='.$_POST['seite2'].'&aktuellebranche='.$_POST['aktuellebranche'].'">zur&uuml;ck</a></font></div></td><td><img src="images/pix_blank.gif" width="1" height="1" hspace="5"></td>';
                    else
                        echo 
''.$_SERVER["PHP_SELF"].'?seite='.$_POST['seite2'].'&suche=1&suchefirma='.$_POST['suchefirma'].'&sucheprodukt='.$_POST['sucheprodukt'].'&suchebranche='.$_POST['suchebranche'].'">zur&uuml;ck</a></font></div></td><td><img src="images/pix_blank.gif" width="1" height="1" hspace="5"></td>';
                    
                    echo 
"\n";

                  }

                 else

                  {

                    echo 
'<td></td><td></td><td><img src="images/pix_blank.gif" width="1" height="1" hspace="5"></td>'

                  }

                if (
$durchmeiernbeschiss == 11)

                 {

                   
$seite2 $seite;

                   
$seite2++;

                    if (!
$suche)
                       echo 
'<td><a href="'.$_SERVER["PHP_SELF"].'?seite='.$_POST['seite2'].'&aktuellebranche='.$_POST['aktuellebranche'].'"><font size="1" face="Arial, Helvetica">weiter</font></a></td>';
                    else
                       echo 
'<td><a href="'.$_SERVER["PHP_SELF"].'?seite='.$_POST['seite2'].'&suche=1&suchefirma='.$_POST['suchefirma'].'&sucheprodukt='.$_POST['sucheprodukt'].'&suchebranche='.$_POST['suchebranche'].'"><font size="1" face="Arial, Helvetica">weiter</font></a></td>';
                    
                    if (!
$suche)
                        echo 
'<td><a href="'.$_SERVER["PHP_SELF"].'?seite='.$_POST['seite2'].'&aktuellebranche='.$_POST['aktuellebranche'].'"><img src="images/weiter.gif" width="12" height="12" hspace="10" border="0"></a></td>';
                    else
                        echo 
'<td><a href="'.$_SERVER["PHP_SELF"].'?seite='.$_POST['seite2'].'&suche=1&suchefirma='.$_POST['suchefirma'].'&sucheprodukt='.$_POST['sucheprodukt'].'&suchebranche='.$_POST['suchebranche'].'"><img src="images/weiter.gif" width="12" height="12" hspace="10" border="0"></a></td>';
                    
                 }

                else

                 {

                   echo 
'<td></td>';

                   echo 
'<td></td>';

                   echo 
"\n";


Das ganze sieht funktionierend unter php4 so aus: http://www.meindorsten.de/dorstenerfirmen.php4

unter folgender Testseite sieht man auch die Fehlermeldungen:
http://www.meindorsten.de/dorstenerfirmen2.php4

Vielen Dank schon mal im voraus!

Gruß
Axel Brepohl

Dieser Beitrag wurde am 31.01.2012 um 09:47:49 Uhr von axel01 zum 8. Mal editiert.
Profil ansehen
31.01.2012 10:26 Uhr
axel01
User
 
registriert 30.01.2012
wohnt in Dorsten
Beiträge 3
Hallo!
Das ist vielleicht zuviel erwartet und zuviel Code, oder?
Es reicht mir schon, wenn man mir bei dem einen einzigen Problem helfen könnte, dass man in Unterbranchen hinein kommt und nicht immer zurück auf den Index geworfen wird.

Um alles andere (undefined variable und so) kümmere ich mich dann noch.

Dafür braucht man ja dann nur diesen Code:
PHP:


if ($aktuellebranche == "") 

 {

 $aktuellebranche = 0;

 } 

if ($seite == "")

 {

 $seite = 1;

 }


if ($suche)
    echo "<a href=".$_SERVER["PHP_SELF"].">zur&#xFC;ck zum Index</a>";
else
    echo "<a href=".$_SERVER["PHP_SELF"].">Index</a>";
  

 $durch = $aktuellebranche; 


 $verbind = mysql_connect($mysqlhost,$mysqluser,$mysqlpass);


 while (($durch != 0) && (!$suche))
 {
     if (!$verbind)
       die("Kann den Server nicht erreichen, stimmen Username Passwort und Adresse ?");
     if (!mysql_select_db($mysqldb, $verbind))
       die("Kann die Datenbank nicht anwählen, Stimmt der Name ?");
     $query = "SELECT BName,BId,Cof FROM Branchen WHERE BId=".$durch; 
     $ergebniss = mysql_query($query, $verbind);
     if (!$ergebniss)
     {
      print mysql_error();
      die(" Query $query funktioniert nicht !");
     }
     if ($bekommen = mysql_fetch_array($ergebniss)) 
     {
        $ergebnisname = "&nbsp;-&nbsp;<a href=\"".$_SERVER["PHP_SELF"]."?aktuellebranche=".$bekommen[1]."\">".$bekommen[0]."</a>".$ergebnisname;
        $durch = $bekommen[2];
     }    
     else
     {
        die();   
     }    
     mysql_free_result($ergebniss);
 } 

 mysql_close($verbind);

 
if (!$suche)
    echo $ergebnisname; 



Danke und Gruß
Axel

Dieser Beitrag wurde am 31.01.2012 um 14:23:47 Uhr von axel01 zum 3. Mal editiert.
Profil ansehen
31.01.2012 22:23 Uhr
axel01
User
 
registriert 30.01.2012
wohnt in Dorsten
Beiträge 3
Hallo!

Okay, ich habe es jetzt ohne euch hinbekommen!
Ha ha! Doppelpostings können doch manchmal ganz sinnvoll sein :)
Hier wurde mir geholfen:
http://www.php-resource.de/forum/sql-datenbanken/102621-datenbank-unter-php5-mit-register_gl....html

Das Thema kann geschlossen werden. Das ganze läuft jetzt unter php5 mit register_globals=off:
http://www.meindorsten.de/dorstenerfirmen.php4

Gruß
Axel
Profil ansehen
Seite: 1 no reply
Powered by Pascal Landau © 2006 MyWebsolution.de
Designed by Pascal Landau © 2006 MyWebsolution.de
 
 
 
 
Home Email Impressum Disclaimer Statistik