php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2004

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 31.07.2004, 15:45  
Gast
 
Beiträge: n/a
Standard Probleme bei Code

Hallo,

bin jetzt dabei ein Buch durch zu machen und habe schon beim ersten Quellcode einen Fehler und bekomme ihn nicht weg.

Dieser Fehler entsteht: Undefined variable: input in e:\programme\easyphp1-7\www\gaestebuch.php on line 24

Poste auch noch den Code
Code:
<html>
<body>
<h2>Gaestebuch mit PHP und einer MYSQL Datenbank</h2>
<form action="gaestebuch.php3" method="get">
Benutzer Name:

<input type="text" name="name">

Thema:

<input type="text" name="thema">

Eintrag:

<textarea rows="5" cols="30" name="input" value="">
</textarea>

<input type="Submit" name="send" value="Eintrag absenden">
</form>
</body>
</html>

<?php
$server = "localhost";
$Benutzer = "";
$Kennwort = "";
$verbindung = mysql_connect ($server,$Benutzer,$Kennwort);
mysql_select_db("Gaestebuch",$verbindung);

if ($input<>"")
 {
  $sqlinsert = "insert into eintraege(Besuchername,Eintrag,Thema) VALUES ($name,$input,$thema)";
  $ergebnisinsert = mysql_query($sqlinsert,$verbindung);
  }
  
$sqlread = "SELECT * FROM eintraege";
$ergebnisread = mysql_query($sqlread,$verbindung);
while($row = mysql_fetch_object($ergebnisread))
{
  echo "

", $row->Besuchername, " zum Thema:", $row->Thema,"
";
  echo "

", $row->Eintrag,"
";
}
?>
Hoffe mir kann jemand helfen.
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 31.07.2004, 15:59  
Gast
 
Beiträge: n/a
Standard

Das ist kein Fehler, sondern "nur" eine Warnung.
Du testest nicht ab, ob ein solcher Parameter überhaupt übergeben wurde.
Beim "ersten" Aufruf (also wenn das Formular nicht abgeschickt wurde, sondern der url eingetippt wurde o.ä.) wird kein Parameter input mit übergeben -> $input gibt es nicht.

Lies Dir ausserdem mal http://php.net/security.globals durch. Wenn Dein Buch nicht darauf eingeht, ist es nicht mehr ganz aktuell. Allerdings rufst Du auch ein Skript mit der Endung .php3 auf. php version 3 ist auch nicht mehr ganz aktuell. Gerade ist php5 veröffentlich worden - am weitesten verbreitet dürfte wohl noch php4 sein.

PHP-Code:
<?php
$server 
"localhost";
$Benutzer "";
$Kennwort "";
$verbindung mysql_connect ($server,$Benutzer,$Kennwort)
        or die(
mysql_error());
mysql_select_db("Gaestebuch",$verbindung)
        or die(
mysql_error());
?>                
<html>
    <body>
        <h2>Gaestebuch mit PHP und einer MYSQL Datenbank</h2>
<?php        
if ( isset($name) && isset($input) && isset($thema) ) // gibt es die Parameter überhaupt?
{
    
// Leerzeichen entfernen
    
$name trim($name);
    
$input trim($input);
    
$thema trim($thema);
    
    
// so, hatte der Benutzer überhaupt was zu sagen?
    
if( strlen($name) )
        echo 
'Bitte Namen angeben';
    else if( 
strlen($input) )
        echo 
'Bitte Text angeben';
    else if( 
strlen($thema) )
        echo 
'Bitte Thema angeben';
    else
    {    
      
$sqlinsert "insert into eintraege(Besuchername,Eintrag,Thema) VALUES ($name,$input,$thema)";
      
$ergebnisinsert mysql_query($sqlinsert,$verbindung)
              or die(
mysql_error());
      echo 
'neuer Eintrag wurde eingefügt
'
;
  }
}

$sqlread "SELECT * FROM eintraege";
$ergebnisread mysql_query($sqlread,$verbindung)
        or die(
mysql_error());
while(
$row mysql_fetch_object($ergebnisread))
{
  echo 
'

[b]'
$row->Besuchername" zum Thema:"$row->Thema,'[/b]
'
;
  echo 
$row->Eintrag,"</p>\n";
}
?>
        <form action="gaestebuch.php3" method="GET">
            <div>
                Benutzer Name:

                <input type="text" name="name">

                Thema:

                <input type="text" name="thema">

                Eintrag:

                <textarea rows="5" cols="30" name="input" value=""></textarea>

                <input type="Submit" name="send" value="Eintrag absenden" />
            </div>
        </form>
    </body>
</html>
(ungetestet)
 
Alt 31.07.2004, 16:32  
Gast
 
Beiträge: n/a
Standard

Hallo Volker,

Danke für Deine Antwort. Ich glaube ich werde mir mal ein aktuelleres Buch kaufen.
Eine andere Frage. Kennst Du vielleicht irgendein Gesamtpaket wo Apache,mysql,php usw. gleich in einem Packet ist??

Habe sowas füher schon mal installiert aber es hat nie richtig geklappt z.B konnte ich php Seiten erstellen und anzeigen lassen aber sobald ich was in eine Datenbank eintragen wollte hat er zwar so getan als ob aber eingetragen bzw. später wieder angezeit hat er nichts.

Gibt es da irgendwelche Tips???
 
Alt 31.07.2004, 16:36  
Gast
 
Beiträge: n/a
Standard

Schau mal auf

http://www.apachefriends.org
 
Alt 31.07.2004, 17:47  
Gast
 
Beiträge: n/a
Standard

Danke für die Tip.

Mit diesem Programm genau der gleiche Fehler. Irgendwie glaube ich das ich noch irgendwo einen Parameter setzten muss da der Windows System Ordner und die Installation auf verschiedenen Partitionen sind.
Wie gesagt nur eine vermutung.
 
Alt 31.07.2004, 17:50  
Gast
 
Beiträge: n/a
Standard

Fehlermeldung? Code? Mehr Infos, plz.
 
Alt 31.07.2004, 18:21  
Gast
 
Beiträge: n/a
Standard

Code ist der gleiche wie oben. Auch der Code von Volker gibt keine reaktion.

Fehler kommt keiner nur trägt er nichts ein bzw. reagiert auf die PHP Befehle nicht.
 
Alt 31.07.2004, 18:25  
Gast
 
Beiträge: n/a
Standard

Hoffentlich hab ich das Problem überhaupt verstanden...

Versuchs mal mit

Code:
$_GET["input"]
oder noch ausführlicher mit

Code:
$HTTP_GET_VARS["input"]
Solltest du dir sowieso angewöhnen, um auch später noch zu wissen, woher der Variableninhalt stammt, oder sehen die Profis das hier anders?
 
Alt 31.07.2004, 19:48  
Gast
 
Beiträge: n/a
Standard

Habe leider auch keinen Erfolg damit gehabt.

Ich glaub ich gebs gleich wieder auf. Kein Fehler nichts. Aber er trägt einfach nichts in die Datenbank ein.
 
Alt 31.07.2004, 19:53  
Gast
 
Beiträge: n/a
Standard

Ich denke diese Zeile ergibt bei dir immer FALSE:

PHP-Code:
if ( isset($name) && isset($input) && isset($thema) ) // gibt es die Parameter überhaupt? 
so dass die INSERT-Anweisung nicht ausgeführt wird....

Kannst du das mal prüfen in dem du

PHP-Code:
}
ELSE {
print 
"Trägt nix ein";

dranhängst.

Ja, Profis, ich weiß, das ist debugging für Runaways wie mich, aber manchmal hilft sowas halt....
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Design und Code Trennen TeazY PHP Tipps 2008 29 21.05.2008 12:08
einfacher Code zum Einbinden von "Inhaltsbereichen" MaxDittmann PHP-Fortgeschrittene 6 01.10.2007 15:54
[Erledigt] Lesbarkeit von Code Off-Topic Diskussionen 6 14.07.2005 14:48
code aus db mit eval replacen chief-thomson PHP Tipps 2005-2 4 08.07.2005 15:33
irc bot probleme mit fread & eval PHP-Fortgeschrittene 8 02.07.2005 01:28
Fehler im Code, kann ihn nicht finden PHP Tipps 2005 9 16.05.2005 16:17
Bestätigungmail code? PHP Tipps 2005 7 16.05.2005 13:18
Probleme mit Keypress HTML, Usability und Barrierefreiheit 2 30.04.2005 16:04
[Erledigt] BB Code entfernen PHP Tipps 2005 2 25.04.2005 15:20
probleme mit unkomplizierten code PHP Tipps 2005 3 21.04.2005 15:19
[Erledigt] hilfe! probleme mit... PHP Tipps 2005 4 12.04.2005 22:55
Probleme mit Grafik nach zeiten PHP Tipps 2005 11 28.03.2005 13:35
code gesucht Beitragsarchiv 6 10.03.2005 03:14
Problem mit COde PHP Tipps 2004 5 28.08.2004 16:04


Alle Zeitangaben in WEZ +2. Es ist jetzt 03:47 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.