Forum Doku Wiki Blog

Forumsarchiv 2006, Februar
php.ini register_globals = off

archivierte Beiträge lesen

  1. (PHP) php.ini register_globals = off von Thomas Z., 06. 02. 2006, 14:02

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 14:02 Uhr von Thomas Z. veröffentlicht.

Tach zusammen

Hab da ein Problem welches ich mir nicht so ganz erklären kann.
Stelle ich in der php.ini register_globals = Off und rufe meine Seite auf bekomme ich folgende Fehlermeldung

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in ausgabe.php on line 128

dort steht in Zeile 128

while ($row = mysql_fetch_row ($result))

stelle ich register_globals = On

läuft die abfrage und ich bekomme meine Datensaetze angezeigt.

Was kann das sein, bzw. wie kann ich das Script ändern damit ich register_globals = off stehen lassen kann ...

Gruss und Danke Thomas




php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 14:08 Uhr von wahsaga veröffentlicht.

hi,

> Hab da ein Problem welches ich mir nicht so ganz erklären kann.
> Stelle ich in der php.ini register_globals = Off und rufe meine Seite auf bekomme ich folgende Fehlermeldung
>
> Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in ausgabe.php on line 128
> [...]
> Was kann das sein,

Diese Meldung deutet lediglich darauf hin, dass bei einer _vorher_ ausgeführten SQL-Query etwas schief ging.

Hättest du dort ein ordentliches Fehlerhandling eingebaut - mysql_error() abfragen o.ä. - dann wüsstest du auch schon, was das ist.

> bzw. wie kann ich das Script ändern damit ich register_globals = off stehen lassen kann ...

Duhast vermutlich per GET/POST/COOKIE hereinkommende Werte in deiner Query verwendet, ohne dort die korrekte Schreibweise zu verwenden.
(Darauf, sie gegen SQL Injections abzusichern, hast du aber hoffentlich wenigstens gedacht?)

gruß,
wahsaga


--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 14:11 Uhr von Joachim veröffentlicht.

Hi,

> Was kann das sein, bzw. wie kann ich das Script ändern damit ich register_globals = off stehen lassen kann ...
Möglicherweise kommen Deine Parameter nicht mehr an, weil Du direkt auf die Variablen, nicht aber auf $_POST, $_GET, $_REQUEST etc. zugreifst:
http://de2.php.net/register_globals

Gruesse, Joachim
--
Am Ende wird alles gut.

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 14:13 Uhr von Vinzenz Mai veröffentlicht.

Hallo Thomas,

> Stelle ich in der php.ini register_globals = Off und rufe meine Seite auf bekomme ich folgende Fehlermeldung

das PHP-Handbuch, Abschnitt Verwendung von Register Globals sollte Deine erste Anlaufstelle sein.

> Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in ausgabe.php on line 128

Meine Glaskugel sagt mir: Das SQL-Statement, das Du MySQL zur Ausführung übergibst, sieht nicht so aus wie Du glaubst.
Poste doch bitte Deinen Code, der das SQL-Statement zusammenbaut, das SQL-Statement wie es Deiner Ansicht nach aussehen sollte und das SQL-Statement, das tatsächlich übergeben wird.


Freundliche Grüße

Vinzenz

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 14:27 Uhr von Thomas Z. veröffentlicht.

Hallo Vinzenz

Danke für deine prompte Antwort...

Hier ein Teil meines Codes....

<?php

include("admin/zugang.inc.php");
switch ($jahr)

{
case "1992"    : $sql="SELECT * FROM top100, woche  WHERE top100.jahr='$jahr' AND woche.jahr='$jahr' AND top100.kw='$kw' and woche.kw='$kw' LIMIT 0,1";
           break;
case "1993"    : $sql="SELECT * FROM top100, woche  WHERE top100.jahr='$jahr' AND woche.jahr='$jahr' AND top100.kw='$kw' and woche.kw='$kw' LIMIT 0,1";
           break;
 default        : $sql="SELECT * FROM nodata";
           break;

}

$ergebnis = mysql_query($sql,$verbindung);

echo "<table width='471' border='1' bordercolor='#FF9900'  cellspacing='1'cellpadding='1' align='center'>";
echo "<tr bgcolor='#FFAC05'>";
echo "<td align='center'><font color='#000000'><FONT FACE='Arial' SIZE=2><b>Charts Fuer Die Woche Vom</td>";
echo "</tr>";
while ($row = mysql_fetch_object($ergebnis))

{
echo "<tr bgcolor='#000080'>
<td align='center'><font color='#FFFF00'><b>$row->datum</b></td>
</tr>";

}
echo "</table>";
echo "<p>";
mysql_free_result($ergebnis);

mysql_close($verbindung);
?>

<?php

$db = @MYSQL_CONNECT($server,$benutzer,$kennwort);  mysql_select_db("top100",$db);
//$bioId = mysql_escape_string($bioId);
$result = mysql_query("SELECT top100.*,(SELECT count(*) from top100 as top100 WHERE top100.interpret= top100.interpret AND top100.titel= top100.titel) AS ANZAHL FROM top100, woche WHERE top100.jahr='$jahr' AND woche.jahr='$jahr' and top100.KW='$kw' AND woche.kw='$kw' ORDER BY 'Platz' LIMIT $pos");

while ($row = mysql_fetch_row ($result))
{
if ($row[19] == '<img border="0" src="images/single/new.gif" width="53" height="16">')
        $change = '<font color="#FF0000">Neu';
else if ($row[19] == '<body bgcolor="#FF0000"><font size ="1" color="#000000">Wiedereinsteiger</font></p>')
        $change = '<img border="0" src="images/single/point.gif" width="12" height="10">';
else if ($row[6] == $row[19])
        $change = '<img border="0" src="images/single/point.gif" width="12" height="10">';
    else if ($row[6] < $row[19])
        $change = '<img border="0" src="images/single/a_up.gif" width="12" height="10">';
else if ($row[6] > $row[19])
        $change = '<img border="0" src="images/single/a_down.gif" width="12" height="10">';


echo"<center>";
echo"<table border='1' width='49%' height='35' bgcolor='#000080' border='2' bordercolor='#FFAC05'>";

    echo"  <tr>";
       echo" <td width='9%' height='1' rowspan='3' align='center' border='2' bordercolor='#FFAC05'>";
         echo" <p align='center'border='2' bordercolor='#FFAC05'><font color='#FFAC05'><i><b><FONT FACE='Arial' SIZE='2'>$row[6]</p>";
     echo"   </td>";
        echo"<td width='9%' height='33' align='center'><font color='#FFFFFF'><i><b><FONT FACE='Arial' SIZE='2'><i><b><FONT FACE='Arial' SIZE='2'>$change</td>";
        echo"<td width='62%' height='1' rowspan='2' align='center' colspan='4'>";
          echo"<p align='center'><font color='#FFFFFF'><i><b><FONT FACE='Franklin Gothic Medium' SIZE='3'>$row[1]</p>";
      echo" </td>";
        echo"<td width='20%' height='29' rowspan='4' align='center'><font color='#FFFFFF'><i><b><FONT FACE='Arial' SIZE='2'><i><b><FONT FACE='Arial' SIZE='2'>$row[8]</td>";
     echo" </tr>";
      echo"<tr>";
       echo" <td width='9%' height='1' rowspan='2' align='center'><font color='#FFAC05'><i><b><FONT FACE='Arial' SIZE='2'>$row[19]</td>";
      echo"</tr>";
      echo"<tr>";
        echo"<td width='62%' height='29' align='center' colspan='4'>";
         echo" <p align='center'><font color='#FFFF00'><i><b><FONT FACE='Arial' SIZE='2'>$row[2]</td>";
    echo"  </tr>";
     echo" <tr>";
        echo"<td width='18%' height='32' colspan='2' align='center'><font color='#FFAC05'><i><b><FONT FACE='Arial' SIZE='2'>KW $kw</td>";
        echo"<td width='11%' height='16' align='center'><a href='biografien.php?bioId=$row[1]'><img border='0' src='images/biografie.gif' width='65' height='15'></td>";
        echo"<td width='1%' height='16' align='center'>$row[9]</td>";
      echo"  <td width='9%' height='16' align='center'>$row[14]</td>";
       echo" <td width='10%' height='16' align='center'><font color='#FFAC05'><i><b><FONT FACE='Arial' SIZE='2'>$row[21]</td>";
     echo" </tr>";
    echo"</table>";




     echo" </center>";
   echo" </div>";
echo"<p>";
echo mysql_error();


?>

Den Code hab ich mal vor cirka 5 Jahren geschrieben.



php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 14:54 Uhr von wahsaga veröffentlicht.

hi,

> Danke für deine prompte Antwort...
>
> Hier ein Teil meines Codes....

Was soll das?
Vinzenz' Antwort und auch die anderen enthielten Tipps, wo _du_ den Fehler suchen sollst - also wieso lädst du jetzt einfach deinen kompletten Code hier ab - "macht ihr mal für mich"?


> Den Code hab ich mal vor cirka 5 Jahren geschrieben.

Schön für dich.
Dann bringe jetzt bitte dein Wissen auf einen halbwegs aktuellen Stand, und aktualisiere anschließend deinen Code.

gruß,
wahsaga


--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 14:58 Uhr von Thomas Z. veröffentlicht.

Hallo wahsaga

Sorry, mit "macht mal für mich" hat das nixhts zu tun.

Nur fang ich mit Fachbegriffen im ersten Moment nix an...

Jeder glaub ich hat so seine Stärken.... ich könnte dir auch was über Einbauküchen und Möbel erzählen und dann sagen....


MACH MAL....

Gruss Thomas

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 15:00 Uhr von Thomas Z. veröffentlicht.

Hallo wahsaga

Das ich den Code gepostet habe war aufgrund der Antwort von Vinzenz der mich drun gebeten hatte.

Gruss Thomas

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 15:09 Uhr von Vinzenz Mai veröffentlicht.

Hallo Thomas,

> switch ($jahr) {
>     case "1992"    : $sql = [...]; break;
>     case "1993"    : $sql = [...]; break;
>     default        : $sql = "SELECT * FROM nodata"; break;
> }

Meine Glaskugel sagt mir: $sql enthält den Wert

    SELECT * FROM nodata

Möchtest Du dieses Statement absetzen?
Sollte das SQL-Statement etwa anders aussehen? Wenn ja, wie?

Ich wollte von Dir mehr als nur Code.
Ich wollte z.B. SQL-Statements sehen.


Freundliche Grüße

Vinzenz

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 15:12 Uhr von Thomas Z. veröffentlicht.

Vinzenz ->YOU ARE THE BEST

->     SELECT * FROM nodata

das war der Fehler.....

S U P E R.......


gibt es noch etwas was ich aendern sollte ??

Gruss Thomas

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 15:24 Uhr von Thomas Z. veröffentlicht.

Hallo Vinzenz

Ähhh sorry, hatte vergessen nach dem aendern der php.ini den Webserver neu zu starten.

Gleiches Problem wie am Anfang....

Die SQL Statements sind die, die ich gepostet habe..


case "1992"    : $sql="SELECT * FROM top100, woche  WHERE top100.jahr='$jahr' AND woche.jahr='$jahr' AND top100.kw='$kw' and woche.kw='$kw' LIMIT 0,1";
           break;

$result = mysql_query("SELECT top100.*,(SELECT count(*) from top100 as top100 WHERE top100.interpret= top100.interpret AND top100.titel= top100.titel) AS ANZAHL FROM top100, woche WHERE top100.jahr='$jahr' AND woche.jahr='$jahr' and top100.KW='$kw' AND woche.kw='$kw' ORDER BY 'Platz' LIMIT $pos");

Wenn der Fehler in $sql liegt, weiss ich nicht wie ich das anders übergeben soll......

sind doch nur 3 Variablen...

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 15:30 Uhr von wahsaga veröffentlicht.

hi,

> Gleiches Problem wie am Anfang....

Ja, sieht so aus - fragt sich bloß, warum immer noch? Was du bei register_globals=off zu beachten hast, sollte doch jetzt eigentlich klar sein.

> case "1992"    : $sql="SELECT * FROM top100, woche  WHERE top100.jahr='$jahr' AND woche.jahr='$jahr' AND top100.kw='$kw' and woche.kw='$kw' LIMIT 0,1";

Woher sollen die Werte für $jahr und $kw kommen?

> sind doch nur 3 Variablen...

_Wenn_ sie das sind. Zweifel sind angebracht.

gruß,
wahsaga


--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 15:34 Uhr von Thomas Z. veröffentlicht.

Die drei Variablen kommen aus einem weiteren Script


guckst du

<html>

<div align="center">
  <center>
<pre align="center"><font face="Arial" size="3"><b>Jahr : </b><select name="jahr" size="1" background-color="#FFFFE0"><option>&nbsp;&nbsp;&nbsp;</option>
<option value="1992">1992</option>

</select><b> KW: </b><select name="kw" size="1" background-color="#FFFFE0">

</select> <b>Pl&aumltze: </b></select><select name="pos" size="1" background-color="#FFFFE0">
<option>&nbsp;&nbsp;&nbsp;</option>
<option value="10"SELECTED>10</option>
<option value="50">50</option>
<option value="100">100</option>
</select>&nbsp;&nbsp;<input type="submit" value="Go !"></font></center>
</div>
</form>
</html>

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 15:37 Uhr von fastix® veröffentlicht.

Moin!

> Die drei Variablen kommen aus einem weiteren Script

Wie soll das gehen? Es wird immer nur genau ein Formular gesendet. Oder arbeitest Du mit einer Session?


MFFG (Mit freundlich- friedfertigem Grinsen)

fastix®

--
Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 15:42 Uhr von Thomas Z. veröffentlicht.

Sieht aus als läge der Fehler in der Syntax

SELECT top100.*,(
   SELECT count(*) from top100 as top100
   WHERE top100.interpret= top100.interpret
     AND top100.titel= top100.titel) AS ANZAHL
     FROM top100, woche WHERE top100.jahr='$jahr'
     AND woche.jahr='$jahr' and top100.KW='$kw'
     AND woche.kw='$kw' ORDER BY 'Platz'
 LIMIT $pos";

und zwar an LIMIT $pos, so deute ich zumindest die Fehlerausgabe..

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 15:54 Uhr von Vinzenz Mai veröffentlicht.

Hallo Thomas,

> SELECT top100.*,(
>    SELECT count(*) from top100 as top100
>    WHERE top100.interpret= top100.interpret
>      AND top100.titel= top100.titel) AS ANZAHL
>      FROM top100, woche WHERE top100.jahr='$jahr'
>      AND woche.jahr='$jahr' and top100.KW='$kw'
>      AND woche.kw='$kw' ORDER BY 'Platz'
> LIMIT $pos";

ein einfaches echo $sql; würde ein für Dich überraschendes Ergebnis liefern. Warum weigerst Du Dich so standhaft, diese Ausgabe zu erzeugen. Um diese Ausgabe bitte ich Dich doch bereits seit meinem ersten Posting.

Wie fastix bereits schrieb sollte es wohl $_GET['jahr'] bzw. $_POST['jahr'], $_GET['kw'] bzw. $_POST['kw'] heißen (analoges gilt für $pos), aber ich verlinkte Dir schon in meinem ersten Posting den betreffenden Handbuchabschnitt und damit war ich nicht allein.


Freundliche Grüße

Vinzenz

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 16:00 Uhr von Thomas Z. veröffentlicht.

Hey Vinzenz

so hab ich gemacht

SELECT top100.*,( SELECT count(*) from top100 as top100 WHERE top100.interpret= top100.interpret AND top100.titel= top100.titel) AS ANZAHL FROM top100, woche WHERE top100.jahr='2006' AND woche.jahr='2006' and top100.KW='6' AND woche.kw='6' ORDER BY 'Platz' LIMIT 10

das war das ergebnis.....

die Variablen sind übergeben worden



php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 18:43 Uhr von Rouven veröffentlicht.

Hi,

ich hab leider in diesem Thread den Überblick verloren, wo du eigentlich gerade bist und was klappt und was nicht...
> SELECT top100.*,( SELECT count(*) from top100 as top100 WHERE top100.interpret= top100.interpret AND top100.titel= top100.titel) AS ANZAHL FROM top100, woche WHERE top100.jahr='2006' AND woche.jahr='2006' and top100.KW='6' AND woche.kw='6' ORDER BY 'Platz' LIMIT 10
Sind das bei ORDER BY 'Platz' Backticks (`) oder normale Single-Quotes ('). Falls letzteres gilt, ist das ebenso wie die Join-Bedingung top100.titel = top100.titel nicht wirklich sinnvoll. Auf die Join-Bedingung wurdest du ja schon hingewiesen... ORDER BY 'Platz' sortiert alle Einträge nach dem String 'Platz' der also für alle Einträge gleich ist, damit wird also nichts sortiert. Wenn du nach der Spalte Platz sortieren möchtest, dann lass die Quotes weg...

Zu den Variablen einfach nochmal der Hinweis:
PHP-FAQ: register_globals
PHP-FAQ: Variablenübergabe


MfG
Rouven

--
-------------------
ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 19:39 Uhr von Thomas Z. veröffentlicht.

so jetzt ja, musste mal eben Opa und Oma besuchen gehen, sind ins Krankenhaus gekommen.

hier mal das was erstmal aufgerufen wird und die kw etc auflisten

<pre align="center"><font face="Arial" size="3"><b>Jahr : </b><select name="jahr" size="1" background-color="#FFFFE0"><option>&nbsp;&nbsp;&nbsp;</option>
<option value="1992">1992</option>
<option value="1993">1993</option>
<option value="1994">1994</option>
</select><b> KW: </b><select name="kw" size="1" background-color="#FFFFE0">
</select> <b>Pl&aumltze: </b></select><select name="pos" size="1" background-color="#FFFFE0">
<option>&nbsp;&nbsp;&nbsp;</option>
<option value="10"SELECTED>10</option>
<option value="50">50</option>
<option value="100">100</option>
</select>&nbsp;&nbsp;<input type="submit" value="Go !"></font></center>^M
</div>^M
</form>^M
</html>

ausgabe.php

<?php

include("admin/zugang.inc.php");
switch ($jahr)

{
case "1992"    : $sql="SELECT * FROM top100, woche  WHERE top100.jahr='$jahr' AND woche.jahr='$jahr' AND top100.kw='$kw' and woche.kw='$kw' LIMIT 0,1";
           break;
case "1993"    : $sql="SELECT * FROM top100, woche  WHERE top100.jahr='$jahr' AND woche.jahr='$jahr' AND top100.kw='$kw' and woche.kw='$kw' LIMIT 0,1";
           break;
case "1994"    : $sql="SELECT * FROM top100, woche  WHERE top100.jahr='$jahr' AND woche.jahr='$jahr' AND top100.kw='$kw' and woche.kw='$kw' LIMIT 0,1";
           break;

 default        : $sql="SELECT * FROM nodata";
           break;

}

$ergebnis = mysql_query($sql,$verbindung);

echo "<table width='471' border='1' bordercolor='#FF9900'  cellspacing='1'cellpadding='1' align='center'>";
echo "<tr bgcolor='#FFAC05'>";
echo "<td align='center'><font color='#000000'><FONT FACE='Arial' SIZE=2><b>Charts Fuer Die Woche Vom</td>";
echo "</tr>";
while ($row = mysql_fetch_object($ergebnis))

{
echo "<tr bgcolor='#000080'>
<td align='center'><font color='#FFFF00'><b>$row->datum</b></td>
</tr>";

}
echo "</table>";
echo "<p>";
mysql_free_result($ergebnis);

mysql_close($verbindung);
?>


<?php

ich hab dann mal ein echo auf $sql gesetzt

Ergebnis :

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 8

das aber nur bei register_globals = Off

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 19:46 Uhr von Rouven veröffentlicht.

Hi Thomas,

hast du irgendwas gelesen von dem, was ich verlinkt habe? Ich sehe immer noch keine Stelle, an der du die Variablen aus dem Formular übernimmst...

MfG
Rouven

--
-------------------
ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 20:00 Uhr von Thomas Z. veröffentlicht.

Hi Rouven
was ich nicht begreife ist warum funktioniert die Uebergabe der Variablen bei register_globals = On und bei Off nicht..

Ich weiss beim besten Willen nicht was ich bzw. wie ich das aendern soll.

Hab mir gerade das html raus gesucht und mir das angeschaut.
Hab den MySQL Statement bis aufs geringste Reduziert, alles beim alten.

Gruesse Thomas

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 20:06 Uhr von Ashura veröffentlicht.

Hallo Thomas.

> was ich nicht begreife ist warum funktioniert die Uebergabe der Variablen bei register_globals = On und bei Off nicht..

Ganz einfach. Bei aktivierten register_globals werden folgende Schritte von PHP intern automatisch vorgenommen:

$_POST['foo'] → $_POST['foo'] und $foo

$_GET['bar'] → $_GET['bar'] und $bar

etc.

Greifst du in deinen Scripten auf $foo oder $bar zu, geht dies nur bei aktivierten register_globals gut, da PHP diese Variablen erstellt.
Deaktivierst du dieses nun, wird die automatische Bereitstellung der Kurzvariablen nicht mehr vorgenommen, so dass du auf die superglobalen Variablen direkt zugreifen „musst“ (was du eigentlich immer tun solltest).


Einen schönen Montag noch.

Gruß, Ashura

--
sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
<mathbr:del.icio.us/> <mathbr:w00t/>

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 20:09 Uhr von fastix® veröffentlicht.

Moin!

> Hi Rouven
> was ich nicht begreife ist warum funktioniert die Uebergabe der Variablen bei register_globals = On und bei Off nicht..

Dann gehe Dein Skript Zeile für Zeile durch, schreibe ein die("$kw, $jahr") darunter...

Und wenn Du die Option register_globals = Off  (Mit großem O!) gesetzt hast (denk dran: rcapache2 restart), dann übernimm die Daten so wie ich es oben beschrieben habe.

In der Ruhe liegt die Kraft...

Nochwas. Sorge dafür, dass Dein Browser nichts cachet.

MFFG (Mit freundlich- friedfertigem Grinsen)

fastix®

--
Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 20:26 Uhr von Thomas Z. veröffentlicht.

Okay wie im ersten Thread stand da was von
mysql_escape_string

nun hab ich mal folgendes gemacht

$kw = mysql_escape_string($kw);

Ergebnis :

SELECT top100.*,( SELECT count(*) from top100 as top100 WHERE top100.interpret= top100.interpret AND top100.titel= top100.titel) AS ANZAHL FROM top100, woche WHERE top100.jahr='' AND woche.jahr='' and top100.KW='' AND woche.kw='' ORDER BY 'Platz' LIMIT ''
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in ausgabe.php on line 138

Leute ich geb auf, ich hab das Verständniss nicht mehr dafür.
Ich hab das mal intensiv vor 4 - 5 Jahren gemacht, nur ist kaum noch was hängen geblieben.

$sql = "SELECT top100.*,(
    SELECT count(*) from top100 as top100
    WHERE top100.interpret= top100.interpret
      AND top100.titel= top100.titel) AS ANZAHL
      FROM top100, woche WHERE top100.jahr='$jahr'
      AND woche.jahr='$jahr' and top100.KW='$kw'
      AND woche.kw='$kw' ORDER BY 'Platz'
   LIMIT '$pos'";
echo $sql;

Trotzdem Danke an alle die versucht haben mir zu helfen, muss ich es halt so lassen wie es ist, denn mich intensiv damit zu beschäftigen fehlt mir ehrlich gesagt die Zeit.


Grueße Thomas





php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 20:37 Uhr von fastix® veröffentlicht.

Moin!

> nun hab ich mal folgendes gemacht
>
> $kw = mysql_escape_string($kw);

Mann-Oh-Mann. Du musst schon versuchen zu verstehen, was ich da schrieb:


html:

<form method="post" ... >
<input type="[egal]" name="iKw">
...
</form>

skript:

<?php
   if (! isset($_POST['iKw'])) {
         die('Wert für iKw wurde nicht gesendet.');
   } else {
         $iKw=$_POST['iKw']*1;
   }

   echo 'iKw='.$iKw;
?>


MFFG (Mit freundlich- friedfertigem Grinsen)

fastix®

--
Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 21:22 Uhr von Thomas Z. veröffentlicht.

Hallo fastix...

Das hätte ich niemals raus gefunden.
Hab die Scripte dorthingehend geändert und funzt auch.

Eines noch...

Da läuft noch ein Statistikscript...

<?php
include("my_zugriff1.inc.php");^M
if(isset($REMOTE_ADDR)){^M
                $ip="'$REMOTE_ADDR'";^M
                }else{^M
                $ip="NULL";^M
}^M
^M
if(isset($SCRIPT_NAME)){^M
                $seite="'$SCRIPT_NAME'";^M
                }else{^M
                $seite="NULL";^M
}^M
if(isset($HTTP_USER_AGENT)){^M
                $browser="'$HTTP_USER_AGENT'";^M
                }else{^M
                $browser="NULL";^M
}
if(isset($HTTP_USER_AGENT)){^M
                $ursprung="'$HTTP_REFERER'";^M
                }else{^M
                $ursprung="NULL";^M
}
$datum=date("j.n.y");
$sql="INSERT INTO singlecharts (ip, seite, browser, zeit, ursprung)";^M
$sql.="VALUES($ip, $seite, $browser, NULL, $ursprung)";^M
$db->sql_befehl($sql) ;^M
?>      ^M

was muss ich hier denn noch ändern, das ist ja total anders als meine Abfragescripte ??


php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 21:58 Uhr von wahsaga veröffentlicht.

hi,

> Das hätte ich niemals raus gefunden.

Wie auch ... dir wurden ja nur schon mit den allerersten Antworten Links zur Erklärung gepostet ...


> Da läuft noch ein Statistikscript... [...]
> was muss ich hier denn noch ändern, das ist ja total anders als meine Abfragescripte ??

Die dort verwendeten Variablen stehen mit register_globals=off _so_ auch nicht mehr zur Verfügung.

Aber wenn du http://www.php.net/manual/de/security.globals.php und das dort wiederum verlinkte http://www.php.net/manual/de/language.variables.predefined.php mal aufmerksam gelesen hättest, könntest du jetzt auch schon wissen, wo du diese Werte jetzt stattdessen finden kannst.

Les' ma jetzt mal ein bisschen, oder warten wir wieder darauf, dass die Antwort vorgekaut wird?

gruß,
wahsaga


--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 16:02 Uhr von fastix® veröffentlicht.

Moin!

> Sieht aus als läge der Fehler in der Syntax
>
> SELECT top100.*,(
>    SELECT count(*) from top100 as top100
>    WHERE top100.interpret= top100.interpret
>      AND top100.titel= top100.titel) AS ANZAHL
>      FROM top100, woche WHERE top100.jahr='$jahr'
>      AND woche.jahr='$jahr' and top100.KW='$kw'
>      AND woche.kw='$kw' ORDER BY 'Platz'
> LIMIT $pos";
>
> und zwar an LIMIT $pos, so deute ich zumindest die Fehlerausgabe..


SELECT top100.*,(
        SELECT count(*) from top100 as top100
        WHERE top100.interpret= top100.interpret
        AND top100.titel= top100.titel
                ) AS ANZAHL
     FROM top100,woche
     WHERE top100.jahr='$jahr'
     AND woche.jahr='$jahr'
     and top100.KW='$kw'
     AND woche.kw='$kw'
     ORDER BY 'Platz'
     LIMIT $pos";

Was soll das eigentlich werden?

        WHERE top100.interpret= top100.interpret
        AND top100.titel= top100.titel

lässt sich zu einem WHERE=1 zusammenfassen, es trifft auf alle Datensätze zu.

SELECT top100.* ... Der Asterix ist auch nicht beliebt, weil niemand weiss, wie die Tabelle morgen aussieht... Frage also konkret nach Spaltennamen.

SELECT count(*) Dito...

MFFG (Mit freundlich- friedfertigem Grinsen)

fastix®

--
Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 16:04 Uhr von Thomas Z. veröffentlicht.

Ich glaube die Variable $pos wird nicht uebergeben

SELECT top100.*,(
   SELECT count(*) from top100 as top100
   WHERE top100.interpret= top100.interpret
     AND top100.titel= top100.titel) AS ANZAHL
     FROM top100, woche WHERE top100.jahr=''
     AND woche.jahr='' and top100.KW=''
     AND woche.kw='' ORDER BY 'Platz'
  LIMIT ''

Limit ist leer

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 16:12 Uhr von fastix® veröffentlicht.

Moin!


>   LIMIT ''
>

Dann musst Du schauen, wo die herkommt und entsprechend meinem ersten Posting als Integer oder Zahl übernehmen...



MFFG (Mit freundlich- friedfertigem Grinsen)

fastix®

--
Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 16:16 Uhr von Vinzenz Mai veröffentlicht.

Hallo Thomas,

> SELECT top100.*,(
>    SELECT count(*) from top100 as top100
>    WHERE top100.interpret= top100.interpret
>      AND top100.titel= top100.titel) AS ANZAHL
>      FROM top100, woche WHERE top100.jahr=''
>      AND woche.jahr='' and top100.KW=''
>      AND woche.kw='' ORDER BY 'Platz'
>   LIMIT ''
>
> Limit ist leer

Jahr und KW auch, aber das schreiben wir hier schon seit geraumer Weile :-)


Freundliche Grüße

Vinzenz

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 16:22 Uhr von Thomas Z. veröffentlicht.

Okay ich habs

$sql = "
   SELECT * from top100,woche
   WHERE top100.jahr='$jahr'
     AND woche.jahr='$jahr' and top100.kw='$kw'
     AND woche.kw='$kw' ORDER BY 'Platz'
  LIMIT $pos";

so jetzt register_globals = off

und nu diese Fehlerausgabe

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 5

WAS ist das ???????

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 16:29 Uhr von Vinzenz Mai veröffentlicht.

Hallo Thomas,

> You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 5
>
> Was ist das ?

Was liefert

    echo $sql;

als Ausgabe? Das ist das Statement, das MySQL bekommt.


Freundliche Grüße

Vinzenz

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 16:33 Uhr von Thomas Z. veröffentlicht.

$sql liefert mir leere Felder, also stimmt bei der Uebergabe was nicht....

Leute Leute, ich bin kein Proficrack, meine Birne raucht schon...

aber trotzdem macht es wieder Spass, wenn ich nur wüsste was bei der Übergabe nicht funzt.

Gruss Thomas

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 15:50 Uhr von wahsaga veröffentlicht.

hi,

> Die drei Variablen kommen aus einem weiteren Script

Nein, tun sie höchstvermutlich nicht - schließlich ist register_globals jetzt auf off gestellt.

gruß,
wahsaga


--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 15:51 Uhr von Thomas Z. veröffentlicht.

Ich könnte mich hier weg schreien vor lachen, Sorry, aber glaub mir ich finde den verka***n Fehler nicht....

Liegt also doch an der Uebergabe der Variablen....

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 15:32 Uhr von Vinzenz Mai veröffentlicht.

Hallo Thomas,

> Die SQL Statements sind die, die ich gepostet habe..

ich muss blind sein, ich habe noch keine SQL-Statements gesehen.
Nein, ich meine damit _keinen_ PHP-Code, der ein Statement zusammenbaut.
Ich meine den zusammengebauten Code.

Meine Glaskugel sagte mir, dass folgender case-Fall

> case "1992"    : $sql="SELECT * FROM top100, woche  WHERE top100.jahr='$jahr' AND woche.jahr='$jahr' AND top100.kw='$kw' and woche.kw='$kw' LIMIT 0,1";
>            break;

_nicht_ ausgeführt wird, sondern der default-Fall zum Tragen kommt.
Gib vor Übergabe an die Datenbank den Inhalt von $sql aus.


> $result = mysql_query("SELECT top100.*,(SELECT count(*) from top100 as top100 WHERE top100.interpret= top100.interpret AND top100.titel= top100.titel) AS ANZAHL FROM top100, woche WHERE top100.jahr='$jahr' AND woche.jahr='$jahr' and top100.KW='$kw' AND woche.kw='$kw' ORDER BY 'Platz' LIMIT $pos");

Wie wäre es, wenn Du hier zunächst Dein SQL-Statement in einem String zusammenbaust wie oben, (diesen zu Debugzwecken ausgibst) und erst dann an mysql_query weiterleitest und danach mysql_error() nach Fehlern befragst.
Ja, unmittelbar nach Absetzen des SQL-Statements.

Selbstverständlich solltest Du die Tipps von fastix hinsichtlich mysql_real_escape_string() nicht ignorieren - auch nicht die anderen hilfreichen Tipps in diesem Thread.


Freundliche Grüße

Vinzenz

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 15:34 Uhr von fastix® veröffentlicht.

Moin!


> $result = mysql_query("SELECT top100.*,(SELECT count(*) from top100 as top100 WHERE top100.interpret= top100.interpret AND top100.titel= top100.titel) AS ANZAHL FROM top100, woche WHERE top100.jahr='$jahr' AND woche.jahr='$jahr' and top100.KW='$kw' AND woche.kw='$kw' ORDER BY 'Platz' LIMIT $pos");

Das ist Schrott.
Notiere Deine Abfrage vernünftig und schreibe diese in eine Variable:

$sql = "
SELECT top100.*,(
   SELECT count(*) from top100 as top100
   WHERE top100.interpret= top100.interpret
     AND top100.titel= top100.titel) AS ANZAHL
     FROM top100, woche WHERE top100.jahr='$jahr'
     AND woche.jahr='$jahr' and top100.KW='$kw'
     AND woche.kw='$kw' ORDER BY 'Platz'
  LIMIT $pos";

# Da stimmt doch was nicht...

$result = mysql_query($sql) or die ("<hr><pre>$sql<pre><hr>".mysql_error()."<hr>");
# Lass Dir den Fehler und Deine Abfrage auch ausgeben.



MFFG (Mit freundlich- friedfertigem Grinsen)

fastix®

--
Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 21:38 Uhr von dedlfix veröffentlicht.

echo $begrüßung;

> gibt es noch etwas was ich aendern sollte ??

Jede Menge. Zumindest ist mir aufgefallen:

Du übernimmst Benutzereingaben ungeprüft in deine SQL-Statements und verlässt dich vermutlich darauf, dass die Magic Quotes für dich die SQL-Injection verhindert.

echo mysql_error(); einmal am Scriptende auszuführen hat keinen gesteigerten Wert. Jede mysql-Funktion setzt den Fehlermeldungsspeicher wieder zurück. Beispielsweise wird ein Fehler von mysql_connect() durch den Aufruf von mysql_select_db() wieder gelöscht.

Statt vieler echos hintereinander kannst du die Heredoc-Syntax verwenden. Oder aber auch ?> PHP verlassen und erst zu weiteren PHP-Teilen <?php wieder starten.


echo "$verabschiedung $name";

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 14:27 Uhr von fastix® veröffentlicht.

Moin!

Ich mache das ganze gleich mal "sicher".

> Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in ausgabe.php on line 128
>
> dort steht in Zeile 128
>
> while ($row = mysql_fetch_row ($result))
>
> stelle ich register_globals = On
>
> läuft die abfrage und ich bekomme meine Datensaetze angezeigt.

Das ist ein Hinweis darauf, dass Deine Datenbankabfrage aus Benutzereingaben zusammengebaut wird. Der eigentliche Fehler ist weiter oben.


> Was kann das sein, bzw. wie kann ich das Script ändern damit ich register_globals = off stehen lassen kann ...

Du hast ein Formular:
<form method="GET" action="datei.php" ><!-- oder method="POST" //-->
<input type="text" name="intWert">
<input type="text" name="strWert">
<input type="submit">
</form>

In Deinem Skript übernimmst Du den Wert mit

wird bei register_globals = On der value aus dem Inputfeld direkt in die Variable $wert übernommen.

Ohne diese gefähliche Einstellung übernimmst Du im Idealfall: (Sollten Dein Formular die Versandmethode POST unterstützen: s/GET/POST/g)

# So werden Zahlen-Werte übernommen
if (! isset ($_GET['intWert'])) {
   # was willst Du tun, wenn das Skript direkt aufgerufen wurde
   die ("Kein Wert übergeben.");
} else {
   $intWert=$_GET['intWert']*1; # Multiplizieren von Text mit Zahl führt zu Ergebnis 0
}

# So werden Texteingaben übernommen:
if (! isset ($_GET['strWert'])) {
   # was willst Du tun, wenn das Skript direkt aufgerufen wurde?
   die ("Kein Wert übergeben.");
} else {
   # Hier gibt es wieder zwei Möglichkeiten:
   # magic_quotes_gpc = On sorgt dafür, das bestimmte Zeichen maskiert werden werden
   # Leider stimmt das oft nicht nicht mit Deinen Wünschen überein
   # Das ist unabhängig von register_globals = On/Off
      if (ini_get('magic_quotes_gpc')) {
         # magic_quotes_gpc = On
         $strWert=stripslashes($_GET['strWert']);
      } else {
         # magic_quotes_gpc = Off
         $strWert=($_GET['strWert']);
      }
}
...

# ich muss befürchten, auch daran wurde nicht gedacht: Du musst einige Sonderzeichen maskieren.
$sql="SELECT spalte1, spalte2 from table where spalte3=$intWert AND spalte4=\"".mysql_real_escape($strWert).'"';
...

# Auch an das Abfangen des Fehlers wurde wohl nicht gedacht:
$result=mysql_query($sql; $DB) or die("$sql<br>".mysql_error();)
...

http://de3.php.net/manual/de/function.stripslashes.php
http://de3.php.net/manual/de/function.ini-get.php



MFFG (Mit freundlich- friedfertigem Grinsen)

fastix®

--
Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 14:30 Uhr von fastix® veröffentlicht.

Moin!

Fehler:
s/mysql-real-escape/mysql-real-escape-string/g !

Richtig:
http://de3.php.net/manual/de/function.mysql-real-escape-string.php

MFFG (Mit freundlich- friedfertigem Grinsen)

fastix®

--
Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 14:44 Uhr von Thomas Z. veröffentlicht.

Ohje davon hab ich ja noch nie etwas gehört

s/mysql-real-escape/mysql-real-escape-string/g !

An welcher stelle muesste denn das geändert werden ??

Sorry, ich hab da nicht mehr so den Plan von, ist lange her....

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 15:02 Uhr von fastix® veröffentlicht.

Moin!

> Ohje davon hab ich ja noch nie etwas gehört
> s/mysql-real-escape/mysql-real-escape-string/g !
> An welcher stelle muesste denn das geändert werden ??

/g - also an jeder :)

Gemeint war: mysql-real-escape ist falsch, verwende statt dessen mysql-real-escape-string($string)

MFFG (Mit freundlich- friedfertigem Grinsen)

fastix®

--
Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 22:03 Uhr von Tobias Kloth veröffentlicht.

Hallo fastix,

> Gemeint war: mysql-real-escape ist falsch, verwende statt dessen mysql-real-escape-string($string)
Die Funktionen schreiben sich immernoch mit Unterstrichen - außerdem gibt es mysql_real_escape() überhaupt nicht, du meinst vermutlich dass man mysql_escape_string() nicht verwenden sollte.

Grüße aus Nürnberg
Tobias
--
TOP7: Möglichkeiten, den eigenen Ruf zu ruinieren
Softwaretipp: FreePDF

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 22:30 Uhr von fastix® veröffentlicht.

Moin Tobias!

> > Gemeint war: mysql-real-escape ist falsch, verwende statt dessen mysql-real-escape-string($string)
> Die Funktionen schreiben sich immernoch mit Unterstrichen - außerdem gibt es mysql_real_escape() überhaupt nicht, du meinst vermutlich dass man mysql_escape_string() nicht verwenden sollte.

Nö. Ich hatte mich total vertippt. Wobei Du natürlich prinzipiel recht hast. Mit den Unterstrichen und mit dem Nichtverwenden von mysql_escape_string()- das berücksichtigt im Gegensatz zu mysql_real_escape_string() nämlich keinerlei spezielle Zeichen der jweiligen Zeichensatzeinstellung von mysql.

mysql_real_escape() gibts gar nicht- das war 'vollkommen vertippt' und es sollte (natürlich) mysql_real_escape_string() genommen werden.


MFFG (Mit freundlich- friedfertigem Grinsen)

fastix®

--
Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 20:38 Uhr von dedlfix veröffentlicht.

echo $begrüßung;

>    $intWert=$_GET['intWert']*1; # Multiplizieren von Text mit Zahl führt zu Ergebnis 0

PHP kennt für diese Funktionalität die Funktion inval() (und floatval() für Fließkommazahlen). Das Multiplizieren (oder auch Addieren von 0) mag seinen Zweck erfüllen, ist aber alles andere als intuitiv.

>    # magic_quotes_gpc = On sorgt dafür, das bestimmte Zeichen maskiert werden werden

Es ist recht umständlich, diese Maskierung, so man sie als überflüssig betrachtet, mit der von dir vorgestellten Methode jede Variable einzeln davon zu befreien.

Im Abschnitt Disabling Magic Quotes des PHP-Handbuch-Kapitels Magic Quotes ist eine Funktion zu finden, die sich um alle GET/POST/COOKIE-Werte kümmert.


Hier noch ein paar nebensächliche Kleinigkeiten:

>       if (ini_get('magic_quotes_gpc')) {

Dafür gibt es auch eine eigene Funktion: get_magic_quotes_gpc().

> # Auch an das Abfangen des Fehlers wurde wohl nicht gedacht:
> $result=mysql_query($sql; $DB) or die("$sql<br>".mysql_error();)

Unter Abfangen verstehe ich nicht das gewaltsame Beenden eines Scripts. Damit ist dem Seitenbesucher meist überhaupt nicht gedient. Aber gut, es fängt das Script ab, bevor Folgefehler entstehen...

> s/GET/POST/g

Du mögst zwar den vi (sed, ...) bedienen können, ich würde mich nicht darauf verlassen, dass Neulinge dessen Syntax kennen.


echo "$verabschiedung $name";

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 22:25 Uhr von fastix® veröffentlicht.

Moin!

> Es ist recht umständlich, diese Maskierung, so man sie als überflüssig betrachtet, mit der von dir vorgestellten Methode jede Variable einzeln davon zu befreien.

Ja... ich weiss schon, man auch den gesamten Array $_POST damit behandeln. Und es ist effektiv, richtig, sonstwas. Aber ich bin wohl immer etwas stolz, wenn ich sofort übersehen kann, was ich mit welcher Variable alles schickes angestellt habe. Laufzeitprobleme sind kaum zu befürchten, regelmäßig hält sich die Zahl der Elemente des Arrays und damit meiner Variablen in Grenzen.

Ich habe noch einen persönlichen Grund: Ich übersetze meinen Stuff zwar selten, aber doch immer mal in andere Sprachen. Die können dann irgendwas spezielles nicht und ich fürchgte bitter, dass ich in meinem hohen Alter dann den Überblick verliere...


> Im Abschnitt Disabling Magic Quotes des PHP-Handbuch-Kapitels Magic Quotes ist eine Funktion zu finden, die sich um alle GET/POST/COOKIE-Werte kümmert.

> Dafür gibt es auch eine eigene Funktion: get_magic_quotes_gpc().
Ja. Nur, was macht die besser als ini_get('magic-quotes-gpc')? Zusätzliche Syntax für etwas, wofür es eine allgemeine Sytax bereits gibt, braucht eigentlich keiner. In dem Fall aus meiner Sicht: Lernaufwand für nichts.

> Unter Abfangen verstehe ich nicht das gewaltsame Beenden eines Scripts. Damit ist dem Seitenbesucher meist überhaupt nicht gedient. Aber gut, es fängt das Script ab, bevor Folgefehler entstehen...

Naja. Ich brauchte für mein Beispielscript "was passendes". In dem Fall gabs ein Problem mit der Query. Dafür ist mein Abbruch ideal, weil er genau die benötigte Information direkt in den Browser liefert.

>
> > s/GET/POST/g
>
> Du mögst zwar den vi (sed, ...) bedienen können, ich würde mich nicht darauf verlassen, dass Neulinge dessen Syntax kennen.

Damit hast Du absolut recht. Es scheint eine Macke zu sein, die ich auch habe: Was ich weiss, das wissen andere auch...

Ab hier üble Werbung!
=====================


Für die anderen: sort, tr, sed, awk, grep, wc, cat, cut, tail, head sind absolut lohnende Tools, die es jetzt auch für Windows gibt und die am Prompt für eine Menge effektiven Spaß sorgen.

http://unxutils.sourceforge.net/ sogar recode ist dabei :)

Besser noch cygwin, das fast komplette Linux-Feeling auf Windosen: http://www.cygwin.com/

Und so holt man sich den Inhalt der dritten und vierten Zeile von unten aus einer Datei: cat datei | tail -n4 | head -n2

(Übersetzt: Die dritte und vierte Zeile von unten sind die ersten beiden der vier letzten :)
Da rauchen mir immer die Seminarteilnehmer ab....)


MFFG (Mit freundlich- friedfertigem Grinsen)

fastix®

--
Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 22:37 Uhr von Tobias Kloth veröffentlicht.

Hallo fastix,

> > Dafür gibt es auch eine eigene Funktion: get_magic_quotes_gpc().
> Ja. Nur, was macht die besser als ini_get('magic-quotes-gpc')? Zusätzliche Syntax für etwas, wofür es eine allgemeine Sytax bereits gibt, braucht eigentlich keiner.
... bis auf die, deren Provieder (aus welchem Grund auch immer) ini_get() abgeschaltet hat.

Grüße aus Nürnberg
Tobias
--
TOP7: Möglichkeiten, den eigenen Ruf zu ruinieren
Softwaretipp: FreePDF

php.ini register_globals = off

Der folgende Beitrag wurde am 08. 02. 2006, 02:56 Uhr von fastix® veröffentlicht.

Moin!

> Hallo fastix,

> ... bis auf die, deren Provieder (aus welchem Grund auch immer) ini_get() abgeschaltet hat.
Also bei ini_set() könnte ich es mir vorstellen. Aber ini_get()?


MFFG (Mit freundlich- friedfertigem Grinsen)

fastix®

--
Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development

php.ini register_globals = off

Der folgende Beitrag wurde am 08. 02. 2006, 08:50 Uhr von Tobias Kloth veröffentlicht.

Hallo fastix,

> > ... bis auf die, deren Provieder (aus welchem Grund auch immer) ini_get() abgeschaltet hat.
> Also bei ini_set() könnte ich es mir vorstellen. Aber ini_get()?
Wer weiß auf welche Ideen Provider alles kommen - afaik habe ich auch schonmal irgendwo (es kann sein, dass es hier im Forum war) von einem gelesen der phpinfo() deaktiviert hat ...

Grüße aus Nürnberg
Tobias
--
TOP7: Möglichkeiten, den eigenen Ruf zu ruinieren
Softwaretipp: FreePDF

php.ini register_globals = off

Der folgende Beitrag wurde am 08. 02. 2006, 23:13 Uhr von fastix® veröffentlicht.

Moin!

> afaik habe ich auch schonmal irgendwo (es kann sein, dass es hier im Forum war) von einem gelesen der phpinfo() deaktiviert hat ...

Ich mag wie ein Fanatiker klingen, aber die URI einer phpinfo.php mit '<?php phpinfo(); >' drin würde ich auch nicht gerade veröffentlichen wollen. Das wurde im Forum aber schon besprochen. Viele sehen das anders, ich halte es aber für zumindest unschädlich, wenn ich bei meiner Meinung bleibe. Der hoster aber, der verbietet, übertreibt...

MFFG (Mit freundlich- friedfertigem Grinsen)

fastix®

--
Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development

php.ini register_globals = off

Der folgende Beitrag wurde am 06. 02. 2006, 15:33 Uhr von Tom veröffentlicht.

Hello,

mMn sollte der erste Schritt sein, die Fehleranzeige auf "volles Rohr" zu stellen.

- Alle Fehler anzeigen lassen
  error_reporting(E-ALL);

- nach allen DB-Abfragen auch den Status-Code auswerten
  z.B. MySQL:
  $result = mysql_query(...);
  if(mysql_errno($con) > 0)
  {
    # Fehlerbehandlung durchführen
  }


Dann hättest Du garantiert noch mehr Fehler angezeigt bekommen und wüsstest jetzt auch, wo die Fehlerkette begonnen hat.




Harzliche Grüße vom Berg
http://www.annerschbarrich.de

Tom
--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau

© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4