php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 30-10-2006, 23:48
Murderdeath
 Registrierter Benutzer
Links : Onlinestatus : Murderdeath ist offline
Registriert seit: Dec 2002
Beiträge: 165
Murderdeath ist zur Zeit noch ein unbeschriebenes Blatt
Standard Script funktioniert nach Serverumzug nicht mehr

Guten Abend allerseits,

ich habe mir mal ein Script zum verwalten von Filmen gebastelt, nun bin ich mit dem Webspace auf einen anderen Server umgezogen (Der Provider blieb der Gleiche)
Auf dem Server läuft php 4.4.0 und MYSQL 4.1.13.

Nun zu meinem Problem ich sortiere die Filme per Variabel, daher wenn ich alle Filme, die mit A anfangen anzeigen lassen möchte dann übergebe ich das für die Datenbankabfrage mit "A%", für alle übergebe ich nur "%", wenn ich diesen Link aufrufe kommt die Meldung: "Zugriff nicht möglich!", wenn ich zum anzeigen der Filme die mit Zahlen anfangen "zahl" übergebe, klappt alles wunderbar. Daher scheint es Probleme mit dem "%" Zeichen zu geben. Hat jemand ne Ahnung woran es liegen könnte?

Gruß
Md
Mit Zitat antworten
  #2 (permalink)  
Alt 30-10-2006, 23:59
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Also wenn du nur das '%' Zeichen verwendest, dann gibt das afaik keine gültige Query. In diesem Falle willst du aber ja alle DS auslesen
Warum in diesem Falle denn nicht
PHP-Code:
$query "SELECT titel,regisseur FROM filme"
So würdest du einfach alle Felder titel und regisseur auswählen und das dürfte in etwa das sein was du willst.

Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #3 (permalink)  
Alt 31-10-2006, 00:20
Murderdeath
 Registrierter Benutzer
Links : Onlinestatus : Murderdeath ist offline
Registriert seit: Dec 2002
Beiträge: 165
Murderdeath ist zur Zeit noch ein unbeschriebenes Blatt
Standard

PHP-Code:
if(!isset($mode))
{
  
$mode="dt";
}
if(
$mode == dt )
{
if(!
$abc) { $abc "%"; }
if(
$abc != "zahl") { $ABC "like '$abc'"; }
else { 
$ABC "REGEXP '^[0-9]'"; }
$select mysql_query("select * from filme WHERE filmname $ABC"); 
$reihen mysql_num_rows($select); 
$zeigen floor($reihen 20); 
if(!
$t) { $t 0; } 
if(!
$start) { $start 0; }
if(!
$aussuchen) { $aussuchen name; } 
if ( 
$aussuchen == name ) {
$result mysql_query("select * from filme WHERE filmname $ABC ORDER BY Filmname limit $start,20"); }
elseif ( 
$aussuchen == groesse ) {
$result mysql_query("SELECT * FROM filme WHERE filmname $ABC ORDER BY Groesse limit  $start,20"); }
elseif ( 
$aussuchen == format ) {
$result mysql_query("SELECT * FROM filme WHERE filmname $ABC ORDER BY Format limit $start,20 "); }
elseif ( 
$aussuchen == time ) {
$result mysql_query("select * from filme WHERE filmname $ABC ORDER BY time DESC limit $start,20"); } 
Das ist der Teil in dem die Auswahl, der Filme stattfindet (Ob alle oder nur ein gewissen Buchstabe). Das Script hat auf dem altem Server tadelos funktioniert nur auf dem Neuen sind die Probleme aufgetaucht und ich konnte wie gesagt im Zusammenhang mit dem "%" Zeichen das Problem eingrenzen, denn der Rest funktioniert nur nicht das Auswäheln von einem Buchstaben.

Gruß
Md
Mit Zitat antworten
  #4 (permalink)  
Alt 31-10-2006, 00:46
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Also schreib mal
PHP-Code:
error_reporting(E_ALL); 
an den Anfang des Scripts und korrigier mal alle angemotzten Fehler.

Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #5 (permalink)  
Alt 31-10-2006, 05:11
highrise
 Member
Links : Onlinestatus : highrise ist offline
Registriert seit: Apr 2006
Ort: zu Hause *g*
Beiträge: 257
highrise ist zur Zeit noch ein unbeschriebenes Blatt
Standard

morgen...

ich kann keinen echten fehler finden... es ist zwar etwas durcheinander, und du solltest dich vielleicht mal entscheiden, ob du nun groß, klein oder alles quer bunt schreibst, aber das dürfte der funktion keinen abbruch tun..

auch ein zeichensatz-problem kann man (fast) ausschließen, da die betroffenen zeichen in den unterschiedlichen zeichensätzen an gleicher stelle zu finden sind...

*grübel*....

bist du dir sicher, dass deine anführungszeichen richtig escaped werden, und sich nicht irgendwo noch / hinzumogeln.. ?

ansonsten müsste es funktionieren in der theorie....

interessant wäre zu wissen, was ganz zu beginn in $abc drin steht (bzw. woher es kommt) und auch, wie die daraus gebastelte fertig query real aussieht... (echo)...

dann vielleicht, an welcher stelle die "zugriff nicht möglich" ausgabe erzeugt wird.. vielleicht liegt der fehler ganz woanders, denn LIKE 'A%' und auch LIKE '%' sind gültig und sollten zu den gewünschten ergebnissen führen... es hängt imho nicht am %-Zeichen...

greetz, high
__________________
Good programming is 40% experience, 20% skill, 20% RTFM, 15% caffeine, and 5% attention to detail.
When everything else fails, manipulate the data...
Beschriftungen / Großformatdruck / Werbemittel
Mit Zitat antworten
  #6 (permalink)  
Alt 31-10-2006, 05:16
Murderdeath
 Registrierter Benutzer
Links : Onlinestatus : Murderdeath ist offline
Registriert seit: Dec 2002
Beiträge: 165
Murderdeath ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zu Beginn steht in $abc nichts drinn, allerdings übergebe ich die Variablen per URL, daher sieht meine URL so aus: filme.php?mode=dt&start=&t=&aussuchen=name&abc=%

mode ist dafür zuständig, ob ich alle FIlme auf einmal anzeigen lasse oder Seitenweise.
start bestimmt den Anfang ab wann die Datensätze aus der DB ausgelesen werden sollen.
t ist für die Nummerierung der angezeigten Filme zuständig
aussuchen bestimmt die Sortierreihenfolge ob nach Name, Größe, Datum, etc.
abc schränkt die Anzeige aus der Datenbank auf einzelne Buchstaben bzw. die Zahlen ein.

gruß
Md

Geändert von Murderdeath (31-10-2006 um 05:23 Uhr)
Mit Zitat antworten
  #7 (permalink)  
Alt 31-10-2006, 05:30
highrise
 Member
Links : Onlinestatus : highrise ist offline
Registriert seit: Apr 2006
Ort: zu Hause *g*
Beiträge: 257
highrise ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hallochen..
da kommen wir der sache doch schon näher..

du brauchst kein abc=% übergeben, da du folgendes im code hast...

if(!$abc) { $abc = "%"; }

tust du es doch, musst du sicherstellen, dass deine parameter auch wieder decodiert werden... (die werden ja urlencoded geliefert) oder er verucht da etwas automatisch zu decodieren, wo es nichts zu decodieren gibt.. möglicherweise hat dein alter server intern rawurlencoded (also mit + zeichen) und der neue urlencodet (also mit % zeichen) ... dann würde das erklären, warum er das übergebene % falsch umsetzt..
however...
macht er denn nur probleme, wenn es darum geht, alle aufzulisten, oder auch zB bei A% ?...

greetz, high
__________________
Good programming is 40% experience, 20% skill, 20% RTFM, 15% caffeine, and 5% attention to detail.
When everything else fails, manipulate the data...
Beschriftungen / Großformatdruck / Werbemittel
Mit Zitat antworten
  #8 (permalink)  
Alt 31-10-2006, 12:53
Murderdeath
 Registrierter Benutzer
Links : Onlinestatus : Murderdeath ist offline
Registriert seit: Dec 2002
Beiträge: 165
Murderdeath ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Er macht überall Probleme wo das "%" Zeichen auftaucht, daher wenn ich alle anzeigen lasse und auch bei den einzelnen Buchstaben, z.B.: "A%" oder "Z%". für die Zahlen übergeben ich ja die Variable "Zahl"
Mit Zitat antworten
  #9 (permalink)  
Alt 31-10-2006, 12:59
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von Murderdeath
Er macht überall Probleme [...]
Verschone uns bitte mit Posting dieser Art, deren Informationsgehalt gegen Null geht.

Stelle dein error_reporting auf E_ALL, wie es in den Regeln steht - dann bekommst du für solchen Murks wie if($mode == dt ) schon mal eine Meldung.

Und dann debugge dein Script - mache Kontrollausgaben für die Werte, die ihm übergeben werden, steht da drin, was du erwartest; mache Kontrollausgaben für andere vom Script verwendete Variablen; mache Kontrollausgaben um zu schauen, in welche Abfragezweige gesprungen wird, etc.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #10 (permalink)  
Alt 31-10-2006, 13:13
Murderdeath
 Registrierter Benutzer
Links : Onlinestatus : Murderdeath ist offline
Registriert seit: Dec 2002
Beiträge: 165
Murderdeath ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Man ist der Ton hier schroff geworden...Es liegt doch eindeutig an dem "%" Zeichen...werden nun das Script umschreiben, damit sas "%" nicht mehr in der URL erscheint...aber etwas enttäuscht bin ich schon...scheinbar sind hier einige angenervt von Leute die halt weniger von scripten verstehen
Mit Zitat antworten
  #11 (permalink)  
Alt 31-10-2006, 13:46
highrise
 Member
Links : Onlinestatus : highrise ist offline
Registriert seit: Apr 2006
Ort: zu Hause *g*
Beiträge: 257
highrise ist zur Zeit noch ein unbeschriebenes Blatt
Standard

An solche Antworten gewöhnt man sich hier..
wahsaga hat da ein besonderes Talent dafür.. Ist mir schon öfter aufgefallen.. aber man darf ja dem Mod nicht quer kommen.. sonst fährt er richtig harte geschütze auf.. was ist das eigentlich.. männliches Imponiergehabe??.. a'la.. ich hab "Moderatror" unter meinem Nickname?...

@wahsaga.. wer lesen kann ist klar im Vorteil.. ich hatte ja explizit danach gefragt... insofern war sein Post doch absolut legitim.. oder hab ich was verpasst?

greetz, high
__________________
Good programming is 40% experience, 20% skill, 20% RTFM, 15% caffeine, and 5% attention to detail.
When everything else fails, manipulate the data...
Beschriftungen / Großformatdruck / Werbemittel
Mit Zitat antworten
  #12 (permalink)  
Alt 31-10-2006, 13:56
pheonix97k
 Banned
Links : Onlinestatus : pheonix97k ist offline
Registriert seit: Oct 2006
Beiträge: 2
pheonix97k ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Prozentzeichen % sind in einer url nicht erlaubt, das ist alles. Ich habe mir schon lang gedacht, dass $abc aus dem query string kommt. siehe thread Problem vierter Beitrag.

Der alte server hat % ignoriert, der neue nicht, eventuell schluckt ein mod-rewrite dieselben. Verwende '*' stattdessen oder was immer du schon beschlossen hast.

Wenn *ahsag* nicht meine Beiträge löschen würde, hättest Du die richtige Antwort schon seit gestern (und weniger falsche).

Viel Glück.
Mit Zitat antworten
  #13 (permalink)  
Alt 31-10-2006, 14:08
pheonix97k
 Banned
Links : Onlinestatus : pheonix97k ist offline
Registriert seit: Oct 2006
Beiträge: 2
pheonix97k ist zur Zeit noch ein unbeschriebenes Blatt
Standard

.. gemeint ist, so wie du % verwendet hast, gehen % nicht. Sie dienen als 'escape' Zeichen für urlencoded Zeichen, zB %39 und so weiter.
Mit Zitat antworten
  #14 (permalink)  
Alt 31-10-2006, 14:43
Murderdeath
 Registrierter Benutzer
Links : Onlinestatus : Murderdeath ist offline
Registriert seit: Dec 2002
Beiträge: 165
Murderdeath ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Danke euch beiden...

ich hab das ganze jetzt in eine Switch-Anweisung gepackt, sodass nur noch "A" statt "A%" ist der URL steht.

Jetzt funktioniert alles wieder!!!

Gruß
Md
Mit Zitat antworten
  #15 (permalink)  
Alt 31-10-2006, 18:58
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@murder
Ich habe dir den Hinweis auf das error_reporting() u.A. wegen dieser Zeile, welche auch von wahsaga mokiert wurde, gegeben
PHP-Code:
if($mode == dt 
Wenn du mir jetzt steiff und fest behauptest, dass mit error_reporting(E_ALL) hier kein Fehler geworfen wird, dann zeugt das von Unverständnis deinerseits über die Wirkung dieser Zeile.
Erklär mir bitte was diese macht. Wenn $mode gleich dt ist dann...
Erklär mir auch wie php in dt einen Wert zum Vergleichen finden sollte ???
Das ist kein String, keine Var und mit ziemlicher Sicherheit auch keine Konstante. In diese Bedinung wird php niemals reinkommen, egal ob du den Kopf -und/oder Handstand machst.
Und wenn dein PHP Parser hier keinen Fehler oder zumindest eine Notice wirft dann schmeiss ihn weg und installiere php neu. Der ist dann nämlich im Eimer.

Gruss

tobi

p.s. der Ton kann hier manchmal etwas ruppig werden, das sollte dir nicht neu sein. Aber wenn du auf Tipps die dir gegeben werden nicht einlässt, wer soll dir denn helfen. Dein Script mag jetzt funzen, aber es sind definitiv Fehler drinn.
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:08 Uhr.