PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Apache2 und PHP



fight-night
10-12-2003, 11:40
Hallo,,

zB diese Abfrage funktioniert super auf öffentliche Webspace (levanzo)
-----------------------------------------------------------------------------
{$query = "select * from buch where Titel like '$anfrage%'";}
----------------------------------------------------------------------------------
Ich habe einen parallelen Webserver bei mir zu Hause (nur um meine Seite zu testen) mit idendischer Struktur (mysql,php)
.Jetzt mußte ich oder wollte ich auf apache2 umbauen ,funktioniert soweit ich habe Datenbankzugriff usw.
Aber obige Abfrage zB.funzt nicht da kommt als Ergebnis die komplette Tabelle
Im IE sehe ich auch kenerlei Umlaute wenn ich im lokalen Netz auf die Seite zugreife
Hat der Apache 2 da ein Problem oder liegt das an der php einstellung

Weiß jemand Rat ?

fight-night
10-12-2003, 15:55
So ich habe noch mal ein bischen getestet (ohne großen Erfolg)
Das obige Script (abfrage) läuft auf einem Öffentlichen( Levanzo) webserver (Apache1.3) Php 4.30.bei mir zu Hause auf dem Testserver ,Suse 9 apache2,php4.33
geht es nicht.

{$query = "select * from dvd where Titel like '$abfrage%'";}

trage ich aber an statt der variablen "$abfrage%" einen direkten Buchtitel ein wird dieser auch perfekt gefunden

{$query = "select * from dvd where Titel like ' Beispieltitel'";}

Wenn ich also in das Abfrageformular etwas eintrage wird das irgendwie nicht übertragen (die Variable) und die Abfrage wird so durchgeführt als ob ich die Textbox leer gelassen hätte.???
Ich denke mal hier ist irgendwas noch falsch an den globalen Einstellungen von php aber was ..bitte versucht mir mal zu helfen eh ich hier den Herzkasper bekomme:(

So bis dann

offe
10-12-2003, 16:46
> $query = "select * from dvd where Titel like '$abfrage%'";

probier mal:

$query = "SELECT * FROM `dvd` WHERE `Titel` LIKE '" . $_POST["abfrage"] . "%'";

Tip, bei einem Fehler immer:

echo "$query<br>";
ausgeben. Falls es dann immer noch Probleme gibt, das Ergebnis in den PHPMyAdmin als SQL eingeben.

Offe

fight-night
10-12-2003, 17:20
Habe mal deine Version ausgetestet , geht auch nicht ,er zeigt mir immer die ganze Tabelle an ,was ja aber nur erwünscht ist wenn man nichts in die Suchbox einträgt und eine Fehlermeldung gibt es nicht ??
Die Frage ist ja warum funktioniert das script auf einem öffentlichen webserver aber nicht auf meinem ?

Stanislaus
10-12-2003, 18:15
@fight-night Wie offe bereits geschrieben hat liegt das Problem bei der $anfrage. Da auf Deinem Webspace wahrscheinlich register_globals auf on gesetzt ist ( http://www.phptutorials.de/index.php?article=28&tpl=2 ) funktioniert Deine Version dort auch. Lokal wirst Du aber wahrschenlich ein php mit Standardconfig fahren, welches seit afaik 4.1 register_globals auf off gesetzt hat.
Du bekommst Deine Abfrage entweder per
$_GET['anfrage'] oder per $_POST['anfrage'].

Gaert
10-12-2003, 18:16
Hi!

Ich tippe ebenso wie offe darauf, dass es sich um ein register_globals Problem handelt.
Wie wird denn das Formular in dem du den Suchbegriff eingibst übertragen - per Post oder per Get?
Im Falle von Post nimmst du das Beispiel von offe:


$query = "SELECT * FROM dvd WHERE Titel LIKE '%" . $_POST['abfrage'] . "%'";


im Falle von Get entsprechend:



$query = "SELECT * FROM dvd WHERE Titel LIKE '%" . $_GET['abfrage'] . "%'";


Du solltest dir angewöhnen die übergebenen Variablen alle über die Superglobalen Variablen anzusprechen, wenn du willst, dass deine Skripte überall funktionieren.

fight-night
10-12-2003, 18:55
Formular methode ist Post und die Globals in der PHP.ini habe ich auch schon umgestellt von off auf on und zurück ??

Stanislaus
10-12-2003, 20:37
hast Du dich auch nicht verschrieben?
In deinem ersten posting steht $anfrage und in den weiteren Beiträgen $abfrage.

Ansonsten poste mal bitte das Formular

Bis neulich ...

offe
10-12-2003, 21:27
könntest du mal die Ausgabe von:


echo_"$query<br>";
print_r($_POST);

posten?


Formular methode ist Post und die Globals in der PHP.ini habe ich auch schon umgestellt von off auf on und zurück ??

Das die Änderung in der php.ini wirksam werden, mußt du den Webserver neu laden (Bei Suse als root mit rcapache reload).

Offe

Gaert
10-12-2003, 22:23
Die register_globals bitte auf off lassen - das löst sonst keine Probleme sondern schafft neue!

fight-night
12-12-2003, 10:12
Ojeh ...Sorry an alle war ein blöder Firewall fehler funzt jetzt