Hallo,
das folgende Script legt Datensätze in ein csv-File ab und soll diese, wenn ...?edit=idnummer übergeben wird, diesen auch editieren. Leider funkt. dies nicht und ich bin schon verzweifelt.
Bitte um Hilfe!
Danke!!!
Bernd
<?php
$filename = 'events.csv';
if ($HTTP_GET_VARS['edit'])
{
function getArrayFromFile($idvergleichen)
{
$errormsg = 'Fehler beim Öffnen der Datei';
$fp=@fopen('events.csv', 'r') or die ($errormsg);
while ($line = fgets($fp, 1024))
{
$line=trim($line);
if(strpos($line, $idvergleichen)> -1)
{
$datensatzzumeditieren[] = explode(';',$line);
}
}
fclose($fp);
return $datensatzzumeditieren;
}
$datensatz = getArrayFromFile($HTTP_GET_VARS['edit']);
$idedit = $datensatz[0][0];
$eventname = $datensatz[0][1];
$ort = $datensatz[0][2];
$kategorie = $datensatz[0][3];
$datum = $datensatz[0][4];
$ueberschrift = 'Datensatz editieren';
}
else
{
$eventname = $HTTP_POST_VARS['eventname'];
$ort = $HTTP_POST_VARS['ort'];
$kategorie = $HTTP_POST_VARS['kategorie'];
$datum = $HTTP_POST_VARS['datum'];
$ueberschrift = 'Neuen Datensatz eingeben';
}
$msg = '';
$msgeventname = ''; // eventname
$msgort = ''; // ort
$msgkategorie = ''; // kategorie
$msgdatum = ''; // datum
$msgMyImage = ''; // Image
$noSave = 'Der Datensatz wurde nicht gespeichert!';
$yesSave = 'Der Datensatz wurde erfolgreich gespeichert!';
$kategorienamen = array("Oper", "Theater", "Kabarett");
// CSV-File Separator
// als Konstante definert
// ! wird ohne $ verwendet !
define(SEP, ';');
// erlaubte Typen für File Upload
$allowedImgs = array(
'image/gif',
'image/jpg',
'image/jpeg',
'image/pjpeg'
);
if (!empty($HTTP_POST_VARS['save'])) // Abfrage submit oder edit existiert?
{
if ($kategorie == "Kategorie auswählen...")
{
$kategorie = '';
}
if (!empty($ort) && !empty($eventname) && !empty($kategorie) && !empty($datum))
{
// uniqid generieren
// uniqid('') -- generiert eine einmalige
// Buchstaben-Ziffern Kombination
$id = uniqid('');
// wenn ein Image vorhanden ist
if ($HTTP_POST_FILES['myImage']['size'] > 0)
{
// Größe des Files prüfen
if ($HTTP_POST_FILES['myImage']['size'] < 51200)
{
// File Typ prüfen (mittels in_array())
if(in_array($HTTP_POST_FILES['myImage']['type'],$allowedImgs))
{
// Extension des Files herausfinden
preg_match('/\.(.+)$/', $HTTP_POST_FILES['myImage']['name'],
$ret);
$ext = trim($ret[1]);
// neuen Namen vergeben
// $id wurde oben generiert (uniqid())
$newName = $id.'.'.$ext;
// das File kommt in das Verzeichnis images
$newPath = "images/$newName";
// File aus dem Temp Verzeichnis
// in das gewünschte Verzeichnis kopieren
// Achtung:
// das Verzeichnis muss mit entsprechenden Rechten
// versehen sein!
copy($HTTP_POST_FILES['myImage']['tmp_name'], $newPath);
} else
{
$msgMyImage = 'Unerlaubter Filetyp!';
$msg = $noSave;
}
} else
{
$msgMyImage = 'Das Image ist zu groß!';
$msg = $noSave;
}
} // End: Image
// nur, wenn beim File alles OK (korrekter Typ, Größe) ist!
if (empty($msgMyImage))
{
// eventuell vorhandene ; entfernen
// ! SEP (Konstante) ohne $ verwenden !
$eventname = str_replace(SEP, '',
$eventname);
$ort = str_replace(SEP, '',
$ort);
$kategorie = str_replace(SEP, '',
$kategorie);
$datum = str_replace(SEP, '',
$datum);
if ($HTTP_GET_VARS['edit'])
{
function getArrayFromFile2()
{
$errormsg = 'Fehler beim Öffnen der Datei';
$fp=@fopen('events.csv', 'r') or die ($errormsg);
$alle = file('events.csv');
fclose($fp);
return $alle;
}
$alle = getArrayFromFile2();
foreach ($alle as $key => $value) /* ALLE IST EIN ARRAYELEMENT !!!!!!!!!! */
{
if ($value == $idedit)
{
$alle[$value+1] = $eventname;
$alle[$value+2] = $ort;
$alle[$value+3] = $kategorie;
$alle[$value+4] = $datum;
}
}
$handle = fopen ($filename, 'w');
for( $i = 0; $i <= 4; $i++)
{
fwrite($handle,$alle[$i]);
}
fclose($handle);
}
else
{
// Zeile zusammenstellen
$line = $id.SEP."\n".
$eventname.SEP."\n".
$ort.SEP."\n".
$kategorie.SEP."\n".
$datum.SEP."\n".
$newName."\n";
$handle = @fopen ($filename, 'a');
fwrite ($handle, $line);
fclose($handle);
}
// allgmeine Message
$msg = $yesSave."<br />($line)";
if (!empty($newName))
{
$msg .= '<br><img src="'.$newPath.'" />';
$msg .= '<br><a target="_blank" href="images/">'.
'Zum Image-Verzeichnis</a>';
}
// zurücksetzen von ort + eventname
$ort = '';
$eventname = '';
$kategorie = '';
$datum = '';
}
} else
{
// ort oder/und eventname oder/und kategorie oder/und datum nicht vorhanden
// Verarbeitung endet hier
if (empty($eventname))
{
$msgeventname = 'Bitte geben Sie einen Eventnamen an!';
}
if (empty($ort))
{
$msgort = 'Bitte geben Sie einen Ort an!';
}
if (empty($kategorie))
{
$msgkategorie = 'Bitte geben Sie eine Kategorie an!';
}
if (empty($datum))
{
$msgdatum = 'Bitte geben Sie ein Datum an!';
}
$msg = $noSave;
}
}
?>
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
<title>Events</title>
</head>
<body>
<center><h1><?php print($ueberschrift); ?></h1></center>
<form enctype="multipart/form-data" method="POST">
<table align="center" cellpadding="4" cellspacing="0" border="1">
<?php
// betrifft allgemeine Message
if (!empty($msg))
{
?>
<tr>
<td colspan="2" align="center" bgcolor="green"><?php print($msg); ?></td>
</tr>
<?php
}
// wird nur ausgegeben, wenn kein Eventname
// angegeben wurde
// ! (nur, wenn das Formular submittet wurde) !
if (!empty($msgeventname))
{
?>
<tr>
<td colspan="2" align="center" bgcolor="red"><?php print($msgeventname); ?></td>
</tr>
<?php
}
?>
<tr>
<td><b>Eventname*</b></td>
<td>
<input type="text" name="eventname" value="<?php print($eventname); ?>" />
</td>
</tr>
<?php
// wird nur ausgegeben, wenn kein ort
// angegeben wurde
// ! (nur, wenn das Formular submittet wurde) !
if (!empty($msgort))
{
?>
<tr>
<td colspan="2" align="center" bgcolor="red"><?php print($msgort); ?></td>
</tr>
<?php
}
?>
<tr>
<td><b>Ort*</b></td>
<td>
<input type="text" name="ort" value="<?php print($ort); ?>" />
</td>
</tr>
<?php
// wird nur ausgegeben, wenn keine Kategorie
// angegeben wurde
// ! (nur, wenn das Formular submittet wurde) !
if (!empty($msgkategorie))
{
?>
<tr>
<td colspan="2" align="center" bgcolor="red"><?php print($msgkategorie); ?></td>
</tr>
<?php
}
?>
<tr>
<td><b>Kategorie*</b></td>
<td>
<select name="kategorie" size="1">
<?php
if (empty($kategorie))
{
?>
<option value="Kategorie auswählen..." selected>Kategorie auswählen...</option>
<?php
}
else
{
?>
<option value="Kategorie auswählen...">Kategorie auswählen...</option>
<?php
}
foreach ($kategorienamen as $kategorien)
{
if ($kategorien == $kategorie)
{
?>
<option value="<?php print($kategorien); ?>" selected><?php print($kategorien); ?></option>
<?php
}
else
{
?>
<option value="<?php print($kategorien); ?>"><?php print($kategorien); ?></option>
<?php
}
}
?>
</select>
<?php print_r($alle); ?>
<?php print_r($value); ?>
<?php print_r($key); ?>
</td>
</tr>
<?php
// wird nur ausgegeben, wenn kein Datum
// angegeben wurde
// ! (nur, wenn das Formular submittet wurde) !
if (!empty($msgdatum))
{
?>
<tr>
<td colspan="2" align="center" bgcolor="red"><?php print($msgdatum); ?></td>
</tr>
<?php
}
?>
<tr>
<td><b>Datum*</b>(TT.MM.JJJJ)</td>
<td>
<input type="text" name="datum" value="<?php print($datum); ?>" />
</td>
</tr>
<?php
// wird nur ausgegeben,
// wenn Probleme beim ImageUpload auftauchen
if (!empty($msgMyImage))
{
?>
<tr>
<td colspan="2" align="center" bgcolor="red"><?php print($msgMyImage); ?></td>
</tr>
<?php
}
?>
<tr>
<td>Image (gif, jpg, < 50 k)</td>
<td>
<input type="file" name="myImage" />
<input type="hidden" name="max_file_size" value="51200" />
</td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" name="save" value="Save" /></td>
</tr>
<tr>
<td colspan="2"><b>* Pflichtfelder</b></td>
</tr>
</table>
</form>
</body>
</html>
das folgende Script legt Datensätze in ein csv-File ab und soll diese, wenn ...?edit=idnummer übergeben wird, diesen auch editieren. Leider funkt. dies nicht und ich bin schon verzweifelt.
Bitte um Hilfe!
Danke!!!
Bernd
<?php
$filename = 'events.csv';
if ($HTTP_GET_VARS['edit'])
{
function getArrayFromFile($idvergleichen)
{
$errormsg = 'Fehler beim Öffnen der Datei';
$fp=@fopen('events.csv', 'r') or die ($errormsg);
while ($line = fgets($fp, 1024))
{
$line=trim($line);
if(strpos($line, $idvergleichen)> -1)
{
$datensatzzumeditieren[] = explode(';',$line);
}
}
fclose($fp);
return $datensatzzumeditieren;
}
$datensatz = getArrayFromFile($HTTP_GET_VARS['edit']);
$idedit = $datensatz[0][0];
$eventname = $datensatz[0][1];
$ort = $datensatz[0][2];
$kategorie = $datensatz[0][3];
$datum = $datensatz[0][4];
$ueberschrift = 'Datensatz editieren';
}
else
{
$eventname = $HTTP_POST_VARS['eventname'];
$ort = $HTTP_POST_VARS['ort'];
$kategorie = $HTTP_POST_VARS['kategorie'];
$datum = $HTTP_POST_VARS['datum'];
$ueberschrift = 'Neuen Datensatz eingeben';
}
$msg = '';
$msgeventname = ''; // eventname
$msgort = ''; // ort
$msgkategorie = ''; // kategorie
$msgdatum = ''; // datum
$msgMyImage = ''; // Image
$noSave = 'Der Datensatz wurde nicht gespeichert!';
$yesSave = 'Der Datensatz wurde erfolgreich gespeichert!';
$kategorienamen = array("Oper", "Theater", "Kabarett");
// CSV-File Separator
// als Konstante definert
// ! wird ohne $ verwendet !
define(SEP, ';');
// erlaubte Typen für File Upload
$allowedImgs = array(
'image/gif',
'image/jpg',
'image/jpeg',
'image/pjpeg'
);
if (!empty($HTTP_POST_VARS['save'])) // Abfrage submit oder edit existiert?
{
if ($kategorie == "Kategorie auswählen...")
{
$kategorie = '';
}
if (!empty($ort) && !empty($eventname) && !empty($kategorie) && !empty($datum))
{
// uniqid generieren
// uniqid('') -- generiert eine einmalige
// Buchstaben-Ziffern Kombination
$id = uniqid('');
// wenn ein Image vorhanden ist
if ($HTTP_POST_FILES['myImage']['size'] > 0)
{
// Größe des Files prüfen
if ($HTTP_POST_FILES['myImage']['size'] < 51200)
{
// File Typ prüfen (mittels in_array())
if(in_array($HTTP_POST_FILES['myImage']['type'],$allowedImgs))
{
// Extension des Files herausfinden
preg_match('/\.(.+)$/', $HTTP_POST_FILES['myImage']['name'],
$ret);
$ext = trim($ret[1]);
// neuen Namen vergeben
// $id wurde oben generiert (uniqid())
$newName = $id.'.'.$ext;
// das File kommt in das Verzeichnis images
$newPath = "images/$newName";
// File aus dem Temp Verzeichnis
// in das gewünschte Verzeichnis kopieren
// Achtung:
// das Verzeichnis muss mit entsprechenden Rechten
// versehen sein!
copy($HTTP_POST_FILES['myImage']['tmp_name'], $newPath);
} else
{
$msgMyImage = 'Unerlaubter Filetyp!';
$msg = $noSave;
}
} else
{
$msgMyImage = 'Das Image ist zu groß!';
$msg = $noSave;
}
} // End: Image
// nur, wenn beim File alles OK (korrekter Typ, Größe) ist!
if (empty($msgMyImage))
{
// eventuell vorhandene ; entfernen
// ! SEP (Konstante) ohne $ verwenden !
$eventname = str_replace(SEP, '',
$eventname);
$ort = str_replace(SEP, '',
$ort);
$kategorie = str_replace(SEP, '',
$kategorie);
$datum = str_replace(SEP, '',
$datum);
if ($HTTP_GET_VARS['edit'])
{
function getArrayFromFile2()
{
$errormsg = 'Fehler beim Öffnen der Datei';
$fp=@fopen('events.csv', 'r') or die ($errormsg);
$alle = file('events.csv');
fclose($fp);
return $alle;
}
$alle = getArrayFromFile2();
foreach ($alle as $key => $value) /* ALLE IST EIN ARRAYELEMENT !!!!!!!!!! */
{
if ($value == $idedit)
{
$alle[$value+1] = $eventname;
$alle[$value+2] = $ort;
$alle[$value+3] = $kategorie;
$alle[$value+4] = $datum;
}
}
$handle = fopen ($filename, 'w');
for( $i = 0; $i <= 4; $i++)
{
fwrite($handle,$alle[$i]);
}
fclose($handle);
}
else
{
// Zeile zusammenstellen
$line = $id.SEP."\n".
$eventname.SEP."\n".
$ort.SEP."\n".
$kategorie.SEP."\n".
$datum.SEP."\n".
$newName."\n";
$handle = @fopen ($filename, 'a');
fwrite ($handle, $line);
fclose($handle);
}
// allgmeine Message
$msg = $yesSave."<br />($line)";
if (!empty($newName))
{
$msg .= '<br><img src="'.$newPath.'" />';
$msg .= '<br><a target="_blank" href="images/">'.
'Zum Image-Verzeichnis</a>';
}
// zurücksetzen von ort + eventname
$ort = '';
$eventname = '';
$kategorie = '';
$datum = '';
}
} else
{
// ort oder/und eventname oder/und kategorie oder/und datum nicht vorhanden
// Verarbeitung endet hier
if (empty($eventname))
{
$msgeventname = 'Bitte geben Sie einen Eventnamen an!';
}
if (empty($ort))
{
$msgort = 'Bitte geben Sie einen Ort an!';
}
if (empty($kategorie))
{
$msgkategorie = 'Bitte geben Sie eine Kategorie an!';
}
if (empty($datum))
{
$msgdatum = 'Bitte geben Sie ein Datum an!';
}
$msg = $noSave;
}
}
?>
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
<title>Events</title>
</head>
<body>
<center><h1><?php print($ueberschrift); ?></h1></center>
<form enctype="multipart/form-data" method="POST">
<table align="center" cellpadding="4" cellspacing="0" border="1">
<?php
// betrifft allgemeine Message
if (!empty($msg))
{
?>
<tr>
<td colspan="2" align="center" bgcolor="green"><?php print($msg); ?></td>
</tr>
<?php
}
// wird nur ausgegeben, wenn kein Eventname
// angegeben wurde
// ! (nur, wenn das Formular submittet wurde) !
if (!empty($msgeventname))
{
?>
<tr>
<td colspan="2" align="center" bgcolor="red"><?php print($msgeventname); ?></td>
</tr>
<?php
}
?>
<tr>
<td><b>Eventname*</b></td>
<td>
<input type="text" name="eventname" value="<?php print($eventname); ?>" />
</td>
</tr>
<?php
// wird nur ausgegeben, wenn kein ort
// angegeben wurde
// ! (nur, wenn das Formular submittet wurde) !
if (!empty($msgort))
{
?>
<tr>
<td colspan="2" align="center" bgcolor="red"><?php print($msgort); ?></td>
</tr>
<?php
}
?>
<tr>
<td><b>Ort*</b></td>
<td>
<input type="text" name="ort" value="<?php print($ort); ?>" />
</td>
</tr>
<?php
// wird nur ausgegeben, wenn keine Kategorie
// angegeben wurde
// ! (nur, wenn das Formular submittet wurde) !
if (!empty($msgkategorie))
{
?>
<tr>
<td colspan="2" align="center" bgcolor="red"><?php print($msgkategorie); ?></td>
</tr>
<?php
}
?>
<tr>
<td><b>Kategorie*</b></td>
<td>
<select name="kategorie" size="1">
<?php
if (empty($kategorie))
{
?>
<option value="Kategorie auswählen..." selected>Kategorie auswählen...</option>
<?php
}
else
{
?>
<option value="Kategorie auswählen...">Kategorie auswählen...</option>
<?php
}
foreach ($kategorienamen as $kategorien)
{
if ($kategorien == $kategorie)
{
?>
<option value="<?php print($kategorien); ?>" selected><?php print($kategorien); ?></option>
<?php
}
else
{
?>
<option value="<?php print($kategorien); ?>"><?php print($kategorien); ?></option>
<?php
}
}
?>
</select>
<?php print_r($alle); ?>
<?php print_r($value); ?>
<?php print_r($key); ?>
</td>
</tr>
<?php
// wird nur ausgegeben, wenn kein Datum
// angegeben wurde
// ! (nur, wenn das Formular submittet wurde) !
if (!empty($msgdatum))
{
?>
<tr>
<td colspan="2" align="center" bgcolor="red"><?php print($msgdatum); ?></td>
</tr>
<?php
}
?>
<tr>
<td><b>Datum*</b>(TT.MM.JJJJ)</td>
<td>
<input type="text" name="datum" value="<?php print($datum); ?>" />
</td>
</tr>
<?php
// wird nur ausgegeben,
// wenn Probleme beim ImageUpload auftauchen
if (!empty($msgMyImage))
{
?>
<tr>
<td colspan="2" align="center" bgcolor="red"><?php print($msgMyImage); ?></td>
</tr>
<?php
}
?>
<tr>
<td>Image (gif, jpg, < 50 k)</td>
<td>
<input type="file" name="myImage" />
<input type="hidden" name="max_file_size" value="51200" />
</td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" name="save" value="Save" /></td>
</tr>
<tr>
<td colspan="2"><b>* Pflichtfelder</b></td>
</tr>
</table>
</form>
</body>
</html>