Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Seit eläuft Local...auf´m server nicht [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Seit eläuft Local...auf´m server nicht


 
kluman
25-01-2006, 19:49 
 
Hi Leute,

ich habe da auch ein mega großes Problem mit meinem Script.

Auf meinem Localhost läuft es Tadellos, aber auf dem Server nicht.

Auf beiden ist die PHP-Version 5.0.4 drauf.

Hier mal ein kleiner Auszug von den fehler-Anzeigen.

Notice: Undefined variable: akt_seite in /srv/www/htdocs/web29/html/nordstemmen/index.php on line 12

Notice: Undefined variable: weiter in /srv/www/htdocs/web29/html/nordstemmen/index.php on line 13

Notice: Undefined variable: weiter in /srv/www/htdocs/web29/html/nordstemmen/index.php on line 17

Notice: Undefined variable: anfang in /srv/www/htdocs/web29/html/nordstemmen/index.php on line 18

Notice: Undefined variable: anfang in /srv/www/htdocs/web29/html/nordstemmen/index.php on line 18



Hier mal mein PHP-Code


<?php
// Anzahl Ergebnisse
if(($branche_id)or($Submit)){
//Ergebnisse über die Auswahlliste
if($branche_id){$result = mysql_query("SELECT * FROM firmen WHERE zone = $branche_id ",$con);}
//Ergebnisse über das suchfeld
if($Submit){$result = mysql_query("SELECT * FROM firmen
WHERE nname LIKE '%$suche%' OR vorname LIKE '%$suche%'
OR ort LIKE '%$suche%' OR txt LIKE '%$suche%' OR url LIKE
'%$suche%'ORDER BY `nname` ASC",$con);}

$anz=mysql_num_rows($result);
}
if($anz=="") $anz="0";
if($anfang=="") $anfang="0";
?>
<span class="content_header">Sie befinden sich auf der <u><span
class="Stil26">Startseite</span></u>
</span> </div></td> <td width="39">&nbsp;</td> </tr>
</table></td> </tr> <tr>
<td height="109">&nbsp;</td>
<td colspan="2" valign="top"><table width="618" border="0" cellpadding="0"
cellspacing="0" background="p_tpl/2/04.gif">
<!--DWLayoutTable--> <tr>
<td width="618" height="109" valign="middle">
<form action="n_search.php" method="post" enctype="multipart/form-data">
<table width="578" border="0" align="right" cellpadding="0"
cellspacing="0" background="pics/background.gif">
<!--DWLayoutTable-->
<tr> <td width="159" height="46" valign="middle"
class="content_text"><strong> &nbsp;&nbsp;&nbsp;&nbsp;
Branchen-Auswahl: </strong></td>
<td width="143" valign="middle" class="content_text"><select
name="menu1" class="knopf"
onChange="MM_jumpMenu('parent',this,0)"> <option
selected>Bitte W&auml;hlen Sie</option>
<?
//bestehende Kategorien aus der DB lesen
$result = mysql_query("SELECT * FROM branche ORDER BY
`branche` ASC",$con);
while($data=mysql_fetch_array($result)){

?>
<option value="n_search.php?branche_id=<? echo
$data[branche_id]."&anz=$anz&anzahl=$anzahl"; ?>"
<? if($branche_id==$data[branche_id]) echo "
selected"?> ><? echo $data[branche]; ?></option>
<? } ?>
</select></td>
<td width="12">&nbsp;</td>
<td width="264" valign="middle" class="content_text"><input
name="suche"
type="text" class="knopf" onClick="this.value=''" value="
<? if($suche!=""){echo $suche;} else {echo "oder Suchbegriff
eingeben"; }?>" size="30">
<input type="submit" name="Submit" value="Suchen"></td>
</tr>
<tr>
<td height="23"></td>
<td></td>
<td></td>
<td></td>
</tr>
</table><?
//Ergebnisse über die Auswahlliste und das suchfeld
if(($branche_id)or($Submit)){
//Ergebnisse über die Auswahlliste
if($branche_id){$result = mysql_query("SELECT * FROM firmen
WHERE zone = $branche_id LIMIT $anfang,$anzahl",$con);}
//Ergebnisse über das suchfeld
if($Submit){$result = mysql_query("SELECT * FROM firmen
WHERE nname LIKE '%$suche%' OR vorname LIKE '%$suche%'
OR ort LIKE '%$suche%' OR txt LIKE '%$suche%' OR url LIKE
'%$suche%' ORDER BY `nname`
ASC LIMIT $anfang,$anzahl",$con);}while($data=mysql_fetch_array($result)){

//Kategoriename lesen
if($branche_id){$result_k = mysql_query("SELECT branche
FROM branche WHERE branche_id = $branche_id ",$con);}
if($Submit){$result_k = mysql_query("SELECT branche FROM
branche WHERE branche_id = $data[zone]",$con);}
$data_k=mysql_fetch_array($result_k);

?>
<?
}
?>
<?
}
?>




Also ich weis wirklich nicht mehr weiter.

Ich bin in Sachen PHP nicht so gut.
Ich bin froh, das ich das Script mal hinbekommen habe.

Wäre echt Super, wenn es hier jemand gibt, der Mir Helfen kann.

 
Trashar
25-01-2006, 19:53 
 
Einfach mal die Suche benutzen:

http://www.php-resource.de/forum/showthread.php?s=&threadid=64961&highlight=Notice+Undefined+variable

(PS: das Thema wurde nicht von mir gestartet obwohl gewisse "ähnlichkeiten" da sind *g*)

 
jahlives
25-01-2006, 19:57 
 
Schreib mal als erste Zeile deines Scripts

error_reporting(E_ERROR);

und die Meldungen sollten weg sein. Fairerweise muss man sagen, dass dies sicherlich nicht die feine Art ist dieses Problem zu umgehen.
Dein Prob sind die if-Abfragen. Wenn du bei diesen auf eine nicht-gesetzte Var zugreifen willst, dann gibt's ne notice.
Also brauchst du eine Abfrage die keinen Fehler wirft, wenn die Var nicht gesetzt ist. Schau dir dazu mal isset() an...

Gruss

tobi

 
kluman
25-01-2006, 20:25 
 
Hallo jahlives,

hab Dank für deine Schnelle Hilfe.

Die Fehler sind echt weg und es geht wieder.


Obwohl ich das jetzt nicht wirklch verstanden habe.

Was genau meinst du mit den if-Abfragen und nicht gesetzte War ?

Kann das sein, das du das mit der Var im Bezug auf vieleicht,

Der Seiten-Anzahl pro ausgabe.

 
jahlives
25-01-2006, 20:46 
 
Ich verstehe jetzt deine Frage nicht ganz. Aber schau dir das folgende an:

//das wird Fehler produzieren wenn die Vars nicht gesetzt sind
if(($branche_id)or($Submit)){
//besser so
if(isset($branche_id) || isset($Submit)){

Ausserdem scheinst du auf register_globals on zu setzen. Dies kann aber je nach Server Konf deaktiviert sein und dann funzen die Scripte wieder nicht.
Wenn du also Vars aus einem Form ansprechen willst dann nach folgendem Schema

$temp = $_POST['Submit'];
//und nicht
$temp = $Submit;


Gruss

tobi

 
Abraxax
25-01-2006, 20:58 
 
und mach mal umbrüche in deinen code rein! :teach:

http://www.php-resource.de/forum/showthread.php?s=&threadid=50454

 
kluman
26-01-2006, 07:55 
 
Also Du meinst, überall wo


if(($branche_id)or($Submit)){


//ändere ich in
if(isset($branche_id) || isset($Submit)){


//Und überall wo
$temp = $_POST['Submit'];
//ändere ich in
$temp = $Submit;

OK. Dann werde ich das mal machen und schauen.

Und schaue ich gleich noch mal nach dem POST und GET.

ich will das ja verstehen.

 
Fl0
26-01-2006, 09:30 
 
Zu deinem letzten Beispiel mit _POST: Genau andersrum. mit $_POST arbeiten ist besser, da das auch bei ausgeschaltetem register_globals funktioniert ;)

Außerdem empfehle ich dir die Array-Indizes in Anführungszeichen zu setzen...

Gruß,
Flo.

 
kluman
26-01-2006, 10:15 
 
So jetzt habe ich die Zeilen soweit abgeändert und es Funzt.

Das mit dem
$temp = $_POST['Submit'];
//und nicht
$temp = $Submit;
habe ich nicht verstanden.
Die Befehle habe ich ja nicht im Script.

Nur Zeilen 18,19,23,24,33,133 und 171 machen noch Ärger.

<?PHP
// zeile 18
if($akt_seite=="") $akt_seite=1;
// zeile 19
if($weiter==1){
// zeile 20
if($anfang<=$anz)$akt_seite=$akt_seite+1;$anfang=$anfang+$anzahl;
// zeile 21
}
// zeile 23
if($weiter==0){
// zeile 24
if($anfang>0)$akt_seite=$akt_seite-1;$anfang=$anfang-$anzahl;
// zeile 25
}
// zeile 27
if($akt_seite<1) $akt_seite=1;
// zeile 28
if($anfang<0) $anfang=0;
// zeile 33
if ($button==" OK ") {?>


Zeile 138 kommt der Fehler

"Notice: Undefined variable: anz in"


<?php
if($anz=="") $anz="0";
?>


Zeile 171
"Notice: Undefined Variable: branche_id in"

<option value="n_search.php?branche_id=<? echo
$data[branche_id]."&anz=$anz&anzahl=$anzahl"; ?>"
<? if($branche_id==$data[branche_id]) echo " selected"?> >
<? echo $data[branche]; ?></option>


Also da komme ich jetzt nicht weiter.

 
wahsaga
26-01-2006, 10:36 
 
Original geschrieben von kluman
Also da komme ich jetzt nicht weiter.
Warum nicht?

Du solltest inzwischen wissen, dass du nicht einfach so lesend auf die Werte nicht initialisierter Variablen zugreifen kannst;
Und auch eine Funktion um diese Variablen vorher auf Existenz zu prüfen wurde dir hier im Thread bereits vorgestellt.


Und brich endlich deinen Code um!

 
kluman
26-01-2006, 11:23 
 
So jetzt habe ich den Code Umgebrochen! zum zweiten mal.

Tut mir leid, das ich das nicht raffe.

Wo habe ich denn eine nicht-gesetzte Var ?

Das ich die Fehler aus- und einblenden kann ist schon klar und das das Script dann dennoch läuft.

 
TobiaZ
26-01-2006, 11:27 
 
Wo habe ich denn eine nicht-gesetzte Var ? error_reporting auf E_ALL gesetzt???

 
wahsaga
26-01-2006, 11:27 
 
*seufz*
Könntest du dein Hirn vielleicht wenigstens ein bisschen benutzen, bitte?
Wo habe ich denn eine nicht-gesetzte Var ?
Da, wo es die PHP Notice dir sagt - was du soeben noch selber gepostet hattest:

Zeile 138 kommt der Fehler

"Notice: Undefined variable: anz in"

[...]

Zeile 171
"Notice: Undefined Variable: branche_id in"

 
TobiaZ
26-01-2006, 11:28 
 
*lol* okay, ich sollte die threads ganz lesen. ;)

 
kluman
26-01-2006, 11:54 
 
Ja!
error_reporting(E_ALL);
habe ich gesetzt.

Ich bin nebenbei ja auch dabei zu üben und versuche es zu verstehen. ich strenge mich schon an.....

Ist das hier schon ein kleiner ansatz?


//anstelle von
if(isset($branche_id)||isset($Submit)){
// so ungefähr
if(isset($_POST['branche_id'])


Oder is das völlig daneben?

 
uspri
26-01-2006, 12:33 
 
Nein, dass ist nicht völlig daneben.

Prüfe alle Variablen auf Existenz und Inhalt.

Deine Freunde sind in dem Fall isset() und empty(). Beide kannst Du verneinen, also !isset() und !empty, was bedeuten nicht gesetzt und nicht leer.

Schau mal bei Gelegenheit im Manual vorbei, da sind die Befehle wunderbar erklärt.

Gruß Uwe

 
TobiaZ
26-01-2006, 13:10 
 
Hast du dich eigentlich zwischenzeitlich über register_globals informiert?

 
kluman
26-01-2006, 14:37 
 
Ja, über Register_globals habe ich mich Informiert.

Ich arbeite Lokal jetzt ja auch schon mit OFF.

Komme da allerdings schon wieder auf nen kleines Problem.

Weil ich jetzt nicht mehr das Script zum ändern des tatsächlichen Links benutzen kann.

Meine links rufe ich mit ...tpl.php?id=123
auf.

dann habe ich eine seite in der die URL´s stehen.

Diese hab eich so angelegt:


switch ($id) {
case "123":
$page="test123.php";
break;

nächster link


case "001":
$page="test001.php";
break;
für jeden Link so ein Block.

nach den ganzen Blöcken habe ich dann das:
}
if($id=="") $id="index.php";
include ("$id");

Das muss ich halt als nächstes ändern.

Sonnst laufen alle meine Seiten Tadellos mit Register_globals: off

 
Kropff
26-01-2006, 14:40 
 
mach es dir nicht schwerer als es ist. bei enem einheitlichen schema der dateien reicht folgendes aus.
$page='test'.$_GET['id'].'.php';
dann noch eine abfrage, wenn id nicht vorhanden und fertig.

zur sicherheit solltest du noch überprüfen, ob die datei überhaupt vorhanden ist.

gruß
peter

 
kluman
26-01-2006, 14:48 
 
Also wenn das hier schon ein Ansatz ist,

//anstelle von
if(isset($branche_id)||isset($Submit)){
// so ungefähr
if(isset($_POST['branche_id'])

Was mache ich da jetzt mit ($Submit)){....

Sowas:

if(isset($_POST['branche_id'] ) ||isset($POST['Submit'])

Immer wenn ich ein Zb.

if (isset($Submit)){$result = mysql_query("SELECT

Mache ich:

if (isset($_POST['Submit'])){$result = mysql_query("SELECT

oder anstelle

if($branche_id==$data[branche_id]) echo " selected"?> ><? echo $data[branche]; ?>

Mache ich wieder:

if isset ($_POST ['branche_id']==$data[branche_id]) echo " selected"?> ><? echo $data[branche]; ?>

Sorry, wenn ich hier so viel schreibe, aber ich muss/will es ja auch verstehen.

 
TobiaZ
26-01-2006, 17:23 
 
$POST['Submit'] Unterstrich!!!

Hast das Thema noch nicht wirklich verinnerlicht.

so schwer ist es nun wirklich nicht,

mach mal ein print_r($_POST); vielleicht erkennst du dann, worum es sich geht...

 
kluman
26-01-2006, 18:32 
 
Kannste mir vieleicht ein PHP 5 Buch Empfehlen?

Zur zeit habe ich das "PH4 Grundlagen und Profiwissen"

das mir ja wohl jetzt im Bezug auf PHP5, nicht mehr viel bringt.

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:25 Uhr.