Neuigkeiten:

moziloCMS verwendet Cookies. Wenn Sie auf unserer Seite weitersurfen, stimmen Sie der Cookie-Nutzung zu Datenschutzerklärung
moziloCMS Layouts
moziloCMS Plugins

Hauptmenü

"Form action" übergibt keine Daten

Begonnen von gonzo70, 27. Juli 2010, 12:24:49

« vorheriges - nächstes »

gonzo70

Hallo Mozilo-Team,

Ich habe folgendes Problem mit der Version 1.12.beta3:

Ich habe auf der Seite: http://testserver.it-base-chemnitz.de/Zwerge/ in der Sidebar eine Inhaltsseite eingebunden, welche mir Daten aus einer Datenbank ausliest -- das funktioniert.
Nun möchte die Inhaberin der Seite gern, dass man auch nach den Namen suchen kann, und er den Namenstag ausgibt.
Im Testscript funktioniert das, nur im CMS nicht. Es wird das letzte Datum zurückgeben.
Es wird auch nicht der Name an das PHP-Script übergeben.

Hier der Code in der Inhaltsseite (liegt in Sidebar und ist als Versteckt gespeichert):
[ueber1|[unter|[fett|[zentriert|Namenstage]]]]
[zentriert|Heute ist der
 
[fett|[php|include("scripts/namenstag.php"); return $Datum;]]

[kursiv|Wir gratulieren:]

[fett|[php|include("scripts/namenstag.php"); return $Namen;]]]


[color=#FF0000][zentriert|Wann ist Ihr Namenstag?
Finden Sie es heraus.
[html|<form action="scripts/namensuche.php" method="POST">
<input name="Suche"><br>
<input type="submit" value="Namen suchen">
</form>]][/color]

hier noch der Code der namensuche.php:

<?php

//echo '<meta http-equiv="refresh" content="0; URL=http://www.testserver.it-base-chemnitz.de/zwerge">';
$Datum date("d.m.Y") ;
$Datum1 date("m-d");
$Suche1 $Suche ',';

$verbindung mysql_connect("xxx","xxx","xxx");
mysql_select_db("xxx");

$abfrage "SELECT * FROM Namenstag WHERE Name LIKE '%$Suche1%'";

  
$ergebnis mysql_query($abfrage);
  while(
$row mysql_fetch_object($ergebnis))
  {
    
$Date $row->Datum;
  }
 
 
$array_1 split '[./-]'$Date );
if (!
$Date) {
//echo 'Der Name: ' . $Suche . ' wurde in unserer Datenbank nicht gefunden.';
$Fehler 'Der Name: ' $Suche ' wurde in unserer Datenbank nicht gefunden.';
echo '<script type="text/javascript"> ';
echo 'alert( "' .  $Fehler '" )'
echo "</script>"
}
else {
//echo 'Der Namenstag von ' . $Suche . ' ist der: ' . $array_1[1] . '.' . $array_1[0] . '.';
$text 'Der Namenstag von ' $Suche ' ist der: ' $array_1[1] . '.' $array_1[0] . '.';
echo '<script type="text/javascript"> ';
echo 'alert( "' .  $text '" )';
//echo "window.location.replace('http://www.testserver.it-base-chemnitz.de/zwerge')"; 
echo "</script>"
//header("location: http://www.testserver.it-base-chemnitz.de/zwerge");
}
mysql_close($verbindung);
 
?>
Die Zugangsdaten habe ich ausgeXt.  ;)

Meine Frage ist nun, wo ist hier der Fehler -- ich finde nichts.  :cry:

Meine nächste Aufgabe ist dann, dass so zu händeln, dass bei der DB-Abfrage nur die MSG-Box (also nach Submit) angezeigt wird, und im Hintergrund die Hautseite der Webseite bestehen bleibt. Nach wegklicken der MSG-Box kann man gleich weiter machen.
Ist das überhaupt machbar - oder muss man mit einer externen Datei arbeiten.

Ich bin für jeden Tipp und Rat dankbar -- Ich suche schon ne Weile - komme aber nicht weiter.

Es dankt Frank aus Chemnitz

hausl78

#1
Hi!

Also mir fält auf Anhieb auf, das da nirgends abgefragt wird was der User eigentlich eingegben hat..

Deine Vairable Suche1 ist leer?! Also müßte da bei dir noch irgengdwie das so rein.. Abfrage POST:
$Suche1 = $_POST["Name"];

das dann hier gesucht wird..
$abfrage = "SELECT * FROM Namenstag WHERE Name LIKE '%$Suche1%'";
Ich würde das dann noch testen ob LIKE auch findet wenn ich "anna" eingebe und in der DB aber "Anna" steht... Gross/Kleinschreibung.

Juergen

gonzo70

#2
Hallo Jürgen,

Der Name kommt vom Formular -> Input-Box value=Suche
Also in der php-Datei ist es $Suche.

$Suche1 -- ist eine Zusammensetzung aus $Suche + , --> Damit kann ich Anna von Annalena unterscheiden.
In der DB sind die Namen immer so "Anna," "Annalena," eingegeben.

Also Groß/Kleinschreibung ist mir noch nicht aufgefallen -- er hat auf der Testseite immer die richtigen ergebnisse gebracht.

 --> oder sollte ich POST nutzen?
Müsste dann ja so heißen $Suche = $_POST["Suche"];
Oder liege ich da falsch?

Danke sagt Frank aus Chemnitz

gonzo70

#3
Also das einfügen von
$Suche = $_POST["Suche"];hat Erfolg gebracht. Es funktioniert  :D

DANKE Jürgen.

Hat jemand noch eine Idee - wie man das verwirklichen kann, dass keine neue Seite aufgeht, sondern nur die MessageBox?
und die Webseite auf der aktuellen Seite stehen bleibt.

Grüße Frank

hausl78

#4
Sehr gut, bitte...  :D

Mit dem anderen Problem kann ich dir leider nicht wirklich helfen  :| , ich sehe nur, das das das formular an die namenssuche.php geschickt wird die liest POST aus und sucht den Namen, erstellt dann das PopUp und leitet dann wieder zur "normalen" Seite weiter. Lösung wäre hier meiner Meinung das die namenssuche.php in die normale Seite übernommen wird, aber da bin ich nicht tief genug drinnen mit mozilo und dem [PHP|...] bzw. ob es als Plugin ev. vernünftig geht, weil die Datenbank ja extern ist.

Aber zum anderen noch:

Zitat$Suche1 -- ist eine Zusammensetzung aus $Suche + , --> Damit kann ich Anna von Annalena unterscheiden.
Aber das soll doch so gefunden werden gem. dem aktuellen SQL "... LIKE %$Suche% ...". Wenn Du im sql bei LIKE das % % vorne und hinten weglässt, dann solltest Du Dir Suche1 sparen können, weil dann Anna auch nur Anna findet und nicht Annamaria o.ä.

Noch zwei Dinge..
1. Suche mal nach Jürgen -> Umlautproblem
2. Wenn man ohne Name auf Absenden klickt kommt auch eine Meldung aber ohne Name.

Juergen

gonzo70

#5
Hallo Jürgen,

zu 1. und 2. --> Probleme sind behoben -- Danke für den Hinweis.

beim SQL muss ich das Like %$Suche1% benutzen --> da in der Tabelle in der DB nur die Datum und in der nächsten Spalte die Namen stehen --> z.B.: Rudolf, Rolf, Pantaleon, Natalie, daher benötige ich die Platzhalter.
Hatte es schon ohne versucht, aber habe damit kein Ergebnis erhalten.

Nochmal Danke
Guten Abend
Frank

hausl78

#6
Zitatzu 1. und 2. --> Probleme sind behoben -- Danke für den Hinweis.
ja bitte.. gerne..

Zitatbeim SQL muss ich das Like %$Suche1% benutzen --> da in der Tabelle in der DB nur die Datum und in der nächsten Spalte die Namen stehen --> z.B.: Rudolf, Rolf, Pantaleon, Natalie, daher benötige ich die Platzhalter.
Hatte es schon ohne versucht, aber habe damit kein Ergebnis erhalten.
Aahh, na dann macht es Sinn..  :mrgreen:

Juergen