php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 22.04.2006, 09:43  
Gast
 
Beiträge: n/a
Standard Script funktioniert plötzlich nicht mehr...

Morgen allerseits...

Ich habe ein seltsames Problem:

Ich habe eine Eingabemaske für Fahrräder geschrieben. Das ganze hatbis gestern auch wunderbar funktioniert...ab heute: Nix mehr. Wenn ich auf absenden gehe zeigt mir das Formular
noch nicht einmal mehr an ob die Daten hinzugefügt wurde oder ob es ein Problem gegeben hat.

Ich kann beim besten willen auch keinen Fehler im Script entdecken...könnte jemand von euch mal drüberschauen?
Vielleicht findet ein anderer ja etwas...



besten Dank

PHP-Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>eingabe_kursbeschreibung</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>

<?php
    
// Kontrolle ob kein leeres Formular gesendet wurde
    
if (isset($gesendet))
    {
        
mysql_connect("xx""xx""xx");
        
mysql_select_db(xx); 

        
        
// Einfügen der Datensätze für Kurse
        
$mysql_eingabe "INSERT rad_mb";
        
$mysql_eingabe .= "(rad_hersteller_id, rad_mb_name, rad_mb_rahmen, rad_mb_rahmen_groesse, rad_mb_gabel, rad_mb_lenker, ";
        
$mysql_eingabe .= "rad_mb_schaltung, rad_mb_bremsen, rad_mb_sattel, rad_mb_feder, rad_mb_gewicht, rad_mb_text, ";
        
$mysql_eingabe .= "rad_mb_link_bild, rad_mb_link_iframe)";
        
$mysql_eingabe .= "VALUES ('$rad_hersteller_id_send', '$rad_mb_name', '$rad_mb_rahmen', '$rad_mb_rahmen_groesse', '$rad_mb_gabel', ";
        
$mysql_eingabe .= "'$rad_mb_lenker', '$rad_mb_schaltung', '$rad_mb_bremsen', '$rad_mb_sattel', '$rad_mb_feder', '$rad_mb_gewicht', ";
        
$mysql_eingabe .= "'" nl2br($rad_mb_text) . "', '$rad_mb_link_bild', '$rad_mb_link_iframe')";
        
        
mysql_query($mysql_eingabe);
        
        
$num mysql_affected_rows();
        
        
// Ausgabe ob Datensatz hinzugefügt wurde     
        
if ($num>0)
            {
            
            echo 
"1 Datensatz wurde hinzugefügt

"
;
            }
        else
            echo 
"Ein Fehler ist aufgetreten.

"
;
        }
        
?>
        


Bitte geben Sie einen vollständigen Datensatz ein:
<form action="mb_eingabe.php" method="post">
<table width="100%"  border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="9%">Hersteller: </td>
    <td width="91%">
    <?php
    
        mysql_connect
("xx""xx""xx");
        
mysql_select_db(xx); 

        
        
$mysql_abfrage  "SELECT DISTINCT rad_hersteller_id, rad_hersteller_name FROM rad_hersteller ORDER BY rad_hersteller_name"
        
        
$mysql_ergebnis=mysql_query($mysql_abfrage);
        
        
$num mysql_num_rows($mysql_ergebnis);
                
        
mysql_close();
        
        echo 
'<select name="rad_hersteller_id_send">';

            while (
$datensatz mysql_fetch_assoc($mysql_ergebnis))
            {
                        echo 
"<option value='" $datensatz["rad_hersteller_id"] . "'>" $datensatz["rad_hersteller_name"] . "</option>";                
            }
    
?>
      </select>
    
    </td>

  </tr>
  <tr>
    <td>Name:</td>
    <td><input name="rad_mb_name" size="80"></td>
  </tr>
  <tr>
    <td>Rahmen:</td>
    <td><input name="rad_mb_rahmen" size="80"></td>
  </tr>
  <tr>
    <td>Rahmengröße:</td>
    <td><input name="rad_mb_rahmen_groesse" size="80"></td>
  </tr>
  <tr>
    <td>Gabel:</td>
    <td><input name="rad_mb_gabel" size="80"></td>
  </tr>
  <tr>
    <td>Lenker:</td>
    <td><input name="rad_mb_lenker" size="80"></td>
  </tr>
  <tr>
    <td>Schaltung:</td>
    <td><input name="rad_mb_schaltung" size="80"></td>
  </tr>
  <tr>
    <td>Bremsen:</td>
    <td><input name="rad_mb_bremsen" size="80"></td>
  </tr>
  <tr>
    <td>Sattel:</td>
    <td><input name="rad_mb_sattel" size="80"></td>
  </tr>
  <tr>
    <td>Federung:</td>
    <td><input name="rad_mb_feder" size="80"></td>
  </tr>
    <tr>
    <td>Gewicht:</td>
    <td><input name="rad_mb_gewicht" size="80"></td>
  </tr>
    <tr>
    <td align="left" valign="top">Text:</td>
    <td><textarea name="rad_mb_text" cols="61" rows="10"></textarea></td>
  </tr>
    <tr>
    <td>Link-Bild</td>
    <td><input name="rad_mb_link_bild" size="80"></td>
  </tr>
    <tr>
    <td>Link-Frame:</td>
    <td><input name="rad_mb_link_iframe" size="80"></td>
  </tr>
</table>
<input type="submit" value='Speichern' name="gesendet">
<input type="reset">    
</form>



</p>


[url="bearbeiten.htm"]Zur&uuml;ck zur Auwahl [/url]</p>
</body>
</html>


Lapje
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 22.04.2006, 10:16  
Gast
 
Beiträge: n/a
Standard

Zitat:
Das ganze hatbis gestern auch wunderbar funktioniert...ab heute: Nix mehr.
Solche Aussagen halte ich für sehr unglaubwürdig, wenn sich nichts am Script und/oder am Server geändert hat.

Warum dein Script immer noch so programmiert ist, dass register_globals = on erforderlich ist, bleibt dein Geheimnis. Genauso, warum kein error_reporting(E_ALL); und kein mysql_error in dem Script zu sehen ist.

Für mich sieht das eher danach aus, als wenn du einen Fehler finden lassen willst, weil du keine Lust dazu hast.

Richtig debuggen
1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
2. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
3. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
4. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
5. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
6. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
7. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

Die Ausgaben per echo kann man sich ersparen, in dem man einen Debugger benutzt, was eigentlich selbstverständlich sein sollte.

Gruß
phpfan
 
Alt 22.04.2006, 10:51  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von phpfan
Zitat:
Das ganze hatbis gestern auch wunderbar funktioniert...ab heute: Nix mehr.
Solche Aussagen halte ich für sehr unglaubwürdig, wenn sich nichts am Script und/oder am Server geändert hat.
Warum soll ich das sagen wenn es nicht so währe??? Es kann natürlich sein das Strato am Server was geändert hat, aber das weiss ich dann icht direkt...

Zitat:
Warum dein Script immer noch so programmiert ist, dass register_globals = on erforderlich ist, bleibt dein Geheimnis.
OK, was könnte ich dafür ändern? Was ich nur nicht verstehe ist, wenn ich für das Script register_global on haben muss, warum hat es dann bei mir gefunzt? Bei mir ist es laut phpinfo auf off gestellt...

Zitat:
Für mich sieht das eher danach aus, als wenn du einen Fehler finden lassen willst, weil du keine Lust dazu hast.
Was ich, ehrlich gesagt, für eine ziemliche Unterstellung halte. Natürlich habei ch mir das ganze angesehen, habe aber dennoch nichts gefunden. Zumal das ganze seit vorgestern
auf dem Server liegt und ich seit dem an dem Script nichts geändert habe...also hört doch einfach mal auf den Leuten hier immer "Faulheit" zu unterstellen.

Zitat:
2. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
Das ist z.B. der Grund warum ich - soweit es geht - "Modular" programmiere. Zuerst versuche ich die Module soweit es geht einzeln zu erstellen und zu testen.
Wenn diese dann funzen weiss ich dass es dann meistens am "Zusammenspiel" der Module liegt...

Zitat:
3. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen,
um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
So teste ich z.B. die Module immer. Wenn die Variablen z.B. per ECHO ausgegeben werden dann weiss ich dass sie auch vernünftig übergeben werden.

Zitat:
6. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
An dem Punkt bin ich jetzt...


Zitat:
Die Ausgaben per echo kann man sich ersparen, in dem man einen Debugger benutzt, was eigentlich selbstverständlich sein sollte.
Das kann man sehen wie man will. Ich habe es in der Ausbildung bei c/c++ genau andersrum beigebracht bekommen. Ich denke da sollte jeder arbeiten wie es
ihm mehr liegt...

Lapje[/quote]
 
Alt 22.04.2006, 11:21  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Lapje
Warum soll ich das sagen wenn es nicht so währe??? Es kann natürlich sein das Strato am Server was geändert hat, aber das weiss ich dann icht direkt...
Dein Script geht von kühnen Annahmen aus:
1. muß register_globals = On sein
2. es werden keine mysql Errors ausgewertet.
3. es wird noch nicht mal getestet, ob der MySQL Connect erfolgreich war.

Zitat:
Ich denke da sollte jeder arbeiten wie es ihm mehr liegt...
Solche Meinungen kann man bestenfalls dann verbreiten, wenn die Scripte auch dann noch funktionieren, wenn Ostern und Pfingsten nicht auf einen Tag fallen.
 
Alt 22.04.2006, 11:29  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat:
Ich denke da sollte jeder arbeiten wie es ihm mehr liegt...
Solche Meinungen kann man bestenfalls dann verbreiten, wenn die Scripte auch dann noch funktionieren, wenn Ostern und Pfingsten nicht auf einen Tag fallen.
Sorry, aber diese Arbeitsweise habe ich von meinem Dozenten übernommen, der in Fachkreisen recht angesehen ist. Ich will niemandem hier seine Fachkentnisse absprechen, nichts liegt mir ferner, aber manchmal habe ich hier schon das Gefühl dass es nur immer EINE richtige Weise gibt und alles andere ist falsch.

Ich meine, warum wird z.B. von der Art wie ihr das hier vorschlagt - wofür ich ja auch dankbar bin - in den Büchern nie drauf eingegangen? Und weiter noch: Wie soll dann ein Anfänger wissen dass es sowas gibt? Besser fände ich es wenn einem einfach mal gesagt wird: Mach das doch mal so und so...aber es kommt dann recht genervt rüber - es mag ja sein dass ihr das immer und immer wieder erzählt, aber wie soll der User darauf kommen? Ich habe hier 5 PHP-Bücher stehen die nicht unbedingt preiswert waren. Und auf solche Sachen wird da nicht eingegangen. Ok, ihr werdet jetz vielleicht sagen: "Dann sind die Bücher nicht gut", aber wie soll der Anfänger dass wissen?`

Zitat:
1. muß register_globals = On sein
Naja...aber trotzdem hat es funktioniert obwohl es bei mir (Strato) auf off gestellt ist...
 
Alt 22.04.2006, 11:55  
Gast
 
Beiträge: n/a
Standard

UPDATE:

Anscheinend muss es da ein PRob bei Strato geben...keines meiner Formulare funzen noch...und wie gesagt...gestern noch wunderbar...ich muss da mal anrufen...
 
Alt 22.04.2006, 12:23  
Erfahrener Benutzer
 
Benutzerbild von dsmcg
 
Registriert seit: 11.10.2005
Beiträge: 2.405
dsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäre
Standard

Man kann die Beiträge auch editiren.

Das von dir gepostete script funktioniert mit register_globals = off eindeutig nicht (kannst es ja lokal testen)

warum sollte es an strato liegen?
__________________
Wie man Fragen richtig stellt
dsmcg ist offline  
Alt 22.04.2006, 12:28  
Gast
 
Beiträge: n/a
Standard

Ganz einfach: wie ich vorhin schon geschrieben habe:

Gestern hat es noch funktioniert. Das Komische ist nur das fast das gleiche script unter einer anderen Domain noch funktioniert.

Zitat:
Man kann die Beiträge auch editieren
Schon mal daran gedacht dass jemand, der sich den Beitrag schon mal durchgelesen hat den nicht ständig durchliest um zu schauen ob jemand was daran geändert hat? Zudem denke ich nicht dass, wenn ich ihn editiere, die anderen eine Benachrichtigung bekommen...ich hab mir schon was dabei gedacht als ich das so gemacht habe...
 
Alt 22.04.2006, 12:31  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Lapje
Was ich, ehrlich gesagt, für eine ziemliche Unterstellung halte. Natürlich habei ch mir das ganze angesehen, habe aber dennoch nichts gefunden.
Das glaubt dir hier kein Mensch! Keine echo, kein error_reporting und kein mysql_error ist in dem Script zu sehen. Erzähl also bitte nicht so einen Quatsch.

Und wie dsmcg schon geschrieben hat, mit register_globals = off kann dieses Script noch nie funktioniert haben!

Gruß
phpfan
 
Alt 22.04.2006, 12:33  
Erfahrener Benutzer
 
Benutzerbild von dsmcg
 
Registriert seit: 11.10.2005
Beiträge: 2.405
dsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von lapje
Gestern hat es noch funktioniert.
Vileicht war gestern register_globals anderst eingestellt..
__________________
Wie man Fragen richtig stellt
dsmcg ist offline  
 


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
Script funktioniert nicht richtig -> fehlermeldungen PHP Tipps 2005-2 2 12.09.2005 11:29
chmoden von Verzeichnis das von php script verwendet wird? PHP Tipps 2005-2 2 04.08.2005 10:15
Kontakrformular funktioniert nur zum Teil PHP Tipps 2005-2 12 18.07.2005 11:24
script funktioniert nicht. PHP Tipps 2005-2 24 05.07.2005 15:51
[Erledigt] Relay Script PHP-Fortgeschrittene 11 01.06.2005 16:02
[Erledigt] Hilfe bei Download Verwaltungs Script PHP Tipps 2005 8 04.05.2005 10:29
smiley script funktioniert nicht!? HTML, Usability und Barrierefreiheit 3 01.05.2005 17:55
Fehler bei Script, welches Ordner erstellt PsychoEagle PHP Tipps 2005 3 23.04.2005 16:03
Frage: Warum funktioniert dieses PHP/MySQL Script nicht? Datenbanken 9 22.04.2005 06:35
Script funktioniert bei include() nicht mehr :-( seb-web HTML, Usability und Barrierefreiheit 9 24.12.2004 12:35
[Erledigt] python script mit php aufrufen... PHP-Fortgeschrittene 1 17.11.2004 17:11
PHP Script aus PHP aufrufen Stümper PHP Tipps 2004 5 26.09.2004 08:15
"das" Script oder "der" Script?? Simbo Off-Topic Diskussionen 31 16.09.2004 17:04
Header Location funktioniert nicht PHP Tipps 2004 10 12.08.2004 17:11

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
download script funktioniert plötzlich nicht mehr., php script hat immer funktioniert und plötzlich nicht mehr, an markanten stellen im skript lässt man sich wichtige variableninhalte ausgeben und ggf. auch in bedingten anweisungen eine kurze ausgabe machen, um zu überprüfen, welche bedingung ausgeführt wurde., \ 5 php bücher\, script funktioniert plötzlich nicht mehr

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:52 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.